NHibernateは一見印象的で、学ぶのは非常に複雑に思えます。したがって、約260ページの紹介ドキュメントをすばやく読み、テストアプリケーション内で実行する必要のあるタスクを主張した後、NHibernateは実際に進むべき道です。また、XMLマッピングファイルに魅了されていない場合は、FluentNHibernateを使用するだけで、OOPを使用してビジネスドメインオブジェクトをマッピングできます。
さらに、NHibernateに完全に慣れておらず、別の方法を好む場合は、Enterprise Library 4.1(2008年10月)が便利なツールになる可能性があります。状況に応じて、一部の組織では、NHibernateとEnterpriseLibraryのハイブリッドアプローチを選択しました。エンタープライズライブラリ内のデータアクセスアプリケーションブロック(DAAB)は非常に簡単に習得でき、既に知っていること以外は何も習得する必要はありません。DatabaseProviderFactoryクラスからDbConnectionを作成して構成ファイルから読み取るために使用するオブジェクトを知る必要があるだけで、デフォルトのデータベースを指定できます。
私の懸念としては、NHibernateとEnterpriseLibraryの両方をよく使用します。DAABを使用すると、たとえば、ファイルごとに1つの接続のみをパラメーター化することを好むため、構成ファイルごとにデータベース接続を指定できます。これにより、まったく変更されていない構成の不必要な構成ファイルを展開せず、別の接続の新しい構成ファイルのみを展開できます。したがって、別のデータストアに接続する必要のある新しいモジュールをマージする場合は、残りの部分を気にせずにモジュールをビルドし、この新しいDAAB構成ファイルとともにモジュールのDLLでソフトウェアを更新します。
NHibernateに関しては、やらないことが重要なことは、ISessionFactoryが不要になったときにそれを取り除くことです。インスタンス化にはコストがかかるため、メモリに保持する必要があります。ただし、実行できるのは、構成オブジェクトクラスをシリアル化することです(Serializableであるため)。これにより、アプリケーションは、NHibernate構成ファイルに何かが変更された場合にのみ構成を構築できます。次に、NHibernateのデフォルトのhibernate.cfg.xml構成ファイルを使用することをお勧めします。これにより、更新が行われたときにapp.configファイルを何度もデプロイする必要がなくなります。
これがお役に立てば幸いです。さらに詳しい情報が必要な場合はお知らせください。