あなたが気づいているよりも漠然とした質問です。 「設定」には、非常に多くのことが含まれます。
設定ファイルのアプリケーション設定を処理するための優れた.NETインフラストラクチャがあります。これらは一般的に、グローバルSettingsオブジェクトのプロパティとしてプログラムに公開されます。 System.Configuration
名前空間のクラスは読み込みと永続化を行い、Visual Studioに組み込まれているツールを使用してそれらを処理するコードを自動生成します。このインフラストラクチャでサポートされているデータ型の1つはStringCollection
なので、これを使用してサーバーの一覧を格納できます。
しかし、サーバーの大規模なリストについては、これが私の最初の選択ではない、いくつかの理由があります。私はあなたのリスト内の要素は単純な文字列ではなく、実際にはタプル(ホスト名、ポート、説明など)であることを期待しています。その場合、データをフォーマットして解析してStringCollection
にする必要があります。それは一般的にあなたが何か他のことをしているはずのサインです。また、アプリケーションの設定は読み取り専用で(少なくともVistaでは)、設定可能なユーザースコープを永続化できるようにすることができますが、コミットする前に理解したいと思うパスを導きます。
それでは、別のことを考えてみましょう。サーバーのリストは単にリストですか、それともそれを表す内部オブジェクトモデルがありますか?後者の場合、XML直列化を使用してオブジェクトを格納および取得することを検討します。 (アプリケーション設定ファイルに残す唯一のことは、シリアライズされたオブジェクトファイルへのパスです)シンプルなオブジェクトをXMLにシリアライズおよびデシリアライズするのは本当に簡単なので、私はこれを行います。適切なシリアライズフォーマットを設計してテストすることに関心を持っているわけではありません。
データベースを使用する主な理由は、自分のプログラムが原子と耐久性を必要とする操作の束を実行している場合、または何らかの理由ですべてのデータを一度にメモリに入れたくない場合です。 Xが起こるたびに、私はそれを永久的に記録しておきたい、それはデータベースを使う方向に私を導いてくれます。そのようなものにはXMLシリアル化を使用する必要はありません。すべてのオブジェクトを1つの物理ファイルに保存する場合は、1つのオブジェクトだけを実際にはシリアル化できないからです。 (実際には、私の会社の製品とまったく同じですが、私はデータベースを使用しないという別の状況を指摘しています。データのスキーマが
このリストはどのくらいですか?レコードはいくつですか? – tuinstoel
おそらく数百人に。 –