16

通常、プロジェクトのn層アーキテクチャをレイアウトするとき、次のレイヤーがあります。

  • ドメイン(ドメインモデル、リポジトリ契約)
  • データ(ドメインモデル上で動作するリポジトリ)
  • サービス(リポジトリ、キャッシング、検証を集約)
  • プレゼンテーション(MVCアプリ)

ASP.NET MVC 4 Web APIは、実際のアプリケーションと外部クライアントによって使用されることを考えると、これにどのように適合しますか?それはサービスレイヤーの一部ですか、それともサービスレイヤーを使用し、MVCアプリと同じレベルにありますか?

4

2 に答える 2

10

2 つのアプローチが考えられます。

  1. HTTP 呼び出しを介して MVC アプリケーションから Web API を使用することにしました。この場合、呼び出しコード ( HttpClient) はデータ層にあります。データベースからデータをフェッチする場合でも、リモート Web サービス呼び出しからデータをフェッチする場合でも、実際には問題になりません。この場合、Web API はおそらくビジネス ロジックの多くを既にカプセル化しているため、サービス レイヤーは非常に薄くなり、データ アクセス レイヤーのラッパーにすぎないか、追加の価値がなければ存在しないことさえあります。

  2. Web API は .NET で記述されているため、MVC アプリケーションでこの API のサービス レイヤーを含むアセンブリを直接参照することができます。この場合、Web API アプリケーションのサービス層が MVC アプリケーションのサービス層になります。

于 2012-07-12T05:59:17.253 に答える
1

2つの可能性があります

  • 中間層またはミドルウェア: これは通常、Web サービスと WCF サービスが機能している場所です。REST の使用は SOAP よりもはるかに軽いため、これは事実上の使用例です。クライアント生成に関しては、Web サービスと WCF サービスの方が優れていますが、Web API が徐々に追いついてきます。
  • プレゼンテーション レイヤー: これは、シングル ページ アプリケーション、またはデータを使用してクライアントでレンダリングする最新の Web サイト/アプリケーションにデータを提供します。
于 2012-07-12T15:03:31.353 に答える