関連する質問に答えました:
asp.net Web APIをリリースした後のASP.NET MVCフレームワークの将来は何ですか
基本的に、Microsoft が Web サービスを開発するために提供するフレームワークは次のとおりです。
ASMX。SOAP に基づく XML サービス。
WCF。SOAP に基づく Web サービス。これらのサービスは従来の ASMX サービスの進化形であり、基本的にサービス自体をトランスポート プロトコルから分離することに重点を置いていました。そのため、複数のエンドポイントを使用して同じサービスを公開できるため、複数のプロトコル (TCP、HTTP、名前付きパイプ、MSMQ、HTTPS) を使用できます。この柔軟性には、構成の問題が伴いました。WCF に関するコミュニティの主な不満の 1 つは、面倒で大規模な構成です。
ウェブ API。SOAP ではなく HTTP に基づいています。この新しい API は、サービスを作成するための新しいフレームワークです。他の 2 つの前任者との主な違いは、SOAP ではなく HTTP に基づいているため、次のようないくつかの HTTP 機能を使用できることです。
- これには、非常に意味があり説明的なメッセージ ヘッダーが含まれています。メッセージの本文のコンテンツ タイプを示唆するヘッダー、情報をキャッシュする方法、情報を保護する方法などを説明するヘッダーです。
- アクションを定義するための動詞の使用 (POST、PUT、DELETE..)
- あらゆる種類のコンテンツを送信するために使用できる本文が含まれています
- 情報パス (リソース) とアクションの両方を識別するために URI を使用します。
WEB API は、HTTP 経由でサービスを公開するサービスの記述に重点を置いています (現時点では HTTP のみ)。別のプロトコルを使用してサービスを公開する場合は、WCF の使用を検討する必要があります。
WEB APIはMVCをベースにしています(MVCをベースにしている理由を知りたければ簡単です)
WCF Web API のもう 1 つの目標は、膨大な構成、属性の過剰使用、テストをうまくサポートしていない WCF インフラストラクチャなど、開発者が WCF で直面するいくつかの欠点を克服するのに役立つ既知の概念を組み込むことでした。このように、Web API は IoC を使用し、Convention-over-Configuration を有効にし、よりシンプルな構成環境を提供しようとしました。
HTTP 要求と応答の洗練された処理と、作成が容易なコントローラーのサポートを備えた ASP.NET MVC インフラストラクチャは、この新しいタイプのサービスを作成するための適切な方法のように思えました。
次の点を考慮して、WCF または WEB API を選択します。
- 特別なシナリオ (一方向メッセージング、メッセージ キュー、双方向通信など) をサポートするサービスを作成することが意図されている場合は、WCF を選択することをお勧めします。
- TCP、名前付きパイプ、さらには UDP (WCF 4.5 の場合) など、利用可能なときに高速トランスポート チャネルを使用できるサービスを作成し、他のすべてのトランスポートが利用できないときに HTTP もサポートする場合は、 WCF を使用し、SOAP ベースのバインディングと WebHttp バインディングの両方を使用することをお勧めします。
- HTTP のすべての機能を使用できるリソース指向のサービスを HTTP 経由で作成する場合は、ブラウザーのキャッシュ制御、バージョン管理、および ETag を使用した同時実行性を定義し、画像、ドキュメント、HTML ページなどのさまざまなコンテンツ タイプを渡し、URI テンプレートを使用します。応答にタスク URI を含める場合は、新しい Web API が最適です。
- HTTP を介したリソース指向サービスとしても、TCP を介した RPC スタイルの SOAP サービスとしても使用できるマルチターゲット サービスを作成したい場合は、まず私に相談してください。
より詳細な比較については、次のとおりです。
http://www.codeproject.com/Articles/341414/WCF-or-ASP-NET-Web-APIs-My-two-cents-on-the-subjec