質問
NHibernate 用のエンティティ クラス、hbm ファイル、SQL スクリプトを生成するための最適なツールは何ですか。
以下のリストは、 http://www.hibernate.org/365.html, 、なぜどれが最高ですか?
- Moregen 既存の Visual Studio プロジェクトにマージできる、無料のオープン ソース (GPL) O/R ジェネレーター。生成されたクラスへの変更もマージします。
- NConstruct Lite NHibernate O/R マッピング ソース コードを生成するための無料ツール。さまざまなデータベースのサポート (Microsoft SQL Server、Oracle、Access)。
- GENNIT NHibernate コード ジェネレーター 無料/商用 WYSIWYG オンライン UML デザイナーを使用した NHibernate コードの Web 2.0 コード生成。
- NHibernate テンプレートを備えた GenWise Studio 商用製品。既存のデータベースをインポートし、ファクトリを含むすべての XML とクラスを生成します。NHibernate BO-Layer 用の asp.net Web アプリケーションを自動的に生成することもできます。
- HQL アナライザーと hbm.xml GUI エディター
- Mats Helander による ObjectMapper は、NHibernate をサポートするマッピング GUI です
- MyGeneration は、テンプレートベースのコード ジェネレーター GUI です。そのテンプレート ライブラリには、データベースからマッピング ファイルとクラスを生成するためのテンプレートが含まれています。
- AndroMDA は、モデル駆動アーキテクチャ (MDA) を使用して UML モデルを配置可能なコンポーネントに変換するオープンソースのコード生成フレームワークです。NHibernate を永続化フレームワークとして使用するデータ アクセス レイヤーの生成をサポートします。
- NH 用の CodeSmith テンプレート
- NHibernate Helper Kit は、クラスとマッピング ファイルを生成するための VS2005 アドインです。
- NConstruct - Intelligent Software Factory 商用製品。簡単なウィザード手順を使用して、情報システムのすべての層の完全な .NET C# ソース コードを生成します。NHibernate に基づく O/R マッピング。WinForms と ASP.NET 2.0 の両方に対応。
解決
見るべきだと思います Fluent NHibernate その代わり。マッピングを生成すると、常に 80% マークに達しますが、希望どおりにするにはカスタマイズする必要があります。Fluent-NHibernate を使用すると、コンパイルセーフでリファクタリングに適した API を使用してエンティティをマップできます。
他のヒント
新しい 2.0 Beta 2 リリースが利用可能になり、多くの新機能と流暢な nhibernate、1 対多および多対多マッピングのサポートが含まれます。
試してみることができます Mindscape NHibernate デザイナー これは Visual Studio 2010 にインストールされます。まだ試してないけど。
これを行うための商用ツールは次のとおりです。 ビジュアルNHibernate. 私は Visual NHibernate を作成する会社 Slyce Software で働いています。
アップデート: Visual NHibernate はオープンソース化されました。見る: 発表
最初に自問する必要があるのは、なぜ発電機が必要なのかということです。正直に言うと、私の経験では、hbm ファイルを作成することはまったく難しくありません。
そうは言っても、本当に hbm ファイルを書きたくない場合は、次のことを検討する必要があるかもしれません。 アクティブなレコード.
Fluent についてはいくつか聞いたことがありますが、実際に使ったことがないので何とも言えません。hbm ファイル用にインテリセンスを設定していますか?私は独自の XML ファイルを作成しているだけですが、それがあなたが探しているものではないことはわかっています。
テーブルを生成するために SQL スクリプトを探していますか?NHibernate の利点の 1 つは、柔軟なクエリ生成に基づいているため、すべてのオブジェクトに対して SP を作成する必要がないことです。
Devart の NHibernate Designer を見てください。 NHibernate のエンティティ開発者
注記:デバート・カンパニー.
NConstruct lite と codesmith の両方を試しました。VB で書かれた既存の asp.net プロジェクトの既存のデータベースからオブジェクト モデルを取得する必要がありました。これが私の経験です。
コードスミスの短所:
- テーブル間の継承を検出しません
- データベースビューをマップしません
- 複雑な使用法
コードスミスのプロ:
- C# と VB を生成します
- PostgreSQL を含む多くの DB エンジンのサポート
- Visual Studio の統合
NConstructの短所:
- VB は生成されず、C# のみが生成されます
- DB エンジンはほとんどなく、SQL Server、Oracle、MS-Access のみ
NConstructの長所:
- ビューのマップ
- 一部の継承を自動検出します (1-1 関係の場合)
- 単純
私の場合、NConstruct が作業の約 60% をやってくれました。
はい、hbm ファイルの作成は非常に簡単です。
ただし、大規模な DB がある場合、これは非常に面倒です。