0

最初は小さいですが、年を経て大きくなる可能性のある新しいプロジェクトを開始します。私は、ASP.NETMVCをjQueryforUIで使用することを強く確信しています。いくつかの理由でデータベースとしてMySQLを使いたいのですが、いくつかのことを心配しています。

私はLinqにまったく慣れていませんが、慣れれば使いやすいようです。

まず、データへのアクセスは簡単でなければなりません。そのため、MySQLをLinqに使用する必要があると思いましたが、直接サポートされていないことをどこかで読みましたが、MySQL.NETコネクタはEntityFrameworkのサポートを追加します。私はそれの賛否両論が何であるかわかりません。DbLinqも私が聞いたものです。データアクセス層ではなくロジック層にフィルターを適用できるリポジトリパターンを実装できればと思います。Entity Frameworkを使用すれば可能ですか?

パフォーマンスも気になります。Entity Frameworkを使用すると、大量のデータを取得してフィルタリングするとのことです。そうですか?

つまり、質問は基本的に-

  1. MySQLからLinqへの移行は可能ですか?はいの場合、どこで詳細を入手できますか?
  2. MySQLでEntityFrameworkまたはDbLinqを使用することの長所と短所は?
  3. MySQLでEntityFrameworkまたはDbLinqを使用してデータにアクセスするのは簡単ですか?
  4. データアクセス層ではなくロジック層にフィルターを適用できるリポジトリパターンを実装できますか(MySQLでEntityFrameworkを使用する場合)
  5. データベースから大量のデータをフェッチして、それにフィルターを適用しますか?

その場合、私の側からの質問が多すぎると思われる場合は、この分野の経験豊富な人として、この状況で(かなりの理由で)何をするかを教えていただければ、私の質問に答えるはずです。

4

2 に答える 2

1

私はALT.NETのファンなので、EntityFrameworkの代わりにNHibernateをプロジェクトに使用することをお勧めします。それよりも優れている点をグーグルで検索してください。あなたがそれを選択すると確信しています。

于 2010-06-04T14:17:20.093 に答える
1

あなたが言及した点に基づいて、私は最初にMySQLの代わりにMS SQLを使用し、EntityFrameworkの代わりにLINQ-to-SQLを実装することを真剣に検討します。理由は次のとおりです。

  1. あなたがたくさんのトラフィックを予想しているという事実は、あなたがどこから始めるべきかではなく、あなたがどこで終わることを計画しているのかを考える必要があることを最初に私に教えてくれます。私はMySQLよりもMSSQLの経験がかなり豊富ですが、MySQLのコミュニティバージョンから始めて後でアップグレードすることについて話している場合は、とにかくEnterpriseバージョンでかなりの費用がかかることになります。
  2. MySQLをサポートするバージョンのLINQがあると聞きましたが、最近変更がない限り、まだベータ版です。ASP.NET MVC 1.0、LINQ-to-SQL、JavaScript、jQuery、AJAX、およびMSSQLを使用した18か月のWebベースのプロジェクトを完了しています。WatiNを使用して、リポジトリパターン、ビューモデル、インターフェイス、単体テスト、統合テストを実装しました。テクノロジーの組み合わせは私にとって非常にうまくいきました。私が開発している個人的なプロジェクトでも同じ組み合わせを使用する予定です。
  3. ホスティングプランでMSSQLを入手すると、通常、その単一のインスタンスから複数のデータベースを作成できます。複数のMySQLデータベースを提供するため、より多くのストレージを提供するように見えますが、それは、アーキテクチャがインスタンスごとに1つのデータベースの作成のみをサポートしているためです。
  4. そもそもADO.NETに夢中でなかったので、ASP.NETMVCプロジェクトにEntityFrameworkを使用しません。接続を開き、コマンドオブジェクトを作成し、パラメーターコレクションにデータを入力し、executeメソッドを発行してから、一方向リーダーオブジェクトを反復処理してデータを取得する必要はありません。LINQ-to-SQLがプロセスをどのように単純化するかを理解したら、どちらにも戻りたくないでしょう。前述のプロジェクトでは、データベースに60を超えるテーブルがあり、約200の外部キー関係があります。データレイヤーのリポジトリパターンでLINQ-to-SQLを使用したため、単一のストアドプロシージャを使用せずにアプリケーションを構築できました。LINQ-to-SQLは、SQLインジェクション攻撃から自動的に保護し、楽観的および悲観的な同時実行チェックをサポートします。

あなたのプロジェクトが何であるかはわかりませんが、後でアプリケーションのスケーリングに問題が発生するような状況に陥りたくはありません。開始点ではなく、最終結果のコードを作成してください。そうすれば、後で多くの頭痛の種を減らすことができます。

于 2010-07-02T05:04:49.487 に答える