2009-07-20 7 views
6

誰もがSubsonic3とEntity Frameworkを使用して、賛否両論を教えてもらえますか? これを試してみるのは初めてです。サブソニックはEntity Frameworkのようにセットアップが簡単です。 SubSonicがMySql PGsqlなどのようにEntity Frameworkが他のデータベースと連携するかどうかはわかりません...? 私はこの記事(http://www.timacheson.com/Blog/2009/jun/entity_framework_vs_subsonic)を読んで、これはSubSonicよりもEntity Frameworkを選択するのに十分な説得力があります。しかし、私は第二の開口部が欲しかった。サブソニック3 VSエンティティフレームワーク

+2

Timのベンチマークは、標準的なパフォーマンステストではありません.Sonyが長時間ロードするのに時間がかかりません。 http://blog.wekeroad.com/subsonic/subsonic-scaling/ –

答えて

17

まあ、これらの2つは全く異なる獣です!

Subsonic 3は、データベース構造をほぼ1:1でオブジェクトクラスに簡単にマッピングするための優れたツールです。各クラスは基礎となるデータベースのテーブルを正確に表現します(Linq- to-SQLも同様です)。

Entity Frameworkは、ドメインやオブジェクトモデル(クラス)が必ずしも1対1でデータベーステーブルにマッピングされない複雑なシナリオを対象としています。そのため、EFには概念レベル(ドメインオブジェクト)、ストレージレベル(データベースレイアウト)、およびこれらの2つの間のマッピングを記述するXMLファイルが3つあります。

IMHO、Subsonic 3、Linq-to-SQLは、必要に応じてデータベースを柔軟に変更できる素早く中小規模のプロジェクトに最適です。また、オブジェクトをテーブルに簡単にマッピングできます。 EFは、大規模なエンタープライズアプリケーションでは、あなたのデータベースレベルが石で設定されている可能性があり、変更できません。また、アプリケーションのデータベースが変更されても "生き残る"必要があります。

全く違う聴衆 - 全く違う聴衆、私の意見では。

マルク・

PS:ティムは本当にこの比較においてサブソニック3を使用していた、そして正確に彼が何をやっていた場合、私は疑問に思います。私の直感は、EFが「より大きい」オーバーヘッドになるため、少しパフォーマンスが低下する可能性がある(エンタープライズシナリオでは、パフォーマンスを犠牲にしても金で重宝する価値がある)

+0

すばらしい返答をいただきありがとうございます。 – Shuaib

+0

あなたのPSに加えて、記事は "Subsonic 2.1(類似の結果は3.0で作られた)"と言っています。 あなたのように、私はもっと軽量のサブソニックがより速くなったと思いました。そして、私はSS対基本的なコーディングを使用して少しのパフォーマンスを譲り渡していることを知っていますが、柔軟性はそれに当然の価値があります。 – kevinw

3

私のベンチマークのでは、Subsonic 2.1(上記のとおり)を使用し、中負荷シナリオ(記載されている方法論)のデータアクセスレイヤーを比較しました。私はコードを提供したので、私のテストは簡単に複製することができます。

システムをロードし、使用中にWebアプリケーションの状態を再現する場合、EFは、はるかに優れたパフォーマンスを提供することを証明します。完全なWebアプリケーションの負荷テストでこれが確認されます。より複雑なテストでは、遅延ロードなどのEFの最適化機能は、Subsonicより優れたパフォーマンスの利点を提供します。

個々のデータアクセス操作を比較すると、単純な単体テストでは、亜音速が速く見えます。特に、Subsonicはより早く初期化しました。

パフォーマンスを重視する場合は、Fluent NHibernateまたはEntity Frameworkをお勧めします。

関連する問題