ASP.NET MVCプロジェクトにWebサービスを追加すると、MVCの概念全体が壊れますか?
そのWebサービス(WCF)は、バックエンドと通信するためにMVCプロジェクトのモデルレイヤーに依存しています(したがって、MVCソリューションの一部である必要があるように思えます)。
これをコントローラーまたはモデルレイヤーに追加する必要がありますか?
モデルを独自のアセンブリに分割し、MVCアプリケーションとWCFアプリケーションから参照する必要があるようです。
WebServices MVCスタイルを実行する場合は、MVCを使用して独自のRESTアプリケーションを構築する必要があります。
MVCアプリケーションにWebサービスを追加する必要がある特定の理由はありますか?特定の理由がない限り、RESTful Webサービスと同じようにRESTfulな方法でコントローラーを使用する必要があります。
詳細については、Rob Conneryの次の投稿を参照してください。 ASP.Net MVC:Using RESTful architecture
モデルをそれ自身のプロジェクトに分離することは、「MVC」パターンを壊しません。まず、それはただのパターンです。 MVCパターンの目的は、データ、データハンドラー、プレゼンター、およびそれらの間のインターフェイス方法を明確に示すことです。それを行う最良の方法は、Sebが提案した方法です。
あなたを助けるかもしれない何かは、Rob ConeryがまとめたMVC Storefrontです。こちらのビデオをご覧ください:
また、ブラウザの実際のコードを見て、彼がどのように実行したかをすぐに確認したい場合は、こちらにアクセスしてください。 MVC Storefront Codeplex Code Browser
モデルを独自のアセンブリに分離することは、MVCを使用しているかどうかに関係なく、まだモデルがあるとは思いません。どこにあるのでしょうか?
Webサービスとデータベースは同じものと考えてください。この類推の下では、データベースロジックを配置する場所にWebサービスインタアクションを配置することは理にかなっていると思います。
アプリケーションにWebサービスを追加しましたが、うまく機能します。 MVCがモデルの代替インターフェイスであるため、MVCに違反するとは思わない。 Webサービスにはビューがないため、MVCはWebサービスには適していません。