どうになったという経験を通じてアプリケーションの構成の参照にASP.NET?

StackOverflow https://stackoverflow.com/questions/2500523

質問

私は困難な管理の構成ASP.Net への応用展開のための異なる。積さの異なる設定が必要なtwiddlingからは多くの時間を、現在の設定方法は複雑すぎるためにプッシュするこの責務を支援パートナーです。

あらゆる提案のためのより良い方法への対応は良い情報源への研究から生まれたのでしょうか?

いかなくてはならない現在:

  • 様々なxmlの設定ファイルを参照している。Configは、例えば、AppSettings.xml.
  • 構成の特定の場所では複数の構成ファイルです。
  • テキストファイルを含むリストのデータを特定のサイト
  • 場合には、マニュアルの一データベースへの変更
  • C#の設定ウィンザー IOC.

特定の課題をぜひ一度見に来てください:

  • 異なるサイトとは異なる特徴、異なる外部サービスしていると話したり、異なるビジネスルール
  • 異なる展開のタイプ(ライブ、試験研修)
  • 設定キーの変更にバージョン(追加、削除)を意味して更新するすべての重複ファイル
  • まだマウスを変更できるようにキーがアプリケーションを起動

現在の思想のあり方について、ここには:

  • 移動の構造を動的にコンパイルされたコード(ブ,BinsorはJavaScript)
  • して何らかの形の差分を/合体構成:を組み合わせたデフォルトのconfigライブ/テスト/研修configとサイト特有のconfig
役に立ちましたか?

解決

いずれかの方へ行っても、されてはいかがでしょうか価値の概念の単一ソースの真実"を設定します。

重複があり、場を提供する必要があります構成部品、自分の専門です。

あるアメニティだと思い実際に試したほうがよいでしょうを目指してがセットのすべての構成に関するお申し込みをされた機構のための翻訳への応募の中ます。config、その他のconfig機構です。

のレベルに応じてスキルの支援パートナーの有無にかかわらず、始まったわけですXML)をリアルに想像したりしませていただきたいと考えGUIを使用してもらうことを目的にして、落すべてのノブはこの"ソースの真実"設定ファイルは、"適用"となってい走りを変換/更新するようにするためのコードに必要な変更ージが表示されます。config&。

その後の管理の構成の異なるサイト/お客様は、理論的にして一つの設定ファイルに格納されます。

注意: にASP.NET 4.0ビルド時の設定を変換機構をご参照 http://blog.hmobius.com/post/2010/02/17/ASPNET-40-Part-4-Config-Transformation-Files.aspxがある一方、この課題はます。で利用することができあhacks以外のwebプロジェクト参照 http://philbolduc.blogspot.com/2010/03/using-config-transforms-outside-web.html).

しかし、必要な場合はこれらの変化で展開された文書のカスタムツールこのためには、このように見え、XDTに変換するにはうれしたいときの追加/変更/削除します。

他のヒント

と設定項目を使用してコードを変更(およびマネージコードスペース/ C#で実行されているすべての)ことができます/あなたが管理するコードである場合、私はシングルトンのようなクラスでとの中に通話に設定を取得メソッド呼び出しの移植になりますその上に前記のGetString()メソッド

のGetObject()は、非常に(.NET XMLシリアル化のものをチェックアウト - アメリカ人は「Z」でそれを綴る:シリアライズを)役立つことができものがたくさんのために...便利なだけでなく、それはあなたが関連するパッケージ化を開始できることを意味しますので、店舗内の単一のエントリに構成アイテム

単一のストア(キャッシュされたアクセス権を持つデータベーステーブル)を使用してに関してのみ設定項目が保存されているカプセル化するために、新しいコンフィギュレーション・ファサードを使用する - あなた次第です...私は強くするために、製品の展開ごとに単一のストアを好みます設定は、いつでも場所を正確に探せば、どこで変更を行うために知っているので。すべてのWebサービス参照(そうでない場合はWCFかは)... constuctedとランタイムが提供する文字列を使用して呼び出すことができます。)

キーの値をキャッシュするという点では - スタック上のオーバーヘッドが管理しているので、私は(小さなアプリケーションのための)メモリキャッシュに自分自身を使用して... memcacheのようなものが構成ストアを上/ TCP経由でアクセスされる(ここではうまくいくかもしれませんネットワークのどこか)...

EDIT ような何かます:

public class ConfigurationStore
{
    private static ConfigurationStore _instance = null;

    public static ConfigurationStore Instance {
        get {
        if(_instance == null)
        {
            _instance = new ConfigurationStore();
        }

        return _instance;
        }
    }

    public string GetValue(string key)
    {
        ....
    }

    public Object GetObject(string key)
    {
        ...
    }
}

あなたは、設定キーを操作するいくつかのカスタム.NETユーティリティと組み合わせて自動化のためのNAntのスクリプトを見て検討することがあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top