2009-04-02 8 views
3

私は.netで小さなウィンドウアプリケーションを開発しています。どのDBを使用すればよいですか?WindowsアプリケーションにはどのようなDBを使用しますか?

DB構造

表1:3つの以下のフィールド:50+レコード(追加、削除)

表2:10以下のフィールド:10-20レコード(削除、追加)

私はXMLDatabaseを使用すると考えましたが、使用することはお勧めしません。この理由は何ですか? XMLファイルをデータベースとして使用することができれば、チュートリアルやベストプラクティスを提案できますか?以前はXMLファイルを扱っていました。 DBとして使用する場合、何か別のものはありますか?

私はまた、しばらくして友人にアプリケーションを配布する予定であり、これらの人たちはプログラマーではなく、テクノロジーに精通していません。

だから私はSQLサーバーを使用している場合、どのように他のマシンにそれを展開できますか?セットアップファイルにどのように追加できますか?

更新:お返事ありがとうございます。私はSQLiteのために行くつもりで、ここにはtutorialについてSQLiteと.net誰かが興味がある場合。

答えて

12

SQLiteは小規模なアプリケーションに適しています。それは速く、有能で、足跡が小さい。 .NET用

私は以前のプロジェクトで使用してきた偉大な管理のSQLiteライブラリがあります:

http://sqlite.phxsoftware.com/

編集:

はSQLiteのとSQL Server Compact Editionの間の選択を考えると、あなたは」ほとんどの場合、SQLiteがサポートしていない高度な機能が必要な場合を除き、ほとんどの場合SQLiteを使いたいと思うでしょう。

[SQL Server Compact Editionのインストールサイズで修正されています。私が最後に調べたとき、それははるかに不利でした。

+0

SQL Server Compact Editionは1.8Mbのみがインストールされていると付け加えたいと思っています - http://download.microsoft。com/download/A/4/7/A47B7B0E-976D-4F49-B15D-F02ADE638EBE/Compact_Express_Comparison.doc –

2

SQLiteのような小さなもの、またはあなたのアプリに組み込まれたSQLServer Expressデータベースを使用するだけで逃げることができます。

2

SQL Serverを使用する場合は、データベース全体を作成するためのスクリプトを生成する機能があります。有効な接続文字列が与えられたらスクリプトを実行するのは、通常の.NET Sqlクラス(SqlConnectionなど)を使用する方が簡単です。

ただし、このような単純なデータモデルでは、SQL Serverが過剰に使用される可能性があります。 SQLiteのような他の小さなDBを調べるべきです。

0

SQL Server ExpressまたはSQL Server Compact Editionを調べてください。

4

あなたが言及したことに基づいて、私はSQLiteを見たり、SQL Server Compact Editionを見たりします。

コンパクトエディションの推奨事項は、常に実行されているSQL Serverプロセスが存在しないようにすることです。コンパクト版は、アプリケーションの実行中にのみ実行されます。

更新

、2つの間の大きさになると、SQLiteは少しサイズが1メガバイトの下にあります。 SQL Server Compact Editionは1.8 MBです(確認のためMS Documentを参照)。

+0

ありがとうございました。私はSQLiteのために行く – Shoban

3

あなたの予想されるデータベースサイズが非常に小さいので、素早く&ダーティーな解決策(もっと汚れたIMHOよりも速い)は、データをXMLで維持するか(またはオブジェクトコレクションをXMLにシリアル化/逆シリアル化して)LINQ 。それは速く、それは動作します。加えて、あなたのアプリを配布するDBエンジンはありません。

免責事項:お客様のデータ要件は依然として小さく(また、単一のユーザーであることを前提としています)、IFFです。一度に複数のユーザーが同時にデータに当たったり、データサイズが増加したり、ある種のRDBMSを使用するときに最も効率的な機能が必要になると、この迅速で汚れたソリューションがウィンドウに表示され、すぐにすべてのあなたがそれをすべて動作させるために焼く必要がある余分なコード。 =)

1

永続性のためにXMLを使用しないようにアドバイスした人はいませんが、永続化されたデータの潜在的な合計サイズを考えれば、XMLはシンプル.NETアプリケーションへの統合

1レコードに最大10フィールドの100レコードしか話していないように聞こえます。 XML永続化データから簡単に前処理でき、メモリ内で処理することができます。私はNoCarrierとLINQを使ってクエリを行うことに同意します。

サードパーティの依存関係がなくても簡単な操作で、ユーザーの声を聞くことができます。

0

私はデータソースソリューションとしてXMLに同意します。良いXMLブック、No Nonsense XML Development with PHPがあります。 PHPをASP.NETに簡単に翻訳できます。 XMLとASP.NETのための無料の電子書籍もあります。

XMLの利点は、単純なデータ転送言語であり、配備するマシンにサードパーティのデータベースサーバーをインストールする必要がないことです。

0

表1:3つの以下のフィールド:50+ 記録(削除、追加)

表2:10以下のフィールド: 10-20記録(削除、追加)

レコードがまともなサイズの場合(あなたのアプリにムービーなどを保存したくない場合はどうでしょうか?)スタートアップ時にフラットテキストまたはxmlファイルから読み込み、メモリ。あなたのバッファは時々ディスクにフラッシュすることができます。

私はあなたの他の要件を知りません(同時実行性については何ですか?)しかし、実際のDBMSはあなたの問題とsqlite(私が大ファンです)が解決策ではないかもしれません。 sqliteの強みの一つ)。

2

John SaundersはSQL Server Expressについて言及しました。 公正であるために、Oracle ExpressとDB2 Expressもあります。 それぞれの機能リストは事実上同一です。 少なくとも個人的には無料です。

関連する問題