ALT.NET(リンク)やMicrosoft Entity Frameworkのような競合テクノロジーが原因で、NHibernateはこれまで以上に広範囲に使用され、近ごろその人気は高まっている。The Summer of NHibernate(リンク)という新しいスクリーンキャストシリーズが作成され、より多くのデベロッパにこのテクノロジーを公開している。
NHibernate(リンク)はMicrosoft .NET FrameworkへのJava Hibernate Coreのポートである。Object-Relational Mapper(OR/M)(リンク)であり、その目的は.NETオブジェクトをリレーショナルデータベースに持続することである。OR/Mという用語を聞くと、デベ ロッパは難しい構成であり習得が困難であるという印象を受ける。
Steve Bohlen氏がThe Summer of NHibernateスクリーンキャストシリーズ(リンク)を作成したおかげで、そうではないかもしれない。Steve氏はそのシリーズを以下のように説明する。
NHibernateを十分に活用すること、またその実装を取り上げたセッションの連続したスクリーンキャストを作成しています。Summer of NHibernateといい、この一連のスクリーンキャストはNHibernateについて何も知らない初心者(リンク)を取り込み、暑い夏が終わるまでに現実世界 のアプリケーションでNHibernateを使う場合に知っておくべきすべてのことを教えるよう意図されています。 このスクリーンキャストは、参照用の資料として活用され、迅速にNHibernateが広く使われるように新たな雇用を提供します。
現時点では、このシリーズは合計6つのセッションがあり、NHibernateの設定やはじめに、といった非常に初歩的なことから、さらに詳しい上級者向けのセッションまである。各スクリーンキャストはおよそ90分構成で、Webサイト上にそれぞれの新しいエピソードがソースコードと並んで掲載されている。
- セッション01:設定および基本的な使用パターン(リンク)
最初のエピソードの内容例は、以下のとおりである。
セッション 1 (6/13):設定および基本的な使用パターン
- NHibernate dllsおよび.xsdファイルを取得する
- xsdファイルをVS XML intellisense機能に追加し、XMLで構文サポートを受ける
- 単純なCustomer— Orders — OrderItemsスタイルのデータベースを使用する
- 「Customer」テーブル向けにDTOクラスハンドコーディングする
- テーブルとクラス間における1:1の関係の概念を紹介する
- (ダムDTOパターン;最も簡単な方法であるため、ここから開始する)
- Customer.hbm.xmlマッピングファイルをハンドコーディングし、この構文を公開する
- hibernate.cfg.xmlマッピングファイルをハンドコーディングし、この構文を公開する
- VSでプロジェクトを設定する(データアクセスクラスlib)
- 対応するテストクラスを設定し、それに合わせる(データアクセスクラスlibを実行するために使用される)
- セーフバキュームにおいて概念を実行するための「装置」として、ユニットテストの価値を実証する
- NHibernateと対話し、データベースからすべてのCustomersを検索する基本的な構造を実証する、単純なメソッドをコーディングする
- ISessionFactory、ISession、構造の分析
- ( ) {…}ブロックを活用し、完了したときにセッションが適切に終わる/破棄されるようにする
- セッション02:クエリーメソッドおよび構文の検討(リンク)
- セッション02a:クエリーメソッドおよび構文の検討(続き)(リンク)
- セッション 03:INSERT、UPDATEおよびDELETEセマンティクスの検討(リンク)
- セッション 04:トランザクションおよび 並行性の検討(リンク)
- セッション 05:NHibernateでの外部キーのモデリング(リンク)
- セッション 06:子コレクションの上級クエリー(リンク)
シリーズについてくわしくは、The Summer of NHibernateのWebサイト(リンク)を、また各エピソードについてくわしくは、Steven氏のブログ(リンク)を参照のこと。