私はデスクトップアプリケーションを開発しています、そしてこのアプリケーションは実行するためにいくらかの情報を必要とします、しかしそれはこの情報のいずれも変更しませんは変更されていません)。データはアプリが実行されているのと同じコンピューターに保存されている必要があります(クライアント側のストレージ?)。
ユーザーがこの情報を簡単に変更できない場合も優れています(ITに関する知識があまりないと想定してください)。
このような情報をどのように格納すればよいですかローカルデータベース?アプリケーションと一緒に送信されるXML?
私はWPFを使っています。
If the data never changes and is read only, then just put it in a code file as a list of constants.
public readonly string AppStartUpData = "MyAppNeedsThis";
このデータが展開ごとに異なる場合は、外部ファイルで問題ありません。
.Netには組み込みの.configファイル(App.Config)が付属しています。それらから情報を読むための(フレームワークに組み込まれた)標準的な方法があるので、それらを使用するべきです。
設定はテキストファイル(Xml)なので、設定を変更する必要がない場合は(決して使用しないでください)、使用してください。機密情報がある場合は、必要に応じて設定を暗号化できます。
バイナリファイルは明白な答えでしょうが、それはあなたがそれをどのようにロードしているかに依存します - あなたがそうすることができればあなた自身も人生を楽にするかもしれません。
これを読むためのC#の組み込みメソッドがあるので、XMLは良い選択かもしれません。 チェックサムをデータに追加して、ユーザーが変更した場合にチェックサムが一致しなくなるようにすることができます(必要ですチェックサムが有効であることを確認するためのチェックを追加するため)
あなたがそれにアクセスすることができる必要があるあなたには他の依存関係があるのでローカルdbはより多くの問題を引き起こすかもしれません
ユーザにデータを覗かせたくない場合は、バイナリデータファイルにシリアル化する必要があります。
唯一のアプリはそれから読むチャンクの長さを知っているでしょう。
C#はわかりませんが、Javaでは次のようにファイルを作成します。
FileOutputStream fos = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(var1);
oos.writeObject(var2);
oos.writeObject(var3);
oos.writeObject(var4);
...そして彼らはこのように読みました:
FileInputStream fis = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(fis);
Object o[] = new Object[4];
o[0] = ois.readObject();
o[1] = ois.readObject();
o[2] = ois.readObject();
o[3] = ois.readObject();