Entity Frameworkは本番稼働の準備ができていますか?[閉まっている]


10

私が引き受ける予定の新しいプロジェクトのEntity Frameworkを調べています。その研究の一環として、業界の専門家に、安定していて「現実世界」での実装の準備ができているかどうか尋ねています。

実行中は:

  • EF
  • NHibernate
  • DevExpress XPO

私はすでにXPOの経験が豊富ですが、特に満足していません。

回答:


8

はい、ただしいくつかの注意点があります:

  • マイクロソフトによって完全にサポートされており、コミュニティは成長しています。ただし、最も近い競合者であるnHibernateよりも新しいため、コミュニティはまだ成熟していません。

  • コミュニティの成熟度が低いことに加えて、EF4で機能を利用できるが、ほとんど文書化されていない場合があります。またはEF4は、Googleがサポートできない例外をスローします。

  • Microsoftの意図どおりに使用するとフル機能を備えていますが、私の経験では、既存のシステムに改造するのは非常に難しい場合があります。理想的には、100%Microsoftスタックのグリーンフィールドシナリオで使用します。それは確かに他のシステムと混在するのに十分な柔軟性がありますが、そうすることはかなり困難を増します。

ただし、要点を繰り返しますが、本番環境で使用するには完全で安定しています。


注意すべき重要な点の1つは、明白に見えますが、痛みを引き起こすまで見過ごされがちですが、ORMはリレーショナルパラダイムからOOパラダイムへのマッピングに取り組んでいることです。これらの層のいずれかがそれぞれのパラダイムのルールに従っていない場合は、さらに傷つくことになります。

これは両方の方法で実行できます。SQLとOOPのリレーショナル/セットベースのパラダイムに精通している場合、ORMは2つをバターのように混ぜ合わせます。データベースがOOになりたいように見え、OOコードがレコードベースにしたいように見える場合は、YMMVです。


+1:情報をありがとう。幸いなことに、プロジェクトはほぼ完全に.NETスタックのグリーンフィールドであり(まだmysqlとsqlサーバーの間で議論されています)、最初にドメインをモデル化します(うまくいけばテーブル構造を生成します)
Steven Evers

@SnOrfus:FWIW私は最近、MySQLに加えてEFを使い始めて、本当に楽しんでいます。
Eric King

5

私たちはいくつかの生産アプリケーションでEFを使用しています。また、いくつかのプロダクションアプリにNHibernateがあります。STWによる、EFが「Microsoftの意図どおりに使用した場合」に最も効果的に機能するというコメントは確かに当てはまります。NHibernateチームが意図したパターンに従って使用した場合に最もよく機能することは、NHibernateにも当てはまります。XPOの知識も経験もありません。

NHibernateを運用に投入したことを後悔していません。
Entity Frameworkを本番稼働させたことを後悔していません。

EFを使用する要因の1つは、LINQとの統合です。NHibernateはLINQでも多くの作業を行ってきましたが、まだ調査する時間はありません。


両方の操作を学ぶのに最適な方法であるの両方で動作するように。これは、VB.NETとC#の両方を学ぶのと少し似ています。違いを見つけたときに質問し、それらの質問をすることで、最終的に理解が大幅に向上します。
STW

3

私たちはWebプロジェクトにEF4.1をコードファーストアプローチで使用しています。前述のように、Microsoftが意図したとおりの使用方法を維持すると、多くの問題を回避できます。

しかし、システムがまだ成熟していないことに気づくでしょう。私はこれを次の理由で言います。

  1. 動作はまだ大きく変化します(CTP5から4.1に比べて)
  2. LINQ to Entitiesジェネレーターは、基本型(Int、String、ロット)のみを処理できます。
  3. 既存のデータセットをマージしようとすると、いくつかのことが完全に直感的に機能しませんでした
    1. 特定のdbsetのテーブル定義のみを作成することはできません
    2. 日時などのフィールドのマッピングには、グーグルが必要です。
  4. その他の既知の問題を確認する

2

私は実際にはフルスタックを使用していませんが、製品で少しずつ使用しています。ニーズに合わせていくつかのピースを調整する必要がありましたが、かなり成熟しているようです。


0

そう思います。マルチテナントWebアプリケーションの開発にEF4 code-first(CTP)を使用しています。


+1-はい、私は非常に大規模なエンタープライズプロジェクトで集中的に使用するチームでコーチングを行いましたが、かなりうまくいきました。それは最新ではなく、最初のバージョンでした。したがって、最新バージョンを使用することは100%安全です。

実際に運用環境で実行していないソフトウェアを100%信頼できるかどうかはわかりません。
ジェレミー、

-1

私はそう思う/望んでいます...私はEF 4と新しいモデルファーストアプローチでプロジェクトを始めています...

EF 4は、最初のバージョンよりもはるかに堅牢で機能が充実していることを確認したので、それでいいと思います。


-1

はい、あります。ただし、(他のフレームワークと同様に)更新が出たときに、アプリケーションを更新および再テストするためのリソースを割り当てる必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.