1

MVC 3およびFluent NHibernateでアプリケーションを開発しています。ビジネス層、DALとレポジトリ層を分離し、後でビジネスでエンティティクラスとマッピングクラスを定義し、すべてのインターフェイスがDALのリポジトリとすべてのデータロジックにあるような、アプリケーションにとって最高のアーキテクチャが何かを知りたいと思います。 アプリケーションを処理する最良の方法は何ですか?Fluent NHibernateの良いアーキテクチャはどれですか?

おかげ

答えて

4

あなたは別のレイヤーにあなたのビジネスエンティティを定義することができます。次に、それらのビジネスエンティティ(リポジトリ)とのCRUD操作を定義するインタフェースを持つことができます。次に、それらのリポジトリの特定の実装を持っています:あなたの場合、NHibernateを使用しています。これは、データアクセスロジックとFluentNHibernateマッピングを持つ場所です。最後に、ビジネスエンティティに対する複数の簡単なCRUD操作で構成される複雑なビジネス操作を定義するサービスレイヤーを作成します。ビジネスレイヤーには、ビジネス検証ロジックも含めることができます。

サービス層とデータアクセス層は、リポジトリが実装するインターフェイスのおかげで弱く結合します。ビジネス層は、それらのリポジトリの特定の実装について知ってはいけません。

最後に、MVCコントローラはサービスメソッドとビジネスエンティティで動作します。コントローラレイヤがビジネスエンティティとビューモデルの間をマッピングし、それらのビューモデルをビューに渡すことができるように、ビューモデルも定義するUIレイヤー(MVCアプリケーション)にあります。見てみましょうする

+0

リポジトリ内のFluentNhibernateマッピング? – alexn

+0

@alexn、リポジトリの特定のNHibernate実装を含むレイヤー内。 –

+0

あなたがレイヤーについて話しているとき、物理的な分離(すなわち、プロジェクト)について実際に話していませんか? – alexn

1

非常に優れたオープンソースのプロジェクトは、私が始めた場所です、そして、それはあなたが(MVC、流暢NHib)に興味があるスタックを使用しているCodeCampServer

ある

1

私のopionionでS#arp Architectureは、ORMとしてFluent NHibernateでNHibernateを使用しているASP.NET MVCプロジェクト用の、疎結合およびドメイン駆動設計アーキテクチャについて学ぶ素晴らしいコードベースです。