web-dev-qa-db-ja.com

ASP.NETMVCおよびORMの選択

大規模な老朽化した社内エンタープライズアプリケーションの再開発を開始する準備をしています。 ASP.NET MVCを使用することを決定しましたが、どのオブジェクトリレーショナルマッピング(ORM)を選択するかを検討しています。もちろん、利用可能なオープンソースおよび有料のORM実装は多数あります。ただし、 NHibernate が最大のマインドシェアを保持しているようですが、 Entity Framework はMicrosoftの新しい注目度です。

調査を行って両方をいじっている間、どのORM(NHibernate、Entity Frameworkなど)を好むのか、そしてその理由について、コミュニティに公開したいと思いました。

やや似たStackoverflowの質問

追加の.NETORMリーディング

28
ahsteele

Sharp Architecture NHibernateを使用するASP.NETMVCアプリケーションフレームワークを確認する必要があります。

私は過去数年間にいくつかのO/RMを使用してきましたが、NHibernate以外のものを選択する方法はありません。

  1. それは最も成熟しています。
  2. 膨大な機能セットがあります。
  3. その背後には良いコミュニティがあります。
  4. Fluent NHibernate などの素晴らしい補助プロジェクトがいくつかあります。

あなたがリンクしている質問で、人々があなたに何以上の情報を提供できるかわかりません。

13
Iain Holder

クレイジートークの答え:なし。

これは、ORMが正しく使用された場合に優れたテクノロジーではないということではありません。しかし2011年には、すべての問題が釘であるとは限らないユニバーサルハンマーに急速になりつつあります。そして、現代のORMには非常に多くのことが起こっているので、特にそれらに精通していない人々にとって、彼らは物事を助ける以上に物事を混乱させる可能性があります。または、単純なSQLの方が優れている場合もあります。 ORMがどれほど優れていても、抽象化willある時点でリークします。

注目すべきもう1つの側面は、NoSQLの動き全体です。このテクノロジーはまだ少し新しいものですが、新しい作業の場合は、アプリケーションの構築に非常に手間がかかるため、考慮しなければならないデータアクセス戦略です。

2
Wyatt Barnett

簡単な答え:両方を使用してください(私は実際に両方を使用しています)...

ORMには複数の可能性があり、すべてはあなたが望むものに依存します。

実際のORMマッパーとして、NHibernateおよびFluent NHマッピングを強くお勧めします。ニースのアーキテクチャをまとめるには多くの調査が必要ですが、それでも邪魔になるものはありません。最小限の妥協で、真の柔軟性が得られます。

EF6x(コアは製品対応のIMHOではありません)はORMと呼ばれますが、生成されるものはDALに近いものです。 EF6では効果的にできないことがいくつかあります。それでも、これは読み取りモデルの私のお気に入りのツールですが、NHibernate(DDD /書き込みモデルに使用するNH)と組み合わせています。

今度はパフォーマンス-常に賛否両論です。 ORMアーキテクチャ(私の記事を参照: ORMの悪い習慣を避ける )を深く理解すると、直感的に次の方法を見つけることができます。それを速くします。 EF6x 5xをより速くする方法に関する私の別の記事です(少なくとも読み取り状況では): EF6.x 5xより速く

0
baHI