InfoQ

News

Fluent NHibernate

作者 Hartmut Wilms, 翻訳者 編集部 投稿日 2008年8月21日 午後12時50分

コミュニティ
.NET
トピック
データアクセス,
Domain Specific Languages
タグ
ORM,
nHibernate

Fluent NHibernate(リンク)はAPIであり、XML構成ファイルを使用する代わりに、プログラムでNHibernate(リンク)マッピングを作成する。その目的は、 改善された読み取り機能、テスト機能およびコンパイル時の安全性を提供することで、NHibernateをプロジェクトに組み込む際に直面する問題を最小限に食い止めることである。

プロジェクトオーナーである、James Gregory氏(リンク)はFluent NHibernate(リンク)を導入し、NHibernateのXML構成ファイルについて不安材料を以下のように提示している。

[…] われわれすべての人が、クラスをマップするために、記述しなければならないXMLの量に多少なりとも嫌気がさしていると思います。それだけではなく、マッピングが残りのアプリケーションと厳密に区別される仕組みについても、あまり好んではいないと思います。無視され、テストされないことがよくあります。プロジェクトの中心的信条の1つは、より簡潔で、読み出し可能で、テスト可能なマッピングの記述方法が必要であるということです。

その他、Fluent NHibernateは豊富なインターフェイス(リンク)を提供する。Piers Cawley氏(リンク)はうまくまとめ上げ(リンク)、「クライアントサイドの複雑さは、思慮深く、人道的なインターフェイスの裏にオブジェクト構成を移動させることで軽減される」と説明している。

Fluent NHibernateは、構成原理に対する決まりごと(リンク)を遵守することで、さらに複雑さを削減する。つまり、マッピングのすべてのパーツ向けのもっとも一般的な設定がデフォルトで選択される。

コンパイル時の確認の他に、Fluent NHibernateは、テスト向けのAPIを提供することで、マッピングの堅固さを増加させる。「またマッピングが構文的に有効かという点だけでなく、 適切に設定されているかを検証する手助けをします」とJames Gregory氏は言う。

大事なことを言い忘れていたが、Fluent NHibernateはフレームワークを特色としており、参照アーキテクチャの設定を支援し、自分好みのIoCコンテナ(リンク)とよく動作する。

われわれのフレームワークはレイヤーであり、APIの上に位置しこれまで以上のエクスペリエンスを提供します。みなさんのお気に入りのコンテナと統合する ことを検討しており、それによってシステムにNHibernateを統合するために記述するコードを少なくすることができます。それから、拡張可能な規則 に取り掛かる予定です。それにより、アプリケーションで暗黙に示された独自の規則を指定することができます。たとえば識別子をつねに「ID」と呼ぶのであ れば、なぜ毎回それを指定しなければならないのでしょうか?そうすべきではありません!

Bobby Johnson氏(リンク)は、自分の記事「Skinning the Cat with Fluent NHibernate」(リンク)で、Fluent NHibernateの段階的な使用例を詳細に説明している。

原文はこちらです:   http://www.infoq.com/news/2008/08/fluent-nhibernate

ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
Hatena

No comments

返信

ジャンル別一覧

Agile2008 チーム参加レポート - 動機/準備編

筆者はアジャイルソフトウェア開発についての年に一度の国際会議であるAgile2008に初めて参加してきました。今年の日本からの参加者の数は14名にも及び、発表者は5名、受け持ったセッションは8つに及び、例年にない活躍を見せました。なぜ今年のAgile2008では、これほど多くの日本人が参加し発表に至ったのか? そのレポートをお届けします。

Javaトラブルシューティングメルマガ総集編 2008/08~09

エスエムジーでは、Java全般を対象にしたトラブルシューティングサービス「JaTS」を提供しています。この記事では、前回に引き続き、JaTSにて蓄積したトラブル事例とその解決ノウハウの一部をお送りしている「Javaトラブルシューティングメールマガジン」(JTSMM)の総集編として、過去2ヶ月のトラブル事例と追加情報をダイジェストとして提供いたします。

モデル駆動アプローチがうまく機能しない(しなくなる)8 つの理由

この記事では、モデル駆動アプローチがうまく機能しない、または機能しなくなることによって期待した結果が実現できなくなる 8 つの理由について書きたいと思います。

消費者主導契約を使ったサービス指向開発

この論文では、組織のサービス開発能力改善を目指した実用的な提案をします。

スケーラビリティの構築とパフォーマンスの達成:バーチャルパネル

InfoQ.com向けのこのバーチャルパネルでは、大企業やプロジェクトからスケーラビリティやパフォーマンスの著名人を招待し、みんなが夢に描いているような結果を達成するための秘密を明かしてもらいました。

アジリティのためにコンポーネントチームより機能チームを選ぶ

Craig Larman氏とBas Vodde氏は、どのように、そして、なぜ機能チームがうまくいくのかを説明し、この主要な組織の変化が価値あるものであることを主張します。

仮想化とセキュリティ

仮想化にはたくさんの利点がありますが、かと言って、その上に実装するアプリケーションのセキュリティをないがしろにしてはいけないのです。

Rubyのオープンクラス:猿のようにパッチを当てない方法

最近リリースされたRuby 1.8.7のプレビューリリースをウオッチしていたRails開発者はすぐに1.8.7プレビュー1に関してあることに気がつきました。それは、1.8.7プレビュー1がRailsを破壊してしまうということです。