NHibernate

NHibernateは、.NET Framework向けのオブジェクト関係マッピング (ORM) ソリューション。オブジェクト指向ドメインモデルの関係データベースへのマッピングのための扱いやすいフレームワークを提供する。大量の関係データの永続性に関わるプログラミングタスクの開発を容易にする。
NHibernateはフリーかつオープンソースのソフトウェアであり、GNU Lesser General Public Licenseで配布されている。
バージョン.
NHibernateは、Java用O/RマッパーHibernateを.NETに移植したものである。バージョン1.0はHibernate 2.1に機能的に対応しており、Hibernate 3の機能も一部取り込んでいる。
2007年11月にはNHibernate 1.2.1がリリースされた。Hibernate 3から多数の機能を取り込み、.NET 2.0への対応、ストアドプロシージャ、ジェネリックス、nullable typeに対応している。
2008年8月23日にはNHibernate 2.0がリリースされた。機能面ではHibernate 3.2に対応している。
機能概要.
NHibernateの主な機能は、.NETクラスとデータベースの表をマッピングすることである（同時に、CLRデータ型とSQLデータ型をマッピングする）。データクエリおよび検索ファシリティも提供する。SQLコマンドを生成するので、開発者は煩雑なデータハンドリングとオブジェクト変換を気にする必要がなくなり、同時に各種SQLデータベースに対して移植性の高いアプリケーションが開発でき、しかもそのための性能オーバーヘッドはわずかである。
NHibernateはPlain Old CLR Object (POCO) のための透過的永続性を提供する。永続性クラスに要求されることは、コンストラクタの引数がないことであり、"public"であることが必須ではない（一部アプリケーションでは、"Equals()"と"GetHashCode()"メソッドにも注意が必要）。
歴史.
NHibernateはTom Barrettが開発を始め、Mike DoerflerとPeter Smulovicsが引き継いだ。2005年末、JBoss（現在はレッドハットの一部）がNHibernateの開発リーダーであるSergey Koshcheyevを雇い入れ、NHibernateの開発を仕事としてフルタイムで行えるようにした。
Pierre Henri Kuatéらの著書 "NHibernate in Action" は、NHibernateの包括的ドキュメントとなっている。