-2

起動時に自動的に実行されるリマインダー プログラムを作成しました。SQL-Server 以外に、イベント、日付、時刻のデータを保存する方法があるかどうかを知りたいです。SQL-Server はこの単純なタスクには非常に大きいと思うので、この作業に SQL-Server を使用したくありません。ファイルを使用してデータを保存できると思います。これについてあなたはどう思いますか?

4

4 に答える 4

3

情報を保存する一般的な方法:

  • ファイルとして。ファイルを保存できる場所には多くのオプションがあります。たとえば、ユーザー ディレクトリやプログラム ディレクトリなどです。詳細については、こちらこちらをご覧ください。シリアライザー (xml または json) を使用することを好みます。
  • レジストリエントリとして。情報をキーと値のペアとして保存します。
  • 軽量データベースの場合:
    • RavenDB: ドキュメント指向で、json 形式でデータを保存します
    • SQLite: リレーショナル; 管理目的でこのSQLite Adminをお勧めします

レジストリ エントリは、ユーザー アクションに関してより安全です。一方、ファイルは簡単に削除できます。

情報を暗号化するオプションは常にあります。

補足として、 PostSharpを使用して、レジストリに格納する変数を宣言することもできます。コードは次のようになります。

[RegistryBacking]
private bool _boolean;

必要な場合は、後でコードを提供できます...また家に帰ったときに。

于 2012-02-11T22:52:51.903 に答える
1

私は非常によく似た理由で、データベースを簡単に展開できるように試しましたが、それでも私が持っている知識を使用しています。

VistaDB 3.xと4は、SQL Serverとの互換性が非常に高く、いつでもSQL Serverに切り替えることができるため、私の最初の選択肢です。これもEFをサポートします!!!

次はVersantのdb4oで とても便利です。私は主にラピッドプロトタイピングに使用しますが、いくつかの小さなソリューションに展開しており、あなたの種類のアプリケーションに最適です。

お役に立てば幸いです。

于 2012-02-11T23:56:26.977 に答える
1

固執する部分について

このドキュメント (Managing User Data Deployment Guide、ダウンロード) から:

Windows は、ユーザーと共にローミングしないアプリケーション データ用にLocalおよびフォルダーを使用します。LocalLow通常、このデータはマシン固有であるか、大きすぎてローミングできません。

Windows は、Roamingカスタム辞書などのアプリケーション固有のデータ用にフォルダーを使用します。これらのデータはマシンに依存せず、ユーザー プロファイルと共に移動する必要があります。

AppData\Roamingそのため、「リマインダー アプリ」はユーザー固有のものであると考えているため、ファイルを使用して永続化することをお勧めします。たとえば、ドメイン ユーザーは、それを価値あるものと見なします (サーバーへの同期)。

Local(後者は、LocalLow権限が制限されたアプリケーションの低整合性モードに使用されます) オンザフライで計算できる一部のマシン/インストール固有のデータにより適しています。

Registryキーの量が少ない場合には優れているように見えますが、そのような用途には最適なオプションではないようです。

別のオプション - がありますIsolatedStorage。これは、ClickOnce 配置を使用する場合など、前述のオプションが適用できない場合に使用する必要があります。

データをファイルに永続化する方法の部分については、お気に入りを選んでください。より多くの制御とパワーが必要な場合は、非常に軽量な SQLite データベースを使用できます。また、SQLite の使用がやり過ぎだと考える場合は、XML シリアル化をファイルに使用するだけです。または他の実行可能なオプションのいずれか。

于 2012-02-11T23:15:02.297 に答える
1

XML。.NET には、xml ファイルの処理を容易にするクラスがあります。構造化データを保存する場合は、XML が最善の策かもしれません。

于 2012-02-11T23:11:09.360 に答える