MVC 3およびFluent NHibernateでアプリケーションを開発しています。ビジネス層、DALとレポジトリ層を分離し、後でビジネスでエンティティクラスとマッピングクラスを定義し、すべてのインターフェイスがDALのリポジトリとすべてのデータロジックにあるような、アプリケーションにとって最高のアーキテクチャが何かを知りたいと思います。 アプリケーションを処理する最良の方法は何ですか?Fluent NHibernateの良いアーキテクチャはどれですか?
おかげ
MVC 3およびFluent NHibernateでアプリケーションを開発しています。ビジネス層、DALとレポジトリ層を分離し、後でビジネスでエンティティクラスとマッピングクラスを定義し、すべてのインターフェイスがDALのリポジトリとすべてのデータロジックにあるような、アプリケーションにとって最高のアーキテクチャが何かを知りたいと思います。 アプリケーションを処理する最良の方法は何ですか?Fluent NHibernateの良いアーキテクチャはどれですか?
おかげ
あなたは別のレイヤーにあなたのビジネスエンティティを定義することができます。次に、それらのビジネスエンティティ(リポジトリ)とのCRUD操作を定義するインタフェースを持つことができます。次に、それらのリポジトリの特定の実装を持っています:あなたの場合、NHibernateを使用しています。これは、データアクセスロジックとFluentNHibernateマッピングを持つ場所です。最後に、ビジネスエンティティに対する複数の簡単なCRUD操作で構成される複雑なビジネス操作を定義するサービスレイヤーを作成します。ビジネスレイヤーには、ビジネス検証ロジックも含めることができます。
サービス層とデータアクセス層は、リポジトリが実装するインターフェイスのおかげで弱く結合します。ビジネス層は、それらのリポジトリの特定の実装について知ってはいけません。
最後に、MVCコントローラはサービスメソッドとビジネスエンティティで動作します。コントローラレイヤがビジネスエンティティとビューモデルの間をマッピングし、それらのビューモデルをビューに渡すことができるように、ビューモデルも定義するUIレイヤー(MVCアプリケーション)にあります。見てみましょうする
非常に優れたオープンソースのプロジェクトは、私が始めた場所です、そして、それはあなたが(MVC、流暢NHib)に興味があるスタックを使用しているCodeCampServer
ある
私のopionionでS#arp Architectureは、ORMとしてFluent NHibernateでNHibernateを使用しているASP.NET MVCプロジェクト用の、疎結合およびドメイン駆動設計アーキテクチャについて学ぶ素晴らしいコードベースです。
リポジトリ内のFluentNhibernateマッピング? – alexn
@alexn、リポジトリの特定のNHibernate実装を含むレイヤー内。 –
あなたがレイヤーについて話しているとき、物理的な分離(すなわち、プロジェクト)について実際に話していませんか? – alexn