淺談 Config 檔的應用

淺談 Config 檔的應用

這一年下來接觸了不少開發團隊,當談到系統的參數化時。大家大多頂多就是用用 Configuration 中的 AppSetting不然就是 ConnectionString 也有一些是用資料庫來存放,但無論是那一種,有沒有覺得處理這些的變數很麻煩??
最常用的可能都是這樣子

程式

System.Configuration.ConfigurationManager.AppSettings.Set("Lang", "Franma");

Config

<appSettings>
    <add key="Lang" value="Cht" />
  </appSettings>

因為都要一條一條去處理也沒有辦法活用 XML 的結構化的優點
其實這個在 .NET 2.0 就有提供 API 可以讓我們自行客製化
可以改善的問題有…

    1. 改 Config 檔後,會自動去觸發事件告知
    2. 可將巢狀的結果來存放至 Config 中。  ( 可以一次讀寫一組的變數 )
    3. 自行開發的元件可依不同的系統切換
    4. 因為都是物件處理,不用再去記 AppSetting 中的名稱。  (提升處理 Config 的效率)
    5. Config 的部分可以重複使用在不同的系統上  ( OO 化的關係,可以有繼承 )
    6. 降低  「AppSetting 越來越多時,日後系統維護會越困難。」的問題
    7. Config 的內容要有驗證機制 或 預設值  (這也很常用)
    8. 無論是 Web , WinFrom 都統一適用 (不用改寫)
    9. 規範 Config 的使用方式,避免每個人寫自已的格式
    10. Config 設定的內容可以「自動化測試」

這個也許不是什麼特別的新功能了,但好好地利用的話,可以讓我們的開發工作更事半功倍呢
各位若是有在專案中使用類似 DTO 架構的話一定更能體會其好處

小弟在自行開發的專案中也都是大量運用上面的手法,其他開發同仁就不用擔心說怎麼跟 config 接資料,只要會使用寫好的元件就可以快速上手,而且不會再出錯。

還有很多很多的好處,相信範例這麼多的情況下,不用花太多時間就可以嚐到好處的。 

目前 MSDN 上有完整的說明 ,使用 ConfigurationSection 就可以做到。

http://msdn.microsoft.com/zh-tw/library/system.configuration.configurationsection.aspx

http://msdn.microsoft.com/zh-tw/library/2tw134k3(VS.80).aspx   (Sample)