質問

質問どのようにコードをうかが現地で対QA前に生まれるだろうと思っています。

例:にASP.NET MVC用いてコントローラの設定をe-メール通知を選択するフィルタ。実行する場合 開発機またはメールの開発が QA してほしくないメール通知を出および 生産 したいとの通知を行わせ先

感謝

役に立ちましたか?

解決

て異なる。configsを追加しますAppSettingにおける動作確認を迅速に行えますので決断できる場合は送信します。

できる定数を定義しお。configを使用CompilerOptions属性:

<system.codedom>
  <compilers>
    <compiler language="c#;cs;csharp" extension=".cs"
      type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0,
      Culture=neutral, PublicKeyToken=b77a5c561934e089"
      compilerOptions="/d:Test"/>
  </compilers>
</system.codedom>

およびコードで使用

#if !Test
    SendMail();
#endif

他のヒント

この音のようなものにするべきなのを使用IoC.私は一般的に使用 StructureMap できるようにすること、すなわう設定になります。すべての思いはしています。configスイッチ設定の設定に適切な環境です。

例えば、StructureMapなにができるの

ObjectFactory.Initialize( x => {
    x.CreateProfile( "Development", p =>
    {
        p.Type<IEmailProvider>().Is.OfConcreteType<DeveloperEmailProvider>();
    } );

    x.CreateProfile( "QA", p =>
    {
        p.Type<IEmailProvider>().Is.OfConcreteType<NullEmailProvider>();
    } );

    x.CreateProfile( "Production", p =>
    {
        p.Type<IEmailProvider>().Is.OfConcreteType<ProductionEmailProvider>();
    } );

} );

ObjectFactory.Profile = ConfigurationSettings.AppSettings["Profile"];

軽量化のためのプロジェクトでは、わたしだけを使用AppSetting値、また、その全てのメールの受信者アドレスを通じて以下のメッセージ:

public static MailAddress MailTo(string email)
{
    if (Boolean.Parse(ConfigurationManager.AppSettings["RedirectEmails"]))
    {
        return new MailAddress(ConfigurationManager.AppSettings["DebugMailbox"]);
    }

    return new MailAddress(email);
}

当社が事業の用NAnt構築のパートに分かれたスクリプトを使用するテンプレートコンフィグファイルを生成する異なる構成の異なる構築を目標です。Config.テンプレートファイルを吸収合併のいずれかです。物件。物件はリリース。物件のXMLファイルを含むに関連する変数).

かを設定します。config異なるための環境のシステム。います。メール送信のメール.しくはスコットGuの ブログ ます。のための 開発, っていしなければならないので、メールサーバのどこかということです。のための QA, のうえ送信しない場所を選ばずどこでも、 生産 で構成される通常のSMTPサーバーです。

と思い、IoCの答えは一般的に溶液とする。の特定の場合はメールに直接送られているSMTPサーバーできず、コンフィグ溶液。 どのように保存できますかメールを送る代わりに利用の場合SmtpClient?.コンフィグ溶液、あるいは格安の場合、機器のチームがない大きなIoC.

私は見た事がある中間サービスを他の機械のメール処となります。この場合、コンフィグ溶液は動作しません。

かったこ最近のプロジェクト.私の解は、かなり関係がこのように二つあります。configキーを制御するこEmailTestModeとEmailEnabled.まEmailTestModeは、メッセージの発生が送付され特定のアドレスより、意する。まEmailEnabledは、メッセージのログインが指定受信等)を確認してください

私はトラブルのメッセンジャークラスを管理するこれらの項目は私にとっていただけるメソッドの呼び出しは様々な属性のメッセージ、数字かどうかを送信します。また別の設定ブロックです。configを含むすべてのシステムメッセージ.そうやって、差出人、宛先、件名、本体で簡単に変更から設定ファイルを指定します。ほとんどの場合、体が発生するアプリは文字列です。Format()を記入。

のようにその他っているため、異なる アプリケーションの設定 おます。config.おruntimeコードに正しいバージョンの設定します。

も涼しいということは 条件付属性 の構築、通話のデバッグバージョンの方法。

私はバージョン管理ソフトウェアなことだった。基本的には思います。configファイルをひとりひとりの環境機器、試験、qa,prod).現在のバージョン管理ソフトウェアいタグすべてのファイルに正しい環境です。てるなって思っても、qa evnvironmentすべて取得しますファイルのタグ付き"QAによって設定されています。

そしてconfigキーにしています。config

ProductionServers="PROD_SERVER"
TestServers="LOCAL_MACHINE|TEST_SERVER"

その機能を持っているところ試験にマシン名(システム。環境です。MachineName)vsその値です。そのように、私を変更configsのサーバーしたい場合はポイントprodの代わりに試験しかな変更を行います。config.

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