2009-04-19 15 views
6

私はサーバーに石鹸を話すデスクトップアプリケーションを持っています。通信は非常に遅いので、私はローカルのデータベースから多くのデータを前もってダウンロードしておきたい。アプリケーションをシャットダウンした後もこのローカルデータが失われることはありませんので、これを行うための最良の方法は何ですか。 。 。これを行う良い製品/例はありますか? 。私はキャッシュしている約25のテーブルがあります。高速ローカルデータベース

答えて

14

SQLiteはこれに最適です。数年前、私はユーザーがアプリケーションをオフラインで使用できるようにローカルキャッシュを管理していた「スマートクライアント」アプリケーションを作成しました。私はSQLiteを使用して問題はなく、非常に小さく、すぐに持続し、ほとんどの現代ORMはそれをサポートしています。また、あなたのニーズを満たす可能性がある

http://www.sqlite.org/

+0

SubSonicもサポートしています。 – flipdoubt

2

H2データベースを(私はNHibernateは使用していました)。マイクロソフトはSQL Serverのコンパクト版を提供しています:SQL Server Mobile Edition。 SQL ServerとTSQLがあれば、これは良い選択かもしれません。

+0

IKVMを使用して.NetでH2を正常に使用しています。 H2ドキュメントには、上級セクションでこれに関する簡単なセクションがあります。 –

0

Firebirdを使用することを検討してください、私は彼らにもADO.NET拡張があると思います。

1

通常、Accessデータベースを使用することができます。通常、.NETアプリケーションでは簡単に使用することができ、クライアントにインストールまたは設定する必要はありません。

0

私は、SQL Server Express、またはAccessのような個々のデータベースファイルで動作するSQL Server Compact Editionを検討します。それにもかかわらず、それはまだSQL Serverです。

+0

セットアップと展開はまだ悪夢なので、SQL Server Expressから離れています。 SQL Server Compact Editionも良い選択です。 –

+0

悪夢が目の前にあります。あなたは2008年について話していますか? SQL Server 2008 Enterprise Editionをインストールしたばかりで、ユーザーの操作は約5分で完了しました(約半分が完了するのを待っています)。それは_Enterprise_ Editionでした。 Expressのインストール時間が短くなると思います。それはプロンプトを出さずに応答ファイルを作成することができません。 –

+0

問題はローカルデータベースを使用することです。そのため、顧客にSQL Server Expressをインストールする必要があります。あなたのインストーラに含めることができますが、それはサイズに多くを追加し、別のアプリケーションが既にSQL Server Expressをインストールしているかどうか、または既にSQL Serverがインストールされているかどうかについて問題があります( –

3

Berkeley DBは、スタンドアロンの優れたDBです。また、ウィンドウに組み込まれているESENTも考慮する必要があります。 Ayendeのwrite-upです

0

また、SunのGlassfish Java EEサーバーで使用されるApache Derbyも考えられます。