2

新しい Web アプリケーションの作業を開始するとき、ASP.NET MVC、BLL (すべてのビジネス ロジックを含む一連のサービスで構成される)、および DAL (一連のリポジトリで構成される)の同じ実証済みのアーキテクチャに到達する傾向があります。 EF /*Linq to SQL*などの作業単位パターンを容易にします)。

コントローラはサービスとのみ対話し、サービスリポジトリと他のサービスとのみ対話します。サービス層では、モデルが定義され、これらはコントローラーへの/からの入出力として使用されます。

私の質問は次のとおりです。他の人は何をしていますか? ASP.NET MVC Web アプリケーションのコンテキストで人々が何か違うことをしているかどうか知りたいです。たとえば、CQRSDomain Eventsなどの概念があります。上記の方法で問題を解決するためにこれらを使用している人はいますか?

この質問は主に、私が知らないことを発見しようとする源です。漠然としすぎていないことを願っていますが、自分の方法を評価するために他の人が何をしているのかを見ることが重要だと思います.

4

2 に答える 2

1

私はMVCでCQRSを使用しています。いいね。引き続きMVCパターンを使用しますが、コントローラーでは、書き込みにコマンドパターンを使用し、読み取りには純粋なNHibernateLinqを使用します...読み取りにはSolrNetも使用します。:-)

于 2010-10-12T20:25:36.113 に答える
1

私たちは基本的にあなたがしていることをやっていますが、私たちはリポジトリインターフェースをサービス (ビジネス層で定義されている) と見なしているため、コントローラーはしばしばそれらに直接アクセスします。IoC コンテナーは、コンストラクター インジェクションを介して正しいリポジトリ実装をインジェクトします。したがって、データ層はビジネス層に依存し、リポジトリの実装を担当しますが、ビジネス層は、定義したすべてのリポジトリが実行時に利用可能になると想定しています。

製品をさらに機能の異なるモジュールに分割しました。一部のモジュールは相互に依存しています (たとえば、すべてがコア機能に依存し、他のほとんどのモジュールは Web ポータル モジュールに依存しています) が、それらを個別の dll に保持することで、これらのモジュールが密結合しすぎないようにすることができます。 . したがって、システムは、特定のクライアントが支払ったモジュールの DLL のみをロードできます。モジュールがパブリッシュ/サブスクライブ モデルを介して通信できるように、コア モジュールで定義されたイベントでイベント バスを使用する予定です。

于 2010-10-12T15:38:18.653 に答える