23

私は、パレルモ(http://jeffreypalermo.com/blog/the-onion-architecture-part-3/)によって提案されたオニオンアーキテクチャを試行する次の内部アプリケーションのプロジェクト構造を設定しています。

私は彼のガイドラインに従いましたが、これまでのところ、プロジェクトの構造についていくつかの検証が必要です。

図の前に、質問:

  1. 参照はすべて正しいと思います(矢印が「への参照がある」を意味する図のように設定されています)が、ある程度の検証は良いでしょう。

  2. 依存関係解決レイヤーに何を入れる必要がありますか?これはヘルパーが行くところですか?これは他のすべてのプロジェクトへの参照がありますか?

  3. WebサービスとUIはどのようにDALと通信しますか?(コアを介して?どのように?)

  4. 何をどこに行けばいいの?[私が知っている幅広い質問...]

簡略化された概念図は次のとおりです(フォルダーは名前空間を表します)。

ここに画像の説明を入力してください ここに画像の説明を入力してください

4

2 に答える 2

7

参照はすべて正しいと思います(矢印が「への参照がある」ことを意味する図に従って設定されています)が、いくつかの検証が必要です。

1 問題ないように見えますが、依存関係の解決をダイアグラムに挿入することをお勧めします。

依存関係解決レイヤーには何を入れるべきですか? ここがヘルパーの行くところですか?これは他のすべてのプロジェクトへの参照を持っていますか?

2 依存性注入がここにあると思います。

Web サービスと UI はどのように DAL と通信しますか? (コアを通して?どうやって?)

3 パレルモの図によるとコアです。コアには、DAL とドメイン モデルと通信するリポジトリと、リポジトリとドメイン モデルを扱うサービス (Web サービスではない) があります。また、UI/Web サービスは主にサービスと対話します。

何をどこに行けばいいですか?[私が知っている大まかな質問...]

4 繰り返しますが、答えはパレルモの図にあると思います。しかし、私の意見では、アーキテクチャを完全に理解していれば、プロジェクトの編成は別のものであり、取るに足らないものになる可能性があります。

DDD と、MVC、依存性注入、リポジトリ/サービス、ORM などの必要な設計パターンを理解すると、オニオン アーキテクチャが明らかになりました。

于 2011-07-21T07:55:01.233 に答える
6
  1. はい、依存関係の解決を期待してください。これらの依存関係は逆でなければなりません。
  2. 名前 (および修正された参照) が示すように、その目的は、ある種の IoC コンテナー ソリューションをホストすることです。ヘルパー クラスの場所ではありません。解決目的のヘルパー クラスを期待してください。
  3. コアは、DAL またはドメイン サービスのインターフェイスを定義します。DAL と WebServices は、これらのインターフェイスを実装します。UI 内では、定義されたインターフェイスを介して DAL またはサービスの実装を使用します。正しい実装は、依存性解決コンポーネントの助けを借りて解決されます (「制御の反転」または「依存性注入」の概念を見てください)。
  4. 3.で説明したように、主なことは、DAL と Web サービス内に実装されるインターフェイスを Core に配置することです。Core では、実際のビジネス モデルを実装します。このモデルは、定義されたインターフェイスを介して (依存関係解決コンポーネントの助けを借りて) DAL と Web サービスを利用できます。
于 2011-07-21T07:44:48.447 に答える