我们在我们的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
最初速度较慢,但在缓存时应该尽可能快。 –