我們在我們的asp.net應用程序中有很多appSettings。將它們移動到數據庫是一個不錯的主意。我知道一個好處是很容易維護和做行政活動。我需要知道是否有人遇到任何問題。在數據庫中存儲應用程序設置
回答
我們在配置中沒有任何appsettings,但由於配置數量巨大,所以維護一個單獨的數據庫表。這沒有問題。當然,我們必須使用一些緩存來防止與配置信息相關的太多查詢。
使用app.config/web.config/database/cache /定製解決方案來存儲配置值是所有有效的選項。
你選擇的方法確實取決於你對你,你的團隊和你的應用程序適合你的情況。
我期望這樣做會給你一個性能問題,因爲appSettings被加載到內存中,應用程序被加載,然後如果web.config被更新,然後重新加載。如果您將它們存儲在數據庫中,那麼您每次都需要點擊數據庫。
我無法說明性能差異的等級,因此它可能會或可能不是問題。
是的,但那就是爲什麼你有緩存權利? – Illuminati
@Bumble Bee - 當然,您正在依賴某些內容來使緩存條目無效,或者您在更新的設置中會有滯後。我的期望是,重新加載會比從數據庫加載更快,使用更少的資源。我懷疑這個好處取決於你的設置。例如。如果您的應用程序通過多個服務器,那麼從管理員的角度來看,將這些應用程序保存在中央數據庫中會更容易。 – detaylor
的確如此,但在我們的案例中,我們已經在Setters中實施了無效化,並且您對可維護性是正確的。我們有數百個配置,因此將它們作爲appsettings將會是一場噩夢。 – Illuminati
有很多事情可以做,以減少應用程序設置的數量,並使他們更容易維護。他們每個人都有自己的積極和消極。把它們移到一個數據庫是一個,它可以幫助提高可維護性(並且可以讓你建立一個前端來監視和調整它們而不需要回收)。或者,您可能希望將它們中的一些組合到自定義部分中,如果它們是相關的,那麼使它們更好地記錄下來,而不僅僅是關鍵值對。
如果他們進入數據庫,您需要考慮緩存它們,以及如何管理緩存。
沒有普遍的答案。這將取決於你的情況。
Asp.net有一個實現自定義提供程序配置的機制。我已經研究過多個服務器需要相同配置的情況,因此擁有共享配置會很好。關於它的文件非常少。
您還面臨web.config文件被監視的問題,因此任何更改都會提示應用程序重新啓動。有了數據庫,你需要一個替代機制來解決這個問題,或者解決它,或者沒有。
更簡單的是定義一個自定義配置節。
Simon
實現自定義配置提供程序的機制是什麼? – Jeremy
這可能有所幫助:http://pknopf.com/blog/read-net-configuration-from-a-database –
- 1. 非數據庫應用程序的GAE數據存儲設置
- 2. 在Web應用程序的數據庫上存儲設置?
- 3. 如何在應用程序庫中緩存/存儲應用程序設置
- 4. 在應用程序中存儲iPhone應用程序設置
- 5. 在數據庫中存儲dotnet應用程序設置而不是app.config
- 6. 管理存儲在數據庫中的php應用程序設置
- 7. Stateful Rails應用程序。不在數據庫中存儲數據
- 8. 爲Grails應用程序存儲和使用數據庫中的應用程序配置設置?
- 9. 將應用程序設置存儲到漫遊數據存儲中
- 10. 如何爲php庫存應用程序設置數據庫表
- 11. Android在內部/外部存儲器中保存應用程序設置/數據
- 12. 將數據庫憑據存儲在Web應用程序中的位置?
- 13. 在應用程序設置中存儲字符串數組
- 14. 如何在應用程序設置中存儲int []數組
- 15. .NET - 存儲應用程序設置
- 16. 應用程序設置存儲
- 17. Web應用程序設置存儲
- 18. 如何存儲應用程序設置?
- 19. 存儲數據庫程序
- 20. 免費在線存儲來存儲應用程序設置
- 21. 將應用程序權限存儲在數據庫中
- 22. 在應用程序中存儲數據庫連接
- 23. 在SAAS應用程序數據庫中存儲Braintree API密鑰
- 24. 在數據庫中存儲Rails應用程序版本
- 25. 在Sharepoint中存儲應用程序特定的配置數據?
- 26. 將數據存儲在GUI應用程序中的位置?
- 27. localForage數據將存儲在iPad應用程序中的位置?
- 28. 靜態數據應該存儲在數據庫還是應用程序中
- 29. 在存儲過程中動態設置數據庫名稱
- 30. 用於存儲應用程序配置數據的LDAP vs數據庫
我希望你的數據庫字符串不在appsetting;)。根據使用情況,在數據庫中訪問它們會更慢。 – Peter
@peer我不同意你關於緩慢的觀點。你有沒有做過任何測量? – Illuminati
最初速度較慢,但在緩存時應該儘可能快。 –