2011-07-05 61 views
3

我們在我們的asp.net應用程序中有很多appSettings。將它們移動到數據庫是一個不錯的主意。我知道一個好處是很容易維護和做行政活動。我需要知道是否有人遇到任何問題。在數據庫中存儲應用程序設置

+1

我希望你的數據庫字符串不在appsetting;)。根據使用情況,在數據庫中訪問它們會更慢。 – Peter

+0

@peer我不同意你關於緩慢的觀點。你有沒有做過任何測量? – Illuminati

+2

最初速度較慢,但​​在緩存時應該儘可能快。 –

回答

1

我們在配置中沒有任何appsettings,但由於配置數量巨大,所以維護一個單獨的數據庫表。這沒有問題。當然,我們必須使用一些緩存來防止與配置信息相關的太多查詢。

0

使用app.config/web.config/database/cache /定製解決方案來存儲配置值是所有有效的選項。

你選擇的方法確實取決於你對你,你的團隊和你的應用程序適合你的情況。

0

我期望這樣做會給你一個性能問題,因爲appSettings被加載到內存中,應用程序被加載,然後如果web.config被更新,然後重新加載。如果您將它們存儲在數據庫中,那麼您每次都需要點擊數據庫。

我無法說明性能差異的等級,因此它可能會或可能不是問題。

+0

是的,但那就是爲什麼你有緩存權利? – Illuminati

+0

@Bumble Bee - 當然,您正在依賴某些內容來使緩存條目無效,或者您在更新的設置中會有滯後。我的期望是,重新加載會比從數據庫加載更快,使用更少的資源。我懷疑這個好處取決於你的設置。例如。如果您的應用程序通過多個服務器,那麼從管理員的角度來看,將這些應用程序保存在中央數據庫中會更容易。 – detaylor

+0

的確如此,但在我們的案例中,我們已經在Setters中實施了無效化,並且您對可維護性是正確的。我們有數百個配置,因此將它們作爲appsettings將會是一場噩夢。 – Illuminati

1

有很多事情可以做,以減少應用程序設置的數量,並使他們更容易維護。他們每個人都有自己的積極和消極。把它們移到一個數據庫是一個,它可以幫助提高可維護性(並且可以讓你建立一個前端來監視和調整它們而不需要回收)。或者,您可能希望將它們中的一些組合到自定義部分中,如果它們是相關的,那麼使它們更好地記錄下來,而不僅僅是關鍵值對。

如果他們進入數據庫,您需要考慮緩存它們,以及如何管理緩存。

沒有普遍的答案。這將取決於你的情況。

0

Asp.net有一個實現自定義提供程序配置的機制。我已經研究過多個服務器需要相同配置的情況,因此擁有共享配置會很好。關於它的文件非常少。

您還面臨web.config文件被監視的問題,因此任何更改都會提示應用程序重新啓動。有了數據庫,你需要一個替代機制來解決這個問題,或者解決它,或者沒有。

更簡單的是定義一個自定義配置節。

Simon

+0

實現自定義配置提供程序的機制是什麼? – Jeremy

+0

這可能有所幫助:http://pknopf.com/blog/read-net-configuration-from-a-database –

相關問題