在我們的Web應用程序中,我們將數據訪問層分離到他們自己的項目中。替代使用web.config存儲設置(適用於複雜的解決方案)
這會產生一些與設置有關的問題。
因爲DAL最終需要從多個應用程序中消費,所以web.config似乎不是一個保存連接字符串和其他DAL相關設置的好地方。
爲了解決這個問題,在我們最近的一些項目中,我們引入了第三個項目,僅用於設置。我們把設置放在一個.Setting文件系統中......通過一個簡單的包裝,可以輕鬆實現各種環境(Dev,QA,Staging,Production等)的不同設置。
唯一的問題是設置項目(包括.Settings類)編譯成一個程序集,所以如果不進行構建/部署就不能更改它,而且我們的一些客戶希望能夠配置他們的項目沒有Visual Studio。
那麼,有沒有最佳做法呢?我有這種感覺,我正在重塑車輪。
我們發現了一些解決方案,比如將設置存儲在服務器上的固定目錄中,比如我們自己的XML格式。但是,我寧願避免爲敏感值重新創建加密等等。如果可能,我寧願保持解決方案自包含。
編輯:原來的問題並沒有包含我們無法(我認爲)使用web.config的真正深入的原因......這使得我的不好的一些(非常好的)回答脫離了上下文。
我一直這樣做了一段時間,這很好。在Web.Config中,我只存儲了一個連接字符串和一個名爲'enviroment'的變量,其中包含一個值,如Production,Staging,Development。然後在數據庫中有一個名爲Settings的表格,其中包含所有不同環境的所有設置。我使用RedGate的SQL數據比較來保持全部同步。 – 2009-11-30 16:25:36