現在、次のスタックがあります。
これへの移行を計画しています:
私の質問は、VS 2010でMVCに移行するときに、エンティティフレームワーク(または別のORM)、マイクロORM( Massive など)、または単なるSQLを使用する必要があるかどうかです。
私がVS 2010について読んだすべてのチュートリアルは、データトランザクションにEntity Frameworkを使用することを目的としていますが、それは予見可能な将来(5年以上)に使用できるでしょうか?
必要に応じて、クライアントのアプリケーションは10〜1,000人のアクティブユーザーを持つことができます。
私は最近、インラインSQLクエリの使用からEFの使用に切り替えました。これが私が見つけたものです:
長所
短所
1:0-1
を使用したい1:0-*
関係を作成しようとしているためです。私はEFのエキスパートではないので、おそらくいくつかのことを逃しました。これらは、インラインSQLからEntity Frameworkに切り替えるときに私が過去に遭遇したことがわかっているアイテムにすぎません。切り替えができてうれしいですが、気まぐれなためにEFを本当に嫌うこともあります。
Entity Frameworkは生産性ツールです。そうしない正当な理由がない限り(たとえば、SQL 2000を使用しているか、テクノロジを強化する時間がない場合)、自由に最適なツールを使用してください。
そうは言っても、エンティティのコンセプトはMVCパターンのモデルに非常によく翻訳されると思います。モデルとテーブルとの1対1の関係を持つことは悪い習慣ですが、エンティティの観点から考えると、クリーンなデザイン、読みやすいコード(特にLINQの場合)が生成される傾向があります。
Entity Frameworkは、マイクロソフトによって積極的にサポートされています。 「サポートはX年間続く」と言っている魔法の水晶玉を持っている人はいません。エンティティが今後5年間で死ぬと信じる理由はありません。
別の潜在的な解決策は、V.S。で提供されているものとは別のエンティティフレームワークライブラリを使用することです。ウェブ上にいくつかあります。
Entity/3レイヤーフレームワークのコンセプトは、しばらく前から存在しており、Microsoftが独自の「公式」フレームワークをリリースする前に、他の多くの開発者と同様にいくつかのカスタムライブラリと連携しています。
長所
Microsoftの定数ライブラリ/フレームワークの変更に悩まされることなく、エンティティ(D.A.L.)フレームワークの利点を活用できます。
いくつかのdtabaseブランドを使用するなど、既存の公式ライブラリでは使用できない可能性があるライブラリに機能を追加する。
短所
ライブラリまたはツールをサポートする必要があります。エンティティを生成するためのエンティティジェネレータコードツールを使用することは非常に一般的です。
問題と既存のソリューションに基づいてアーキテクチャ上の決定を行う必要があります。他のテクノロジーと同様に、長所と短所があります。
私は個人的には通常、新しい開発にエンティティフレームワークを使用しますが、既存の機能するコードを書き直すことはしません。そうすれば、将来の開発のスピードが得られますが、コードの変換に多くの時間を費やす必要はありません。このアプローチの欠点は、一貫性が低下することです。
あなたの状況では、私は間違いなくEntity Frameworkを使用しますが、MVCでうまく機能することがわかりました。
ここにいくつかの本当の理由と指針があります。
ただし、ORMの使用について学習する必要がある多くの事項があります。
考慮すべき事柄
また、既存のデータベースがある場合でも、コードファーストアプローチを強くお勧めします。