2009-06-17 10 views
2

私は、エンティティフレームワークでの不信任投票を提案公共の手紙を見つけて驚いたが(http://efvote.wufoo.com/forms/ado-net-entity-framework-vote-of-no-confidence/を参照)ADO.NET Entity Frameworkのv3.5を使用するのか、v4.0を待つのですか?

は手紙の中で述べた理由は、エンティティフレームワークの現在のバージョンを使用してからあなたを保つでしょうか?あなたはむしろv4.0を待つでしょうか? ORMを使用しますか?

+1

+1偉大な質問ウィレム、私はEF v1を待っていて、v2でそれを解くのを待っています。 – Kev

+0

私はEF v1がフィーチャー不完全なフレームワークであると述べています。 = D –

+0

正直言って、これはフレームワークなのです。通常、この単語は、何かを構築するための基本的な基礎を記述するために使用されます。私はその目で見ると、それは本当に悪くも不完全でもないと思います。それをたくさん使って、はい、それはNHibernateのようにより健康的であることがうれしいですが、それは再びフレームワークです。出発点。 –

答えて

3

もう1つのORM。

私は間違った反応を出すべきではありませんが、現在はnHibernateだけが機能的に完全です。

私はTDDファンですので、簡単にテスト可能なPOCO ORMソリューションが必要です。それがあなたのバッグなら、EF3.5は外です。 EF4.0はそれを導入していますが(http://blogs.msdn.com/adonet/archive/2009/05/21/poco-in-the-entity-framework-part-1-the-experience.aspx)、少なくとも1つの大きな欠点があります - 継承をサポートしていません。

NHibernateはより完全ですが、EFは使いやすくなる可能性があります。これまでどおり、仕事のための最善のツールですが、エンタープライズ規模のTDD開発アプリの場合は、nHibernateに進みます。

また - >http://www.nhprof.com/

+0

私は違うことを頼みます - それは単なるORMではありません。これは、NHibernateが提供するものよりも、ドメインオブジェクトモデル(概念的)と基盤となるストレージ(データベース)モデルとの完全な分離です。 –

3

私は基本的にデータ層の当社の現在の混乱をリライト私の現在のプロジェクトのためにそれを使用してみました - > NHibernateはをはるかに簡単にdevの可能プロファイラがあります。

これは機能しません。

最初にエンティティをビューから外すと、デザイナーはすべてのNOT NULLプロパティをエンティティキーに強制しようとします。これはほとんど私が望むものではありません。これを回避するには、少なくとも2か所でxmlを編集し、EntityKeyプロパティを更新して再追加するため、オブジェクトを追加するたびにXMLを編集する必要があります。 Must specify mapping for all key properties in Entity Framework?

第二に、あなたは関連付けを作成しているときに、すべてのエンティティのキ​​ーを使用しなければならない - How can you make an association without using all entity keys in entity framework?

これら二つのものを3日間に私を開催し、私はLINQ to SQLでに戻って、それが数時間で行っていました。 (少なくとも、私が苦労していたシステムの少なくとも一部...)私はそれらが「信用できない投票」にあるのかどうかはわかりませんが、私の意見ではそれほど準備ができていません。

また、私が質問したすべてのEF質問について、私はここにいましたが、私は現在の使用量が非常に低く、ヘルプとサポートを受けることが難しいと思わなければなりません...おそらく最も大きな理由です何かを使用しないでください。

EDIT ...のは、次のバージョンが良いです期待しましょう:私たちの現在の計画は、LINQの2 SQL(私は金曜日までにプロジェクトを完了する必要があり)に固執して、かどうかを確認するために、すべての他のORMを評価することです他の何かが良いです。他の開発者はレコードのL2Sが嫌いですが、私は決して重大な問題を抱えていませんでした...

4

EFの現在のバージョンは間違いなく完璧ではなく、欠点や欠点がたくさんあります。 EF v2へのアップグレードパス(またはそれはEF4ですか?)は、かなりバラ色に見えます。

  • 完全な永続性の無知 - (!でも、複数の言語で)あなたはPOCOクラスをあなたのストレートを使用することができます
  • 延期読み込みオプション複数形/個別化をサポートして
  • 大幅に改善デザイナーとして構成
  • 能力"ドメインファースト"デザインを行い、モデルからデータベースを作成する
  • 複数の層にまたがってデータを送信して変更を取り戻し、エンティティコンテキストに適用できる自己追跡エンティティを持つ能力

EF v2は非常に有望に見えますが、私は非常に熱心にそれを与えることを熱望しています。それが本当にすべての約束を現時点で維持しているのなら、間違いなく勝者です!

EF v2に関する最近のブログ記事が揃っていることを確認してください。ADO.NET team blog

マルク・

+0

自己追跡エンティティもPOCOで動作するのですか、これ(独自のバージョン、現在のバージョン、データベースバージョン)用の独自のソリューションをN層ソリューションで使用する必要がありますか? – WeNeedAnswers

2

EFは、いくつかの豊富なデザイン時サポートを持っていますが、私はNHibernateは学習曲線にもかかわらず、移動するための方法であることに同意する必要があります。あなたが何かを速くする必要があり、TDDやシリアライゼーション(MSのORMオファリングの大きな弱点)が気にならない場合は、EFに進んでください。

0

まあ、バージョン1の私の経験は面白かったです。私はPOCOを使いたかったのですが、それをサポートしていませんでした。周りを読んだ後、私はこれをしたマイクロソフト社の団体からいくつかのコードを見つけました。

コードを生成するのがちょっと面倒ですが、プロセスのこの部分全体がそれほど悪くはありませんでした。

私が遭遇した本当の不快な部分は、N階層開発のために、並行処理チェックが組み込まれていないことでした。問題を見た後、特にユーザーの介入のためにバージョン管理をクライアントに戻したい場合は、これを自分で管理する必要があります。

LINQクエリのINキーワードは2番目の厄介で絶対的に愚かなものがありませんでした。サポートされていないため、回避する必要があります。私は解決策を見つけましたが、抜本的な見直しを迅速に修正した他のコードを導入するのは本当に混乱でした。

私はEF 4.0(2.0)を使用しますか?はい、絶対に、どうしてですか?実際にステージ2で私はこれを使用します。 POCOをサポートしているように見えますが、私の並行処理モデルは問題なく(まるでデルタコピーのように)動きます。これまでのところすべてうまくいきました。私はMicrosoftのBig人たちが彼らのやり方の誤りを見て、うまくいくソリューションを提供したことを、この時間を祈っています。

エンティティ開発とコンセプトモデル全体を最初に購入した場合は、完全なMicrosoftソリューションを提供する唯一の方法です。 M言語で行われていることがアイデアを食い止め、モデリング全体をデータベースに戻すかもしれませんが。

エンティティのものを購入しないと、エンタープライズライブラリに強く行きます。確かなコード基盤とデータベース中心のパラダイム上に構築されたたびに動作する実績のあるテクノロジーです。もし私がこのストアドプロシージャがミツバチの膝であり、彼らがテーブルにもたらすものと同じだと思うなら、私はこの道を行くでしょう。

あなたの気持ちが本当にエキゾチックで、ちょっと気晴らしていると感じたら、私はCouchDBのようなNO-SQLのアプローチに行きます。しかし、これには慣れています。その気が変わって本当に間違っていると感じる。しかし、状況は非常に早い時間に開発され、ソリューションは予想以上に堅牢で速いようです。私はノーマライゼーションにあなたの大きな場合は、このタイプのソリューションを持っていないだろうし、それはNO-SQLのアプローチに適用することができると思う。モデル全体を頭で動かす必要があり、アプリケーションは、適用される技術によって推進される方法でモデル化される必要があります。

私はCouchDBの方法が少し汚いと非常に間違って見つける。しかし、それはそれを使うために非常に多くの説得力のある理由があり、私はそれがすべてのプログラマーの精神に浸透すると考えており、今後数年間で主流になるだろう。

新しいバージョン4でも、Nティア環境にはあまり考えられていませんでしたが、私の最大の悩みはまだエンティティ全体のものでした。ボイラープレートコードは、エンドユーザー(開発者)が行う必要がある多くのボイラープレートコードを備えた2層ソリューションであり、堅牢で信頼性の高いNティアの仕方で機能するようになったという気持ちがまだあります。

関連する問題