web-dev-qa-db-ja.com

ASP.NET MVCおよびWebサービス

ASP.NET MVCプロジェクトにWebサービスを追加すると、MVCの概念全体が壊れますか?

そのWebサービス(WCF)は、バックエンドと通信するためにMVCプロジェクトのモデルレイヤーに依存しています(したがって、MVCソリューションの一部である必要があるように思えます)。

これをコントローラーまたはモデルレイヤーに追加する必要がありますか?

48
ANaimi

モデルを独自のアセンブリに分割し、MVCアプリケーションとWCFアプリケーションから参照する必要があるようです。

  • YourApp.Data-共有モデルとデータアクセス
  • YourApp.Web-Webアプリ間でさらに共有したい場合
  • YourApp.Web.Mvc
  • YourApp.Web.WebService

WebServices MVCスタイルを実行する場合は、MVCを使用して独自のRESTアプリケーションを構築する必要があります。

27
Seb Nilsson

MVCアプリケーションにWebサービスを追加する必要がある特定の理由はありますか?特定の理由がない限り、RESTful Webサービスと同じようにRESTfulな方法でコントローラーを使用する必要があります。

詳細については、Rob Conneryの次の投稿を参照してください。 ASP.Net MVC:Using RESTful architecture

19
SaaS Developer

モデルをそれ自身のプロジェクトに分離することは、「MVC」パターンを壊しません。まず、それはただのパターンです。 MVCパターンの目的は、データ、データハンドラー、プレゼンター、およびそれらの間のインターフェイス方法を明確に示すことです。それを行う最良の方法は、Sebが提案した方法です。

  • YourApp.Data
  • YourApp.Web.Mvc
  • YourApp.Web.WebService

あなたを助けるかもしれない何かは、Rob ConeryがまとめたMVC Storefrontです。こちらのビデオをご覧ください:

MVC Storefront Video Series

また、ブラウザの実際のコードを見て、彼がどのように実行したかをすぐに確認したい場合は、こちらにアクセスしてください。 MVC Storefront Codeplex Code Browser

11
MunkiPhD

モデルを独自のアセンブリに分離することは、MVCを使用しているかどうかに関係なく、まだモデルがあるとは思いません。どこにあるのでしょうか?

2
MrTea

私はこれをやってみました。

私のブログ で私の結果を見る

ps:WebサービスがXMLダンプを返すだけなので、Webサービスがリポジトリのモデルであると考える限り、これがMVCの概念を破るとは思わない。

1
Zac

Webサービスとデータベースは同じものと考えてください。この類推の下では、データベースロジックを配置する場所にWebサービスインタアクションを配置することは理にかなっていると思います。

0
Chris

アプリケーションにWebサービスを追加しましたが、うまく機能します。 MVCがモデルの代替インターフェイスであるため、MVCに違反するとは思わない。 Webサービスにはビューがないため、MVCはWebサービスには適していません。

0
liammclennan