48

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

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

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

4

7 に答える 7

27

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

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

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

于 2008-09-23T14:23:09.083 に答える
19

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

詳細については、Rob Conneryからのこの投稿を確認してください: ASP.Net MVC:RESTfulアーキテクチャの使用

于 2008-09-23T03:36:21.523 に答える
11

モデルを独自のプロジェクトに分離しても、「MVC」パターンは崩れません。まず、パターンです。MVC パターンの意図は、データ、データ ハンドラー、およびプレゼンターと、それらの間のインターフェイス方法を明確に区別することです。それを行う最善の方法は、セブが提案した方法です。

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

Rob Conery がまとめた MVC Storefront が役立つかもしれません。ここでビデオを見てください:

MVC ストアフロント ビデオ シリーズ

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

于 2009-02-25T14:11:16.023 に答える
2

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

于 2008-10-03T10:08:49.527 に答える
1

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

私のブログで私の結果を参照してください

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

于 2009-10-01T02:52:38.800 に答える
0

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

于 2008-09-23T05:09:25.777 に答える
0

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

于 2011-03-22T15:10:10.683 に答える