MVC コントローラーとアクションを使用して、ブラウザーからの HTML ビューと外部アプリケーションの両方にサービスを提供することに成功しました。それはうまく機能しますが、現状では少しツールが必要です:
- クライアントが要求した形式でアクションの結果のモデルを返すアクション フィルターがあります (Accepts ヘッダーを調べて、application/json または text/xml を探します)。そのため、結果のモデルを JSON または XML としてシリアル化できます (私は JSON を好みます)。
- クライアント アプリケーションで単純な API を検索または作成して、アクションに対する WebRequest を作成し、結果を処理する必要があります。POST または GET が可能な単純な API を作成し、結果の JSON を (JSON.NET を使用して) オブジェクトに逆シリアル化します。これに使用できる REST クライアント API があります。
ただし、WCF-REST ルートを使用する場合は、この余分なツールの一部を回避できます。さらに良いことに、ASP.NET MVC 4 の WebApi 機能 (これに移行する予定です) を調べます。
記録として、WCF は強力だと思いますが、私たちの組織は、すべてのノブを回してすべてのスイッチを押して正常に機能させ、あるインストールから別のインストールに簡単にセットアップすることがいかに複雑であるかにうんざりしています。一方、MVC は問題なく動作します...そして、既に HTML ビューを処理するために MVC を使用しているため、コードを少し追加するだけで、サービス呼び出しも処理できるようになるのは本当にうれしいことです。もちろん、個人的な好みです。