2009-08-25 62 views
0

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

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


谢谢

+0

你指的是什么样的数据存储? – 2009-08-25 21:22:52

+0

我知道大量的数据不应该存储在类或web.config内,但除此之外,在web.config和class之间进行判断时,我想要存储什么类型的数据? – rubysons 2009-08-25 21:46:31

回答

1

通过将设置成web.config文件,让他们都在一个集中的位置。

此外,在部署网站时,您可能需要预编译一次。所以你不能在之后改变源代码(没有另外的重新编译)。

1

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

8

因为您可以随时更改它并使用它而不考虑班级结构。通过更改和维护独立于代码的单个文件,您的配置可以从每个开发人员机器到登台到部署环境都不相同,并且您可以利用* .config屏蔽网站的不同区域。

硬编码什么配置是失败的原因,并绝对会咬你 - 这仅仅是经验的问题,如果你不相信它,那么你必须要等候一小会儿!

+1

+! “任何可配置的硬编码都是失败的秘诀” – JMP 2009-08-25 21:31:32

0

这只是一个整体很容易管理和更新设置。

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

从经验来看,当其他开发人员接管后,变得非常棘手,因为其他开发人员不小心确保网站工作所需的一切都在源代码管理中。我现在坚持使用一个网站,在那里我们不能更新它的大部分内容,因为(善意地把它)过去的非标准做法。

能够在不重新发布网站的情况下更新内容对我而言是一个巨大的祝福,而且您永远不知道糟糕的维护程序员会在您的代码中执行哪些操作。

对他或她很好。让简单的改变变得容易。

1

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