将数据存储在web.config(自定义部分/ appSettings元素)中,并将其存储在类中

时间:2009-08-25 21:15:14

标签: c# asp.net configuration web-config

为什么将数据存储在appSettings文件的web.config元素内(或自定义部分内)比将其存储在类中更好?

一个论点是,通过使用自定义部分,我们不必在更改数据时重新编译代码,但这是一个弱论点,特别是如果我们使用网站,每当代码更改时会自动重新编译!


谢谢

5 个答案:

答案 0 :(得分:8)

因为您可以动态更改它并使用它而不考虑类结构。通过独立于代码更改和维护单个文件,您的配置可以从每个开发人员计算机到登台到部署环境,并且您可以利用站点的不同区域进行* .config屏蔽。

任何可配置的硬编码都是失败的秘诀,绝对会咬你 - 这只是经验问题,如果你不相信它,那么你可以等一会儿!

答案 1 :(得分:1)

通过将设置放入web.config,您可以将它们全部置于集中位置。

此外,在部署网站时,您可能希望预编译一次。因此,之后您将无法更改源代码(无需重新编译)。

答案 2 :(得分:1)

重新编译代码并不是真正的问题,而是重新部署代码。通常,您不会将代码部署到Web服务器,只需部署二进制文件和aspx / html文件即可。如果您在代码中对配置数据进行硬编码,则必须重新构建并重新部署库或应用程序以将更改更改为服务器,这比仅更新web.config要多得多。

答案 3 :(得分:1)

将数据放入web.config文件中还允许在具有不同环境相关数据的不同环境中运行相同的代码。这可能意味着使用测试数据库连接字符串在生产环境中使用生产数据库连接字符串运行相同的网站代码。或者它可能意味着允许开发人员为自己的测试配置数据而不更改任何代码,如'annakata'所述。

答案 4 :(得分:0)

只需更轻松地管理和更新设置。

如果您正在使用记事本进行开发并将代码放在服务器上,我会同意这几乎没有什么好处,但是如果您使用的是Visual Studio并且 build 您的网站并发布它,您正在发布预编译的dll,而不仅仅是更新服务器上的文本源代码(.cs或.vb文件)。因此,当需要更新设置时,只需修改文本文件即可更新web.config中的任何内容,与其他更改一样,您必须重新编译整个网站并将其发布。

根据经验,在接管其他开发人员之后接管这一点变得棘手,因为其他开发人员并不小心确保使网站工作所需的一切都在源代码管理中。我现在已经陷入了一个网站,在那里我们无法更新它的大部分内容,因为过去(非常喜欢)非标准做法。

能够在不重新发布网站的情况下更新某些内容对我来说是一个巨大的祝福,而且你永远不知道那些糟糕的维护程序员会接管你的代码。

对他或她很好。轻松进行简单的更改。