2011-06-24 19 views
2

私の(C#4.0)プロジェクトの地平は、ユーザー構成機能の導入です。私の同僚は、ソフトウェアや事前実行ベースを構成して、どんな方法でもその職務を果たすことができるようにする必要があります。必要です。すべての実行(彼らは長いシミュレーションになる傾向があります)は、独自の設定ファイルを持っています。ユーザ書き込み可能な設定ファイルの例?

主に、ランタイムパラメータを含むかなり複雑な獣、IOCスタイルの情報(Strategy Patternのような方法で必要とされる計算クラスのリスト)、さらに多くのものを定義する必要があります。値は数値(整数と浮動小数点)、文字列、日付、およびこれらのリストです。

我々は新製品を導入したり、既存のものが進化しているようなコンテンツは、(例えば、新しいパラメータ名)を変更します知っています。

  1. XML
  2. YAML
  3. JSON
  4. DomainSpecific Language:含んで

    オプション私は構文重さ(私の推定)の大きい順に、見てきましたか?

  5. いくつかのアプリケーション固有のテキスト表記

私は、多かれ少なかれ同様のものの例を探しています:技術的および/またはユーザの視点からのファイル形式、賛否両論の議論。

(私は将来のある時点で私たちは、このような演習のためのグラフィックフロントエンドの導入を検討だろうと期待して、私たちはその前に実行にいくつかの時間を設定できるようにする必要があります。)

EDIT/UPDATE:私は技術的な観点から、実装の容易さについて特に心配ないよ:私は何かを探しています(非常にスマートな、しかし技術的に配向していない)ユーザーは最高の難易度を最小化するために使用することができますかなり複雑な構成であるかもしれないと書いています。

たぶん、「コンフィギュレーションは、」言葉の悪い選択である - 私たちは、「シミュレーション定義ファイル」と呼んで、各ユーザーが時間をかけてこれらの多くを作成していると考えたらどう?このすべてが定期的に、属性指向の方法で説明することができれば

+0

です。 – jalf

答えて

0

は、それはあなたのニーズを満たすと思われるXMLのように聞こえます。 C#には、ビルトインのシリアライザやLINQを含む素晴らしいXML処理機能があり、大量のコード実装時間を節約できます。また、スキーマからフォームベースのUIを作成することは非常に簡単です。

私が座っこれは、このアプローチはあなたのために働くかどうかを決定を助けるためにあなたのユースケースを扱うことになるかどうかを確認するために、擬似スキーマを作成することをお勧め。

たとえば、XMLによって駆動される多くのプラグインシステムの1つを見てみましょう。私がお勧めする最初のものはEclipseです。

+0

これはユーザーにとって最適な選択ですか?彼らは多くの設定ファイルを書く必要があります、私はそれらを処理する必要があります。 –

+0

おそらく。それはすべてインターフェイスに依存します。私が言及したように、XMLスキーマからフォームを作成するのはかなり簡単で、このための素晴らしいツールがあります。いくつかの素晴らしい例については、EclipseフォームまたはPDEエディタを参照してください。 – AdamC

0

C#の最も簡単な方法は、組み込みクラスSystem.Configurationを使用することです。まず、Visual Studioを使用して設定ファイルを追加する必要があります。ここで考慮すべきもう一つのオプションは、SQLiteのか、MS SQL Compact Editionのような小さなファイルベースのデータベース、だろうHow To

+0

カスタムセクションを作成することができます。これは、ユーザーごとのファイルに 'app.config'のオーバーライドを書き込むことを含めて書き込み可能です(これにより、アクセス権の問題が回避されます。グローバルコンフィグレーションへ)。 – Richard

関連する問題