起動時に自動的に実行されるリマインダー プログラムを作成しました。SQL-Server 以外に、イベント、日付、時刻のデータを保存する方法があるかどうかを知りたいです。SQL-Server はこの単純なタスクには非常に大きいと思うので、この作業に SQL-Server を使用したくありません。ファイルを使用してデータを保存できると思います。これについてあなたはどう思いますか?
4 に答える
情報を保存する一般的な方法:
- ファイルとして。ファイルを保存できる場所には多くのオプションがあります。たとえば、ユーザー ディレクトリやプログラム ディレクトリなどです。詳細については、こちらとこちらをご覧ください。シリアライザー (xml または json) を使用することを好みます。
- レジストリエントリとして。情報をキーと値のペアとして保存します。
- 軽量データベースの場合:
- RavenDB: ドキュメント指向で、json 形式でデータを保存します
- SQLite: リレーショナル; 管理目的でこのSQLite Adminをお勧めします
レジストリ エントリは、ユーザー アクションに関してより安全です。一方、ファイルは簡単に削除できます。
情報を暗号化するオプションは常にあります。
補足として、 PostSharpを使用して、レジストリに格納する変数を宣言することもできます。コードは次のようになります。
[RegistryBacking]
private bool _boolean;
必要な場合は、後でコードを提供できます...また家に帰ったときに。
私は非常によく似た理由で、データベースを簡単に展開できるように試しましたが、それでも私が持っている知識を使用しています。
VistaDB 3.xと4は、SQL Serverとの互換性が非常に高く、いつでもSQL Serverに切り替えることができるため、私の最初の選択肢です。これもEFをサポートします!!!
次はVersantのdb4oで とても便利です。私は主にラピッドプロトタイピングに使用しますが、いくつかの小さなソリューションに展開しており、あなたの種類のアプリケーションに最適です。
お役に立てば幸いです。
固執する部分について
このドキュメント (Managing User Data Deployment Guide、ダウンロード) から:
Windows は、ユーザーと共にローミングしないアプリケーション データ用に
Local
およびフォルダーを使用します。LocalLow
通常、このデータはマシン固有であるか、大きすぎてローミングできません。Windows は、
Roaming
カスタム辞書などのアプリケーション固有のデータ用にフォルダーを使用します。これらのデータはマシンに依存せず、ユーザー プロファイルと共に移動する必要があります。
AppData\Roaming
そのため、「リマインダー アプリ」はユーザー固有のものであると考えているため、ファイルを使用して永続化することをお勧めします。たとえば、ドメイン ユーザーは、それを価値あるものと見なします (サーバーへの同期)。
Local
(後者は、LocalLow
権限が制限されたアプリケーションの低整合性モードに使用されます) オンザフライで計算できる一部のマシン/インストール固有のデータにより適しています。
Registry
キーの量が少ない場合には優れているように見えますが、そのような用途には最適なオプションではないようです。
別のオプション - がありますIsolatedStorage
。これは、ClickOnce 配置を使用する場合など、前述のオプションが適用できない場合に使用する必要があります。
データをファイルに永続化する方法の部分については、お気に入りを選んでください。より多くの制御とパワーが必要な場合は、非常に軽量な SQLite データベースを使用できます。また、SQLite の使用がやり過ぎだと考える場合は、XML シリアル化をファイルに使用するだけです。または他の実行可能なオプションのいずれか。
XML。.NET には、xml ファイルの処理を容易にするクラスがあります。構造化データを保存する場合は、XML が最善の策かもしれません。