2

こんにちは、私は ORM ツールの岐路に立っているようです。同様の課題に直面した人々からアドバイスを求めています。過去に、CodeSmith と NetTiers テンプレートを使用して DAL を生成しましたが、すべて非常に良好でしたが、何らかの理由でこれを中止することにしました。

だから私は岐路に立っており、次のことを見つけました:-

  1. 私は PLINQO (Linq to SQL) を見てきましたが、これは素晴らしい仕事をしているように見えますが、Microsoft が Linq to SQL を確信していないため、これは良い選択ではないかもしれません。
  2. Linq to Entities - これはまだ始まったばかりで、私が間違っているかもしれませんが、人々は肥大化とストアド プロシージャの方法について不平を言っています
  3. 私は nHibernate を見てきました。これはおそらく最良の選択ですが、学習曲線が急勾配のようです
  4. LLblgenも同様
  5. Subsonic - これについてよくわかりませんか?
  6. 実証済みの NetTiers に固執し、肥大化を忘れ、エンタープライズ ライブラリを使用せざるを得ないことを忘れ、それが作成する動的 SQL を忘れ、フォーラムでの活動がほとんどないことを忘れて、これを忘れて使用してください!

私は既に Codesmith を所有しており、他に何かを購入するつもりはありません。生成されたコードは中信頼モードで動作する必要があります...

私が見逃した他の人もいるかもしれません。ORM ツールが注目に値する理由を説明する回答を探しています。

ありがとうリチャード

4

5 に答える 5

2

私は最後のプロジェクトで .netTiers を自分で使用しました。しかし、私が現在取り組んでいるものでは、Linq 2エンティティを試しています。Linq2EF が成熟していないことについては正しいです。EDMX ファイルからコードを生成する T4 テンプレートを使用するのはそのためです。また、これらのテンプレートを変更して、ビジネス オブジェクト、インジェクション用のインターフェイス、および DAL + DAO を用意しました。今の仕組みに満足しています。良いことは、エンティティに対して LINQ を使用できることです。

それ以外の場合は、 Fluent nHibernate (リンク) もお勧めします。私たちも検討したことの一つです。しかし、多くのことを自分で書かなければなりません。すべてのコードが生成される .netTiers に慣れているわけではありません。

Subsonic 3 (リンク) は発売から約 1 週間なので、ぜひチェックしてみてください。私が見たものに基づいて、それは非常に有望に見えます. また、T4 を使用しているため、ニーズに合わせてスライス & ダイスできます。

于 2009-07-10T08:22:22.580 に答える
1

数週間試してみて、最終的にNHibernateに落ち着きました。カスタマイズはとても簡単です。学習曲線があり、linq to sql のようなものをセットアップするには少し時間がかかりますが、これの利点は、魔法のように見えないことです。それがどのように機能するかを理解し、ニーズに合わせて正確にカスタマイズできるようになります。コミュニティも非常に優れており、利用可能なドキュメントがたくさんあります。最新のORM(コード生成なし、POCOを使用可能)と成熟度のバランスが取れているように思えます。

于 2009-07-10T09:18:45.600 に答える
1

DataObjects.NET を試すことができます。この ORM は「コード ファースト」アプローチを使用し、DB スキーマのアップグレードと LINQ をサポートします。この簡単な説明http://www.x-tensive.com/Products/DO/を確認してください。

于 2009-07-29T07:08:09.147 に答える
0

ORM を使用する理由については、Glenn Block によるブログ投稿へのリンクを参照してください。私の経験としては、ちょうど 1 年ほど前に ORM の使用を検討していて、NHibernate を選択しました。

私にとって永続性は解決済みの問題であり、ドメイン モデルからリレーショナル データへの何らかの形式のマッピングを超えて、もう心配する必要はありません。Linq To SQL を見ましたが、データがオブジェクトにどのようにマップされるかを十分に制御できず、Entity Framework は私の好みに合うほど成熟していませんでした。私のチームの何人かが取り組んでいたもう 1 つの主要なプロジェクトでは、NetTiers と CodeSmith を使用しました。最終的に NHibernate を選択したのは、私にとって最も成熟した ORM の 1 つであり、きめ細かなオブジェクト モデルをサポートするだけでなく、クエリ機能が組み込まれており、他のパフォーマンスの問題に本質的に対処する機能を提供していたからです。キャッシングなど。

はい、学習曲線がかなり急勾配であることは認めますが、時間を投資すれば、そこから得られるメリットは非常に大きい. Ayende RahienFabio Mauloのブログは、NHibernate に関する情報の宝庫です。このLINQ プロバイダーを介して NHibernate の LINQ サポートがいくつかありますが、Steve Strongは現在、NHibernate で完全な LINQ サポートを提供する機能をまとめています。したがって、すべてNHibernateに当てはまりますが、結局のところ、何が最も快適かによって異なります。

于 2009-07-10T09:14:50.460 に答える