2010-07-22 84 views
0

我們正在考慮將一些「硬編碼」設置移出我們的Windows窗體應用程序,並將它們存儲在名爲App_Settings的表中的sql數據庫中。原因在於,我們目前已將值硬編碼到Appsettings和app.config中,這些值可能會隨時間而改變,並且更新數據庫表中的值比更新,構建和部署應用程序更容易和更快三臺服務器。這可能嗎?

請有人建議這個,以及我們如何將設置加載到應用程序,然後讓他們隨時可用在任何課程?

乾杯 理查德

+1

如果它們在配置文件,那麼它們不是**硬編碼。 – Oded 2010-07-22 08:44:21

+0

要從數據庫中檢索它們,只需查詢數據庫(從您的代碼中調用存儲過程,或者使用ORM(如果您真的必須使用動態SQL)),然後將這些值填充到靜態類中。 – slugster 2010-07-22 08:48:51

+1

這個問題的標題應該給出一些關於什麼是問題的信息? – 2012-10-08 14:54:09

回答

3

看一看這類似於螺紋:Resources/App.config or Database where is the best place to application strings

當你要存儲在數據庫中的設置,我會實現類爲Singleton或至少爲A類,只有靜態/共享成員和工廠方法(getAppSettings),它返回單個/靜態實例。所以你可以從任何地方訪問你的設置,它只是初始化一次。

+0

我寧願自己返回Singleton的工廠方法。唯一的補充是我會實現並從工廠返回一個接口,我發現配置在單元測試中可能會有點痛苦。 – 2010-07-22 09:09:49

1

爲什麼不使用類似YAML的東西來保存這些設置?創建一個表單可以很容易地編輯這些設置並將其保存在一個文件中,而不是一個數據庫(這會增加更多的維護問題)。否則,我會建議使用像NHibernate這樣的東西來使用數據庫,SQLLite作爲數據庫服務器。

另外請注意,如果您要更新這些設置,我不會說這些都是App_Settings,因爲App_Settings通常不modifyable沒有

幫助這個幫助, 彼得