我有一些全局设置 例如,下面的一些是
ShortLeaveAllowedInOneDay = 2
LeaveAllowedInMonth = 3
我有以下选项来存储这些全局设置
1 - 存储在数据库表中
2存储在Webconfig文件中
作为const提交的3级商店
4-In XML文件
你能否告诉我哪一个更好的方法以及为什么
我使用的是Asp.net MVC3 使用sqlserver 2005
答案 0 :(得分:9)
这取决于您的要求,这些选项中的每一个都有自己的优点和缺点。它试图列出一些:
<强> 1。存储在数据库表中
优点:
缺点:
的 2。存储在web.config文件中
优点:
缺点:
web.config
的更改可能会导致应用程序池重新启动。
第3。作为const字段存储在类中
优点:
缺点:
<强> 4。在XML文件中
优点:
log4net
为例)缺点:
答案 1 :(得分:1)
如果您需要由软件用户配置它们,我不会选择3.如果它们是您定义为程序员的设置,并且不希望在应用程序投入生产时更改它们,您可以执行这一点。
我会说选项4和2在概念上基本相同,并且个人喜好可供选择。我个人喜欢定义一个custom configuration section,然后只在它自己的.config文件中定义了那个部分(this显示了如何做到这一点),这样你就没有一个真正庞大的web.config用户必须导航。
如果我有一个场景,我有多个组件都需要访问相同的配置,我会选择选项1。如果您正在构建的只是一个Web应用程序,那么我认为没有必要这样做,但是,例如,如果您有一个Web应用程序和一些其他客户端应用程序并且都需要访问数据库,那么存储配置一个不错的选择。
答案 2 :(得分:1)
在Web配置文件中添加AppSettings会话,可以直接从代码中访问:
System.Configuration.ConfigurationManager.AppSettings["ShortLeaveAllowedInOneDay "];
编辑: 并且Confir文件看起来像:
<appSettings>
<add key="ShortLeaveAllowedInOneDay " value="2" />
</appSettings>
答案 3 :(得分:0)
将全局变量存储在web.config文件中是一项非常常见的任务。 当数据库可能过度且不需要单独的外部文件时,在web.config文件中存储值非常有用。
对于每个页面生命周期,多次读取.xml文件对于性能来说非常糟糕。
我肯定会去web.config。
答案 4 :(得分:0)
没有一种方法本质上比其他方法更好。
最佳方法完全取决于您对安全性,可伸缩性,灵活性,只读与可写,配置复杂性等内容的要求。
答案 5 :(得分:0)
您可以将变量存储在Web.config文件中。
答案 6 :(得分:0)
我会更实际。两个基本案例。
将初始变量存储在web.config上,将所有其他变量存储在数据库中。如果你没有数据库,那么可用的东西,比如XML文件。