淺談 Config 檔的應用
這一年下來接觸了不少開發團隊,當談到系統的參數化時。大家大多頂多就是用用 Configuration 中的 AppSetting不然就是 ConnectionString 也有一些是用資料庫來存放,但無論是那一種,有沒有覺得處理這些的變數很麻煩??
最常用的可能都是這樣子
程式
System.Configuration.ConfigurationManager.AppSettings.Set("Lang", "Franma");
Config
<appSettings>
<add key="Lang" value="Cht" />
</appSettings>
因為都要一條一條去處理也沒有辦法活用 XML 的結構化的優點
其實這個在 .NET 2.0 就有提供 API 可以讓我們自行客製化
可以改善的問題有…
- 改 Config 檔後,會自動去觸發事件告知
- 可將巢狀的結果來存放至 Config 中。 ( 可以一次讀寫一組的變數 )
- 自行開發的元件可依不同的系統切換
- 因為都是物件處理,不用再去記 AppSetting 中的名稱。 (提升處理 Config 的效率)
- Config 的部分可以重複使用在不同的系統上 ( OO 化的關係,可以有繼承 )
- 降低 「AppSetting 越來越多時,日後系統維護會越困難。」的問題
- Config 的內容要有驗證機制 或 預設值 (這也很常用)
- 無論是 Web , WinFrom 都統一適用 (不用改寫)
- 規範 Config 的使用方式,避免每個人寫自已的格式
- 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)