【问题标题】:Storring data in web.config(custom section/appSettings element) vs storing it in a class将数据存储在 web.config(自定义部分/appSettings 元素)中并将其存储在一个类中
【发布时间】:2010-11-22 19:04:57
【问题描述】:

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

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


谢谢你

【问题讨论】:

  • 你指的存储什么样的数据?
  • 我知道大量数据不应该存储在类或 web.config 中,但除此之外,在决定 web.config 和类时我想存储什么样的数据是否重要?

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


【解决方案1】:

因为您可以随时更改并使用它而无需考虑类结构。通过独立于代码更改和维护单个文件,您的配置可能因每台开发人员机器、暂存到部署环境而异,并且您可以利用 *.config 对站点的不同区域进行屏蔽。

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

【讨论】:

  • +! “硬编码任何可配置的东西都是失败的秘诀”
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        管理和更新设置要容易得多。

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

        根据经验,当其他开发人员不小心确保使网站正常运行所需的一切都在源代码控制中时,这变得很棘手。我现在被一个网站困住了,因为过去(请说)非标准做法,我们无法更新其中的大部分内容。

        能够在不重新发布网站的情况下更新某些内容在我的情况下是一个巨大的祝福,而且你永远不知道谁会接管你的代码。

        善待他或她。轻松进行简单的更改。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-09-17
          • 1970-01-01
          • 1970-01-01
          • 2021-11-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-01
          相关资源
          最近更新 更多