通常,我會將所有應用程序配置數據存儲在web/app.config和關聯的xml配置文件中。但我在想,也許這不一定是處理所有配置數據的最佳方式。什麼時候應該將配置數據存儲在數據庫中,而不是我的web.config?
是否有任何建議時,它可能是更實際的使用一個或其他?
通常,我會將所有應用程序配置數據存儲在web/app.config和關聯的xml配置文件中。但我在想,也許這不一定是處理所有配置數據的最佳方式。什麼時候應該將配置數據存儲在數據庫中,而不是我的web.config?
是否有任何建議時,它可能是更實際的使用一個或其他?
我沒有一個明確的規則,但我的「經驗法則」是本地存儲僅是特定於該程序運行計算機的配置,並存儲所有的共享配置數據庫中的數據。
我們開發了一個小型圖書館中存儲和數據庫編輯/版本我們的配置。我們還爲每個應用程序設計了一個具有單獨區域的共享配置存儲,並且可以在多個應用程序中重新使用配置條目。我們在數據庫中存儲高級配置條目,例如規則,查詢定義等。
的位置特定的配置,如爲基於數據庫的配置庫的插件組件,連接字符串位置,登錄設置等進入「常規」網頁/文件的app.config。這讓我們保持本地和共享配置的相對乾淨的分離。
如果配置包含敏感數據,並且需要具有安全性(即RDBMS安全)的另一層,然後存儲配置在數據庫中。相反,如果客戶端管理員需要方便快捷的訪問,並且不希望用UPDATE
命令破解數據庫,那麼將配置保存在配置文件中將是明智之舉。
如果您希望能夠更改設定值而不需要重新啓動該網站,將它們存儲在數據庫中。但是這增加了一層複雜性,大多數開發人員在查找配置值時不會首先查找它們。至少在我的商店中,標準是將所有可能在web.config文件中改變的值,並在必要時加密(第三方服務,數據庫等的憑證)。如果有人將配置值放入數據庫中,開發人員在第一次潛入代碼時會花費一些時間尋找配置值的存儲位置(但這只是一次性的事情,但仍然是一個麻煩)。
如果數據被認爲是敏感的,配置也可以被加密。它不是不透明的,但是db安全也不是。 (+1 btw) – 2012-01-11 14:37:06