簡體   English   中英

不發布版本時更改行為

[英]Change Behavior when not RELEASE build

在DEV,TEST和RELEASE版本之間更改行為的最佳方法是什么?

我有一個應用程序,可以向存儲在數據庫中的收件人發送電子郵件。 在進行開發和測試時,我想覆蓋所需的行為,並將電子郵件發送給使用該應用程序的人員(例如,開發人員或測試人員)。

當我們開始生產時,我當然希望將其發送到來自數據庫的電子郵件中。

我考慮過像這里討論的那樣添加一個RELEASE常量

是否有人對實現此目標的最佳方法有任何建議,或對解決問題的更好方法提出了建議?

使用接口(如INotifier.Send()包裝電子郵件發送功能。 以幾種方式實現它:

  • EmailNotifier : INotifier用於發布的EmailNotifier : INotifier (發送電子郵件)

  • LocalNotifier : INotifier用於調試的LocalNotifier : INotifier (寫入控制台)

  • MockNotifier : INotifier用於測試的MockNotifier : INotifier (聲明某些條件)

將類的類型放入特定於配置的config中,並通過通知發送模塊讀取和調用它。 請參閱Web.config轉換

如果您使用的是ASP.NET,則可能具有基於當前發布配置更改的web.config設置。

http://msdn.microsoft.com/en-us/library/dd465318.aspx

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <connectionStrings>
    <add name="MyDB" 
      connectionString="ReleaseSQLServer" 
      xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
  </connectionStrings>
</configuration>

在我們的項目中,我們將“ Environment”和“ EmailsToInTestEnvironment”之類的鍵添加到配置文件中。 在“環境”中,我們指定“生產”或“測試”,如果是“測試”,則應用程序將原始電子郵件替換為“ EmailsToInTestEnvironment”中列出的電子郵件。

為了使它簡單實用,替換發生在發送電子郵件的方法中,而不是在調用它的方法中。 原始地址將在電子郵件發送之前被替換,一旦發送電子郵件,原始電子郵件地址將被退回。

我正在使用XmlPreprocess工具進行配置文件操作。 它針對多個環境使用一個映射文件。 您可以通過Excel編輯映射文件。 這是非常容易使用。

這應該通過為應用程序使用單獨的配置文件來完成。 Visual Studio已經為您提供了調試和發行分離。 如果說測試是指單元測試,那么正在加載您的應用程序的測試項目將能夠在其中使用其自己的配置文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM