質問

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

それで私は岐路に立っていて、次のことを見つけました:-

  1. 私は PLINQO (Linq to SQL) を検討しましたが、これは素晴らしい仕事をするようですが、Microsoft が Linq to SQL について不確実であるため、これは良い選択ではないかもしれません。
  2. Linq to Entities - これはまだ初期段階にあり、私が間違っている可能性がありますが、人々はその肥大化とストアド プロシージャの仕組みについて不満を抱いています。
  3. nHibernate を検討しました。これが最良の選択かもしれませんが、学習曲線が急なようです
  4. LLblgenも同様
  5. 亜音速 - これについてよくわかりませんか?
  6. 実証済みの NetTier を使用し続け、肥大化することを忘れ、エンタープライズ ライブラリを使用する必要があることを忘れ、それが作成する動的 SQL を忘れ、フォーラム上で NetTier がほとんど活動していないことを忘れ、これを忘れて使用してください。

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

他にも見逃しているものがあるかもしれません。ORM ツールが検討する価値がある理由を説明する回答を探しています。

ありがとう、リチャード

役に立ちましたか?

解決

前回のプロジェクトでは私自身 .netTiers を使用しました。しかし、私が現在取り組んでいるものでは、Linq 2 Entitiesを試しています。Linq2EF が成熟していないという意見は正しいです。私たちはそれについていつも愚痴をこぼしているので、EDMX ファイルからコードを生成する T4 テンプレートを使用しています。また、これらのテンプレートを変更して、ビジネス オブジェクト、インジェクション用のインターフェイス、および DAL + DAO を追加しました。現在の動作には満足しています。良い点は、エンティティに対して LINQ を使用できることです。

それ以外の場合は、こちらも提案します Fluent nHibernate (リンク) あなたへ。それは私たちも検討したことの一つでした。ただし、多くのことを自分で書かなければなりません。すべてのコードが自動的に生成される .netTier とは異なります。

以来 亜音速 3 (リンク)はちょうど1週間ほど前に公開されたので、チェックしてみることをお勧めします。私が見た限りでは、それは非常に有望に見えます。T4 を使用しているため、ニーズに合わせてスライス&ダイスできます。

他のヒント

私は数週間のためにいくつかを試してみましたが、最終的にはNHibernateので和解しました。カスタマイズが非常に簡単です。そこ学習曲線があり、それは、LINQ to SQLはこれの逆のようなものは、それは魔法のように思われないということであることを設定するには少し時間がかかります。あなたはそれがどのように動作するかを理解するだろうし、あなたのニーズに合わせて正確にそれをカスタマイズすることができるようになります。コミュニティもとても良いですし、利用可能なドキュメントがたくさんあります。現代のORM(ノーコード生成、POCOのを使用することができます)との間で良好なバランスであることを私には思える、と成熟ます。

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

は、私は2つの最も評判と強力なORMツールが今していると思うの NHibernateは LLBLGen Proのの。

指向ドリブン

NHibernateは= の非常にドメインています。

指向ドリブン

のLLBLGen Proの= のデータます。

彼らは両方の優れており、各プロジェクトのためにそれの性質に応じて、1つは、他の上、より適切かもしれません。また、頻繁に個人的な好みや嗜好、あるいは開発チームの文化にダウンしています。

私は最後に、全体的な彼らは両方とも優秀であり、彼らの両方が彼らのわずかな長所/短所を持っていても言ったように。

理由はORMを使用するためには、ここでは<のhref = "http://blogs.msdn.com/gblock/archive/2006/10/26/ten-advantages-of-an-orm.aspxへのリンクです「REL =」nofollowをnoreferrer ">実際にそれをすべて言うグレン・ブロックのことでブログの記事。私の経験については、ちょうど1年以上前、私はORMを使用するために探していたと私はNHibernateはを選びました。

持続性私には解決される問題は、それが私はもう心配する必要はありません何かである私のリレーショナルデータへの私のドメインモデルからのマッピングのいくつかのフォームを超え、です。私は、LINQ to SQLは見たが、それはちょうど私のデータは私のオブジェクトにマッピングされたとEntity Frameworkのは、私の好みのために十分に成熟した近ところではなかったかの上に十分な制御を与えませんでした。もう一つの主要なプロジェクト私のチームのいくつかは、使用NetTiersとCodeSmithに取り組んでいたし、あなたが言うように、肥大化、コード生成(およびその膨大な量が)私はビットquesyを感じました。最後に、私には、それはそこに最も成熟のORMの一つであるので、私はNHibernateはを選んだ、それは細かく粒状のオブジェクトモデルをサポートしていますが、それは施設を照会に建てられており、それは本質的に他の性能問題に対処するだけでなく機能を提供しましたキャッシングなど。

はい、私は、学習曲線はかなり急であることを認めるだろうが、あなたは時間を投資すれば、あなたはそれから抜け出すになるメリットは巨大です。 Ayende Rahienするのブログや<のhref = "http://fabiomaulo.blogspot.com/" のrel = "nofollowをnoreferrer"> NHibernateはに関する情報の鉱山ですのファビオMaulo。この LINQプロバイダではなく、<のhref = "HTTP経由でNHibernateのためのいくつかのLINQのサポートがあります: //blogs.imeta.co.uk/sstrong」のrel = 『nofollowをnoreferrer』>スティーブ強いのは、現在一緒にNHibernateはフルLINQのサポートを提供します機能を入れています。だから、すべてのNHibernateのために行くですが、一日の終わりに、それはあなたが最も快適であるかによって異なります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top