自分の判断が正しいか知りたいです。ユーザーがローカル データベース (おそらく SQL CE または SQLite) とリモートの共有データベース (ほとんどの場合 MySQL) からのデータベース エントリを混在させることができるアプリケーションを開発しています。理想的には、柔軟性があり、複数のデータベース サーバー タイプと互換性がある必要があります (初期構成に従って静的に、複数のタイプを動的に混合するのではありません) が、これはショーストッパーではありません。
コードは C#、.NET 4 です。
当然のことながら、NHibernate について考えていたのは、バージョン 3.0 で LINQ を備えていて、コードの読みやすさと効率性にプラスであり、モデル ファーストのアプローチが Entity Framework よりも自然だからです。また、混合データベース部分のシャードもあり、処理がはるかに簡単になります。もう 1 つのオプションは EF 4 です。EF 4 は、.NET コンテキストと Visual Studio で完全にサポートされており、有望な将来性があるため、私はそれを好みます。
Shards は十分に成熟していますか? かなり長い間 3 ベータ版に固執しており、死んでいるプロジェクトのように見えますが、この拡張機能に基づいて専門的なアプリケーションを展開した人はいますか? 未来はありますか?それとも別のオプションがありますか?
NHibernate 3 は Mono 上で動作しますか? 私はそう思いますが、実際の確認は素晴らしいことです。Web サーバーを代替インターフェイスとして開発する必要がある場合、これは EF に勝るもう 1 つの利点です。
情報やフィードバックをお寄せいただきありがとうございます。
更新 1
どうやら .NET 4 が問題であり、NHibernate を使用するには .NET 3.5 が賢明です。また、SQLite と SQL CE、または WPF のようなフレームワークの他の部分にも明らかに問題があります。
NHibernate では、異なるデータベース タイプ (MySQL と SQLite など) 間でのシャーディングが可能ですか?
したがって、クライアント側にとっては EF 4 の方が安全であり、可能な ASP.NET インターフェイスに関しては NHibernate の方が安全であると私は信じ始めています。