2009-03-26 14 views
4

私はマイクロソフトの技術の大部分を最近行っています。当然、私はWCFが提供しているものをチェックしています。それは非常に柔軟性があり、ネットリモートからの素晴らしい次のステップだと思われますが、それはSOAPメッセージに非常に似ていて、プラットフォームにとらわれないWebサービスアプリにとっては非常に厄介です。私はこの技術の専門家ではありませんが、これらの柔軟性のすべてが、SOAPメッセージから脱却して、必要なデータ構造/形式を返すことができるということです。これは真実か偽ですか?WCFをできるだけ小さなペイロードでWebサービスとして提供

私が言う理由は、本当にRESTサービスとしてアプリケーションを作成したい場合、ターゲットプラットフォームの1つがモバイルになるということです。それだけではなく、Webベースのサービスの重要な目標の1つは、ダイアルアップスピードでのモバイル用であろうと完全なデスクトップアプリケーションであろうと、データペイロードを小さく保つことです。

Twitterのapiを例にとると、データの重さを測るファンシーなSOAPエンベロープを持たずにJSONとしてデータを要求し、必要なデータを表現するために最小のバイト数を受け取ることができるため、 。そのため、接続性の悪いデバイスで実行されているモバイルアプリケーションは、Twitterのデータを消費するため、できるだけ少ない帯域幅しか使用できません。それに加えて、Twitter、Facebook、またはより成功したパブリックAPIのパターンは、JSONやXMLのカスタムデータ構造であり、SOAPエンベロープには包まれていません(私は間違っているかもしれませんが...これはちょっとした印象です)。

どのようにWCFでこれを行いますか? WCFに「このテキストを返すだけです... SOAPエンベロープについて心配しないでください」と言ったり、単純な設定オプションですか?

答えて

2

をご覧ください。一番簡単なことは、サービスをホストするための通常のServiceHostクラスではなく、WebServiceHostを使用することです。あなたが望むオプションのほとんどを設定します。ジャスティンスミスはgood post that contrasts WebServiceHost and ServiceHostです。

RESTの原則(URLマッピングとHTTPメソッド)のPOX(プレーンな古いXML)ペイロードを送信することを心配しているかのように聞こえますが、Jon FlanderのRESTful .NETブックが役に立ちます。ここにはoverview of Chapter 1があります。

また、MicrosoftからREST Starter Kitをチェックアウトしてください.WCFで一般的なWeb指向のタスクを実行する方法の例がたくさんあります。

あなたの質問の他の部分に答えるために、私は、JSONを使用すると、XMLよりはるかに小さいペイロードで、WCF内でまともなサポートをしていることがわかりました。

+0

ありがとうございました。おそらくあなたがリンクした本のコピーを手に入れます。 – Rich

関連する問題