2009-02-19 7 views
8

私の会社は.Netの新しい開発にORMを使用したいと考えています。私たちは現在、その人気のためにnHibernateを見ていますが、LLBLGenは私たちが検討するかもしれない別のオプションです。コストは主要な要素ではありません。データベースからのドメインモデルの分離、優れたキャッシング戦略、開発の生産性(つまり、設定ファイルではなくGUIで編集できる場合)、優れた顧客サポートを提供するソリューションが必要です。.NET開発に使用するORMツール

nHibernateは非常に人気があることは知っていますが、価格(無料)はオープンソースタイプの理由の一部であるかもしれません。コストは主要な要因ではないので(価格が10,000ドルを超えていない限り)、それはあなたの状況を考慮して選択しますか?また、私が列挙したもの以外に、ORMの選択において最も重要な要素は何でしょうか?我々は最終的に解決策としてNHibernateの上決定

解像度

は、しかし、後知恵で、私たちはそれを何度も繰り返し行う必要があった場合、私はLLで行っていると思います。私はXMLマッピングファイルが見つかりません。私がNHibernateで見つけたコードジェネレータは、たくさん残っていました。私はFluent NHibernateが面白い開発であることを知っていますが、私はむしろそれを使用する前にそれが成熟するのを待っています。

私の学習プロセスの最も重要な部分は技術ではなく、リポジトリと分離されたインターフェイスパターンの2つのデザインパターンでした。データアクセス用のリポジトリインタフェースを定義することで(Jeffrey Palermoにはこれに関する多数のブログ記事があり、ApressとWrox MVCの両方の書籍にも同様です)、LinqtoSQL、LLBLGen、NHibernateなどを使用してDAL実装を取り替えることができます後で切り替えると私の同僚の一人が自分のアプリでNHibernateを使用している間、私は最近のアプリでLinqToSQLを使用することにしました。

答えて

8

お支払いが気にならない場合は、LLBLGenをお勧めします。

真のデータベースに依存しないコード

全 エンティティタイプの継承

LINQのサポート

型指定されたリストと型付き:機能サイトから

here.

全リストビュー

ストアドプロシージャそれは素晴らしい製品です、私は2003年からLlblGenProを使用してきた

柔軟な同時実行メカニズム

ファイングレイン検証フレームワーク

派生テーブルのサポート

+0

Ric - 現在LLBLGENを使用しています。私たちは、新しいアプリにユニットテストを組み込み、データベースにぶつかることなく(アダプタモデルを使用して)、いくつかの困難を抱えています。 Unit Testing LLBLにはどのようにアプローチしていますか? –

+0

こんにちは@LuckyLindy私はhttp://ayende.com/projects/rhino-mocks.aspxを提案し、直接データベースを使用する代わりにモックオブジェクトを作成します。これは、あなたが私よりも良い答え:) –

2

それはあなたが望むものに少し異なります。

  • はあなた自身のドメインクラスを作成しますか、これを使用ORMで定義された基底クラスまたはインタフェースによって継承する必要がない場合は、NHibernateが優先されます。

  • データベースモデルに基づいてエンティティクラスを自動生成したい場合は、LLBLGenに進む必要があります。

+0

データベースによってドメインが駆動されます。当社は本質的にデータウェアハウス事業に属しており、当社の事業の中核はデータをロードし、顧客が設定したカスタムルールに基づいてデータを比較し、顧客に報告することである。 あなたの答えから、LLBLGen Proがうまくいくと思います。 – John

1

nHibernateをたくさん使用します。ここまでは順調ですね。

3

をサポート、合理的な価格、ソリューション設計のWebサイトを通じてすばらしいサポート。 Frans(主な開発者)は、必要に応じてパッチを発行し、新しいフルインストールを頻繁に発行するため、問題を抱えているクライアントはすぐに修正プログラムを利用できます。

現在のバージョンでは、従来のアクセスインフラストラクチャとともにLinqがサポートされています。バージョン3は開発中ですが、2010年まではリリースされない可能性があります。

LlbGenは、現在のデータベーススキーマを読み込み、nHibernateと比較してdb toオブジェクトマッピングの開発にかかる時間を短縮します。

LlblGenで改善したいことがありますが、私は非常に幸せな長い時間のユーザーであり、彼らのサポートは勝てません。

+0

素敵な有用なコメントm4bwav - 理由を説明するケア? – redsquare

2

LLBLGENの別の投票は、それなしでは生きられなかった!

0

SignumFrameworkはfull LINQ Providerです。これは、エンティティ主導のアプローチに基づいています。もう一つの側面は、既存のデータベースではなく、新しい開発のためだけに問題ないということです。

0

最初から起動する場合は、背景も固体のNHiberbateを使用することができます。しかし、我々は複数のプロジェクトでLLBLGen Proを使用しており、非常に強固で直交しています。あまりにも良い文書もあります。 NHibernateには大きなコミュニティがあります(もしHibernateを追加しても)。しかし、LLBLGenは非常に成熟した製品であり、非常に有用なフォーラムであり、非常に良いドキュメントです。

使用するRDMSは何ですか?我々はLLBLGen ProをOracleと共に使用しており、問題なくデータベース固有の操作と汎用操作を完全に分離しています。 Inner Platform Effectは完全に回避されています。 (例えば、OracleのシーケンスとSQL Server IDフィールドについて考えてみてください.LBBLGen Proでは問題ありません)。

LLBLGen Proは非常に広範なコードジェネレータです。データベース内のオブジェクトは、ソリューションに簡単に追加できるプロジェクトとしてデータベースアクセスレイヤーにマップされます。しかし、これは非常に良い利点があります。ストアドプロシージャやフィールドを変更/削除した場合、実行時ではなくコンパイル時にエラーが発生します。したがって、既に稼働中のデータベースをお持ちの場合は、LLBLGen Proをご利用ください。

ドラッグアンドドロップでデータを簡単にバインドする場合は、データソースコンポーネントをVisual Studioに追加することもできます。一部の人は、ASP.NETプロジェクトに役立つと感じています。

さらに重要なもの:型付きリスト:これは、データベース内のコードを変更せずにデータソースを作成するのに非常に便利です。したがって、データを表示するグリッドがある場合、重要な環境で非常に安全になるデータベースに触れることなくデータを提供することができます。

したがって、N/Hibernateがより多くのユーザーを持っていても、LLBLGen Proを提案します。

0

私はSoodaを使用しましたが、それは約1年前の小規模なプロジェクトです。今は確かにNHibernateです。

4

DataObjects.Net(GPL +コマーシャル)をご覧ください。

+0

また、上記の投稿されたリンクがどのように行動するかを強調する多くのディスカッションをチェックしてください。ブログはあなたの友人です。 – nathanchere

関連する問題