我有一個安裝在多個客戶的服務器上的「white labelled」應用程序。在任何給定的安裝中,差異將包括內容,樣式表和圖形,但也包括一些實際的代碼/業務邏輯。我希望我的TFS服務器自動構建我的應用程序的所有風格。我的選擇是什麼?例如我應該使用主題? #if條件編譯標誌怎麼樣?我如何「白色標籤」我的ASP.Net MVC應用程序?
P.S.問題不在於如何設置構建服務器 - 我已經完成了。
我有一個安裝在多個客戶的服務器上的「white labelled」應用程序。在任何給定的安裝中,差異將包括內容,樣式表和圖形,但也包括一些實際的代碼/業務邏輯。我希望我的TFS服務器自動構建我的應用程序的所有風格。我的選擇是什麼?例如我應該使用主題? #if條件編譯標誌怎麼樣?我如何「白色標籤」我的ASP.Net MVC應用程序?
P.S.問題不在於如何設置構建服務器 - 我已經完成了。
對於業務邏輯,我會將差異抽象爲單獨的庫,然後可以使用IoC/DI模式或提供者模式在運行時解析正確的業務邏輯。
至於內容我會考慮的主題。實際上,您可以讓構建服務器構建一次所有代碼,然後在打包代碼時選擇需要的程序集並使用適當的配置,然後爲手頭的客戶端選擇合適的主題文件夾。
我不喜歡使用#指令在這種情況下。如果你考慮一下,你的單元測試必須針對每個條件執行。如果刪除條件並抽象化差異,則您的單元測試可以立即在所有可插入組件上運行。
在那裏你會有
public partial class Order
{
public Money Calculate()
{
}
}
然後,您只需包含所需的.cs類,並且不要使用#ifs混淆您的代碼。
如果你想爲所有的公共代碼,並只爲特定的客戶覆蓋,你可以有OrderPartsCommon.cs,您將複製/使用,如果有沒有客戶特定的超越控制。