2

私は、小規模から中規模の Web ベースのプロジェクトを開発する開発会社で働いています。主に Microsoft テクノロジを使用しています。現在、テクノロジの選択段階にあり、ORM を検討しています。将来のために標準の ORM を選択する必要があります。プロジェクト、今のところ、選択を2つに絞り込みました: -

• 冬眠: -

  1. 成熟した。
  2. オープンソース。
  3. 機能豊富。
  4. 構成可能で柔軟性があり、最高の拡張が可能です。
  5. 強力なコミュニティによって十分にサポートされています。
  6. 多くの場所で成功することが証明されています。

• EntityFramework : -

  1. マイクロソフト製品。これは、他の Microsoft 製品との緊密な統合を意味します。
  2. 高度にサポートされ、オンラインで豊富なリソースがあり、オンラインでかなり強力なコミュニティがあります。
  3. 非常に急速に進化し、修正も非常に速く行われ、日々改善されています。
  4. リンク。
  5. Nibernate よりも低い学習曲線。

技術は、それぞれ以下に従って測定されます。

  1. 使いやすさ - 私たちのプロジェクトでは、時間が非常に重要です。
  2. 長期的な決定です。つまり、テクノロジー間で移行を続けるつもりはないということです。
  3. Microsoft 製品との統合。
  4. コンプライアンス ツール (Nhibernate の activerecord など)、コミュニティ、およびリリースに関するサポート。
  5. これが、私たちが使用する唯一の基準になります。
  6. 構成の柔軟性。
  7. 機能 - 多くの複雑なマッピングや第 2 レベルのキャッシュは必要ありません。今のところ、バッチ処理を SP に置き換えることができます。

私の質問Nhibernate に対して Entity Framework を選択した場合、ORM の将来のデフォルト実装として、長期的にはそのような決定の長所と短所は何ですか?

これについて誤解しないでください。当面は Nhibernate が正しい答えであることはわかっていますが、EntityFramework の急速な進化を考慮すると、近い将来、あるいは遠い将来の正しい選択になるのでしょうか。


私が研究で頼ったリソースのいくつか: -

http://ayende.com/blog/4351/nhibernate-vs-entity-framework-4-0

NHibernate、Entity Framework、アクティブ レコードまたは linq2sql

.Net 開発に使用する ORM ツール

http://blogs.msdn.com/b/adonet/archive/2012/03/22/ef5-beta-2-available-on-nuget.aspx

4

2 に答える 2

9

当面は Nhibernate が正しい答えであることはわかっていますが、EntityFramework の急速な進化を考慮すると、近い将来、あるいは遠い将来の正しい選択になるのでしょうか。

この質問には誰も答えられません。現時点では、将来実装される機能のロードマップさえないため、ADO.NET チームでさえこれに問題があると思います。現時点では、開発プロセスは主にData UserVoiceによって駆動されており、来月に期待できる機能、来年期待できる機能、およびまったくない機能を知る方法はありません。


正解はありません。さらに、あなたがやろうとしている「標準化」プロセス全体が間違っています。現在の問題に適切なソリューションを使用してください。将来解決しなければならない問題が何であれ、その問題を知らず、その時にどのツールが利用可能になるかを知らずに、単一の「標準」を選択するのはばかげています。

あなたのアイデア全体は、敏捷性とベストプラクティスに反しています。内部フレームワークやソフトウェア ファクトリにまで拡張することもできます。.NET 開発は非常にダイナミックな分野です。今日良い選択と思われるものは、来年には非推奨になる可能性があるため、「標準」に縛られないでください。将来的には、さらに興味深い選択が行われる可能性があります。また、テクノロジとプラクティス (NoSql データベースなど) にさらに興味深い変化が生じる可能性もあります。

長期にわたる戦略的ソリューションが必要な場合は、メインフレームと COBOL を使用してください。彼らはすでに彼らの寿命を証明しました。

于 2012-04-12T08:27:02.877 に答える
1

決定を下す際には、現在NHibernateとEFから利用できる機能に集中することをお勧めします。渡さなければならない正確な要件を確認し、それらをORMと照合します。上記の質問では、NHibernateに対してlinqクエリを実行することも可能であることに注意してください。また、第2レベルのキャッシュの必要性を割り引いています。長期的に柔軟なプラットフォームを探している場合は、それを確実に考慮に入れる必要があります。

于 2012-04-12T08:52:11.023 に答える