2009-11-01 13 views
10

私は時間を管理するために、WPFアプリケーションを構築しています。私は、暦日のプロジェクトで作業時間の時間を節約したいと思います。WPFアプリケーションでローカルにデータを保存する最も良い方法は何ですか?

私の質問は、データを保存する方法の最良の選択です。私は、XMLファイル、Accessデータベースファイル、またはたぶんプロパティを使用できると考えました。私はデータをローカルに保存したいので、この場合は、SQL Serverアクションはありません。 :)

どのように行くべきだと思いますか?

答えて

5

私はSQLiteを純粋なまたは.NETに優しい形式( "sqlite .net"のGoogle検索を実行すると、そこにいくつかのオプションがあります)で取得します。それは非常にポータブルで、私の意見では、SQL Server Compactよりもセットアップと配布が簡単です。

重要なことは、コード内のパーシスタンスメカニズムと密接に結びついていないことを確認することです。将来、必要なストレージ戦略を簡単に置き換えることができます。

+0

チップのためのThx!私はSQLiteをテストします、私はそれが私が探しているものだと思います。 – Richard

6

あなたはSQL Serverは何も言わないと知っていますが、私はあなたが "サーバー"を必要とせず、クライアントにデータを保存したいという意味で読んでいます。私はあなたがおそらくあなたのデータのいくつかの管理可能性に気にしないと思います。あなたは、バックアップのようなものを知っています。トランザクションは常にいいので、データは一貫性を保つことができます。だから、XMLを使うことができますが(あなたの考えからAccessのすべての考えを捨ててください)、これは解決された問題であるときに、あなた自身の永続性を変えることになります。

無料のSQL Server Compactエディションをチェックしてください。これは軽量で、デスクトップやモバイルデバイス上で動作するように設計されており、アプリで実行する必要がある場合は簡単に配置できます。そして、すべての一般的な永続性フレームワークがそれをサポートします。そして、私はそれが無料であると言いましたか?

+0

私の個人的なサンドボックスプロジェクトは、同じことです。 Linq2Sqlの学習方法としてSqlCEを使用することを選択しました。もし私がもう一度やりたいのであれば、Amazon、Google、またはMSクラウドサービスを使ってオンラインでSqlCE w/ADOを使用するか、(もし実際にはまだ研究を行っていない)ものを使用することができます。 –

+2

なぜSQLiteを使用しないのですか?それは、すべてのもの.NETと非常にうまく統合され、ファイルシステム上に単一のファイルとして存在します。 –

+0

私もSQLiteに投票します。そのためのEntity Frameworkプロバイダがあります。 –

4

可能な最も簡単なデータソースを選択して適切にデカップリングすることで、新しい目的のデータソースを後でドロップして目的に合ったものを見つけることができます。そのためには、おそらく動作する可能性のある最も単純なものとして、XMLやプレーンテキストのようなものを見つけることができます。

実際の使用状況に基づいて、データソースから必要な特性を決定したら、適切なバッキングストアを選択します。

これは個人的なプロジェクトで商業的なものではないので、この決定を前にすることは重要ではないと思います。

1

過去に私が使い慣れた単純なアプローチは、あなたの "XMLファイル"のアイデアです。気になるデータを記述したオブジェクトを作成し、xmlにシリアル化するだけです。

Gregは、データソースが適切に切り離されていることを確認して、要件が変更された場合に切り離すことができると確信しています。