2013-01-23 9 views
7

私は完全にajaxベースの(POSTはありません)単一ページのWebアプリケーションで作業していましたが、現在は開発中のWebサービスでASMXを使用しています。 WebサービスはJSONデータで動作します。このリリースでは、WCFまたはWebAPIのいずれかにアップグレードする必要があることがわかっています。WCFとWebAPIとネイティブモバイルデバイス

最終的に、私は、Webアプリケーションと同じWebサービスで動作するネイティブモバイルアプリケーションを構築する予定です。すべてのことが等しい、私は2つのオプションの中から選択する必要がある場合は、どのようなオプションは、Webサービスを別のクライアントアプリケーションで動作するように行く必要がありますか?

ありがとうございました。

答えて

8

アプリケーションがさまざまなプラットフォームのモバイルデバイスからのみアクセスできるように設計されている場合は、これらすべてのプラットフォームで共通の最も簡単な分母を見つける必要があります。つまり、相互運用性が懸念される場合は、すべてのプラットフォームで使用できる独自の通信テクノロジに焦点を当てます。

JSON + RESTは今日(多くの場合、モバイルを含む)多くのプラットフォームで共通の最も簡単な分母と思われます。それがあなたが実装する唯一の通信技術であれば、WebAPIは明らかな選択肢のようです。

WCFは、異なるバインディング、異なるエンコーディングを異なるプロトコルでプラグインすることができ、SOAP、WS- *を実装し、非常に高速に(バインディングを慎重に選択して)実装できます。 + RESTは必要ですが、すべての機能が必要なわけではありません(これらの機能のためWCFもかなり複雑になる可能性があります)、必要なのは偏在性と単純さのようです。あなたの要件が与えられたら、私はWebAPIを選択します。

6

WCFを使用して一連のRESTful Webサービスを開発し、最近WCFをASP.NET Web APIに置き換えるプロジェクトを開始しました。私の経験では、ASP.NET Web APIはWCFよりも学習しやすく、使いやすくなっています。私はまた、あなたがASP.NETのWeb APIを選択したいと思う理由のカップルを与えることができます。

  • WCFのURLは「.SVC」拡張子を含めます。例:http://localhost/MyRestService.svc/。これはクライアントに問題を引き起こすべきではありませんが、それは醜いです。 IIS URL書き換えモジュール(this blog postを参照)を使用して.svc拡張子を取り除くことはできますが、ASP.NET Web APIではまず問題はありません。

  • WCFはクライアントに問題のあるJSONを生成するDataContractJsonSerializerを使用します。特定の例は、datesおよびdictionariesを含む。 WCF(このSO question参照)で使用されるシリアライザを変更することはできますが、ASP.NET Web APIはデフォルトでJSON.NETを使用します。これは高度に構成可能です。これは、それがために設計されたものであるとして

私は今日始めて、新しいRESTfulなWebサービスを作成し、WCF上でASP.NETのWeb APIを選択した場合は、簡単な選択です。

+0

最初の理由:それはあなたの視点であり、私は個人的にはそれが醜いかわいいとは思わない:)。第二の理由:良いもの!私は、DataContractJsonSerializerには、このようないくつかの時間をプレイした後でしか見つからない独自のいくつかの驚きがあることをほとんど忘れていました:[.NETで生成されたJSONのインフィニティをどうやって処理しますか(http:// stackoverflow。 com/questions/7997657/how-do-you-handle-in-json-generated-in-net) –

関連する問題