私は過去に WCF WebAPI を使用して少し作業を行ったことがあり、その機能の多くが本当に気に入りました。現在 ASP.NET Web API で遊んでいるだけで、完全に異なるようです (IE は WCF から完全に削除されています)。
ASP.NET 4 Web API に含まれている WCF WebAPI の機能を知っている人はいますか?
私は過去に WCF WebAPI を使用して少し作業を行ったことがあり、その機能の多くが本当に気に入りました。現在 ASP.NET Web API で遊んでいるだけで、完全に異なるようです (IE は WCF から完全に削除されています)。
ASP.NET 4 Web API に含まれている WCF WebAPI の機能を知っている人はいますか?
私はこれについてもう少し読んで、これに関するMSの人々によるいくつかのページを見つけました:
WCF Web API の抽象化は、おおよそ次のように ASP.NET Web API にマップされます。
WCF Web API -> ASP.NET Web API
およびhttp://wcf.codeplex.com/discussions/319671
統合スタックは、次の機能をサポートしています。
私が学んだことから、Microsoft はここで名前を少し混乱させました。
XML の上に構築されたこの大きなフレームワークは、ユーザーがさまざまなテクノロジ (SOAP から REST、MSMQ など) を使用して分散サービスを構築できるようにするためのものです。
使用するのは非常に難しく (少なくとも私にとっては)、それを機能させるには多くのブートストラップが必要です。最終的に彼らはこれに気付き、単純な http サービス (WCF REST スターター キットはありますか?) の既定の構成を提供し始めました。ASP.NET MVC は勢いを増し、それが提供する機能の一部 (自動引数マッチングなど) が WCF に登場し始めました。
これが状況です:
お知らせ: WCF Web API は ASP.NET Web API になりました。ASP.NET MVC 4 Beta でリリースされた ASP.NET Web API。このサイトの jQuery コンテンツに対する WCF Web API および WCF サポートは、2012 年末までに削除されます。
http://wcf.codeplex.com/wikipage?title=Getting%20started:%20Building%20a%20simple%20web%20api
そして、それは私見の方が良いです。
WCFの上にasp.net mvc4 webapiをホストすることは可能だと確信していますが(必要な場合)、私が正しい(または間違っている)ことを証明できるドキュメントが見つかりません。
更新(コメントに収まらない): 待ってください。「通信テクノロジのサブセットをライブラリ/フレームワークから別のライブラリ/フレームワークに移動する」ことと「WCF を置き換える」の間には大きな違いがあります。個人的には、WCF はある種のコミュニケーション コンセプト用に設計されたものであり、かなりクールなデザインになっていると思いますが、分散コンピューティングは新しい (そしてよりシンプルな) ソリューションに移行しつつあります (機能豊富な SOAP と無駄のない柔軟な REST を比較してください。多くの人はまだ RPC 方式で REST を使用していますが)、この種のプログラミング パターンは、WCF アーキテクチャよりも MVC アーキテクチャに適していると思います。WCF の上に Web サービスを構築/使用する簡単な方法を設計する努力が払われましたが、最終的に、それは適切なソリューションではないことがわかりました。
言うまでもなく、現在多くの開発者が ASP.NET MVC を使用しており、自分の Web アプリに残りの Web サービスを実行したいと考えています。WCF をいじるのは、この種のことに対してやり過ぎであることが多く、私はそれを肌で経験しました。
ルーティング メカニズムは素晴らしく、正しい方法だと思います。よく見ると、その一部 (名前と型は異なりますが、パターンはありました) が WCF に含まれています。ええ、MSがWCFのその部分を却下しないのであれば、私たちはそれをすべきだと思います. 厳密に答えると、いいえ、asp.net mvc* で WebGet/WebInvoke を見つけることはないと思います。単に適合しません。
ええ、セルフホストはおそらく、現在 ASP.NET MVC4 に含まれている唯一の WCF です。
WCF 自体がどういうわけか死んでいるか、少なくとも重要性が低下しているように見えます。そのため、機能セットに投入される開発努力もはるかに少なくなっています。WCF自体の新機能は、より表面的なものです。
WCF は、プロセス間通信のためのトランスポート/プロトコルに依存しない方法として設計されました。アイデアでさえ、独立した抽象化であり、ほとんどが SOAP スタックの上に構築されていました。WCF 3.5 が REST のサポートをもたらしたとき、REST はすべてトランスポート依存であるため、ほとんどハッキングされました。トランスポートに依存しない API を使用して、トランスポート機能を直接使用して行われるプロセス間通信をサポートするのは不便に思えました。その結果、MS は WCF Rest API スターター キットを最初にリリースしましたが、これは RTM に到達することはありませんでしたが、後に WCF 4 に含まれ、最終的に .NET 4.5 または WCF Web API に含まれた機能のプレビューでした。REST はトランスポートに依存し、現在は HTTP でのみ使用されているため (理論的には他のトランスポート プロトコルを使用することも可能です)、API は HTTP 処理により適した .NET 部分、つまり現在非常に人気のある ASP に移動されました。
WCF Web API は、WCF Web API から機能を取得し、ASPNet MVC の機能とマージする ASP.NET Web API に置き換えられます。ASP.NET Web API は、HTTP サービスを構築および使用するための新しい (2012 年 2 月) フレームワークであり、RESTful サービスを構築するためのプラットフォームです。
元の質問にはありませんが、WCF は健在であり、その REST サポートは、サポートする必要がある既存の SOAP (WS-*) サービスがあるが、より多くのクライアントに到達するために REST を追加したい場合に引き続き有用であることは注目に値するようです。
参照