有很多值我已经存在ASP.NET configSections部分对于每个"模块"。我一直想知道如果他们甚至属于这些文件。

背景站:这些多个实例,该网络应用程序的部署。所有使用相同的数据库,但有自己的设置。

我敢肯定,这之间的差异的发展和生产在配置文件。某些价值,我知道应该包括:连字符串供应商使用,设置调试,等等。

我已经考虑到了所有的公共件在类与自己的规则和方法。该片的左侧是杂项设置为每个模块中的每个网站。一些选择,我不确定包括:

  • 为ModuleA,显示/隐藏的选择
  • 为ModuleB,什么是的术语将用于这个领域
  • 为ModuleC,请允许终端用户进行X行动
有帮助吗?

解决方案

嗯这些听起来像事情,你可能希望能够改变在运行时的应用程序,而不必修改的程序。config。一条经验法则我喜欢遵循的是,任何配置应该为部署或服务器的结构。在这种情况下你设置的似乎是修改应用程序的行为和所以我可能会将它们移入的数据库,如果它不是很多的努力。

其他提示

ModuleA和ModuleC听起来像他们可以被用户配置文件的信息。如果他们不是动态的,但是你可以以后添加功能,那么也许将它们移到一个数据库。

我写的应用程序,ModuleB就已经放在一个数据库也同样。事情就像形式标签、等等。可以很容易地在一个数据库。如果在稍后日期,有人决定要添加或删除的分号的所有形式的标签,这是一个相当容易做到的事情如果所有的案文保存在一个数据库。

考虑的情况下,当你需要编辑一的价值观。

如果价值是在网。config,节省的改变,该文件将导致应用程序,以回收,不方便地投掷出当前的用户。没有那么多的问题,如果你的程序是在一个内联网仅用于营业时间内(虽然你可能获得一个愤怒的电话是从那个家伙谁留工作到很晚).但是潜在的一个问题,在公共网站上与国际用户。

如果价值是在一个数据库,它将不会影响的应用程序的处理以这种方式。

无论哪种方式,考虑是否值缓存在的应用程序的RAM(网络。config is)。是的数据库的价值观应用程序中的变量,或在缓存?如果是这样,你可能不知道当的改变才会发生。除非你想要重新启动的应用程序。

而且,还有什么不同的访问和权限将在适当的管理员需要的变化?有人会有权访问网络服务器(s)改变网络。配置,或向该数据库(以及表格)来改变这种状况。

几个问题:为什么你使用相同的数据库,用于多个实例应用程序,以及如何将这种效果修?在未来将是一个选项,分裂的数据库,以便提高的性能吗?不配置的模型支持改变后的数据库基础的一个吗?

换句话说,你会需要考虑很多变量,以回答你的问题:-)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top