【发布时间】:2010-09-19 21:15:42
【问题描述】:
我有一些 asp.net web 应用程序的配置值。一旦系统上线,它们将由系统管理员维护。我应该将这些值存储在数据库中还是配置文件中?这类事情有最佳实践吗?
【问题讨论】:
标签: asp.net configuration
我有一些 asp.net web 应用程序的配置值。一旦系统上线,它们将由系统管理员维护。我应该将这些值存储在数据库中还是配置文件中?这类事情有最佳实践吗?
【问题讨论】:
标签: asp.net configuration
根据配置信息的上下文,您可以选择将其保留在 web.config 中,也可以在数据库中为其创建维护表。我通常会在 web.config 中保留更多特定于后端的内容,例如连接字符串、ftp 位置、用户名/密码(用于应用程序,而不是用户权限)。
我通常会在数据库中保留更多与数据库中的信息相关的相关信息,而不是与应用程序本身相关的信息。
这都是基于松散的,但并非总是如此。
【讨论】:
如果可以并且不需要性能,我更愿意避免使用数据库。如果您需要/拥有一个数据库,那么我会说尽可能多地放在一个地方。一件事要管理。
【讨论】:
创建一个健壮的界面来编辑数据库中的值既简单又方便。
为配置文件创建一个好的文件并不容易。
所以我通常希望您将希望您的用户/管理员稍后能够在数据库中编辑的所有内容存储起来。仅在重新安装等重大更改期间才需要触及的所有内容最好在配置文件中进行。
【讨论】:
我总是推荐数据库,因为您可以相对轻松地构建管理 UI 并轻松审核所有更改。尽管您可以通过更改文件来完成相同的操作,但具有某种管理控制区域的数据库路由总是更可取。尤其是当你想知道谁在什么时候改变了什么。
同样在我们的环境中,如果出现错误更改配置文件,涉及到整个更改管理流程的审批/等,这非常痛苦。因此,如果您花时间将配置设置合并到数据库中,我认为从长远来看它会更好。只是我的 0.02 美元。
【讨论】:
出于以下两个原因,我更喜欢文本配置文件、.ini 样式或 XML 样式:
1 - 您可以将 cmets 放入文本文件中。
2 - 文本编辑器有一个“撤消”命令。
【讨论】:
我认为数据库是为分布式应用程序配置值的好地方,您希望无论他们使用哪台计算机,都可以使用用户设置。
存储在文件中的配置值对于特定于计算机的配置非常有用(例如,如果您使用映射驱动器来识别位置,并且每个用户可能有不同的映射,例如 CD/DVD 驱动器)。
如果您还没有用于您正在开发的应用程序的数据库,那么拥有一个专门用于应用程序配置的数据库可能有点过头了。
【讨论】:
我更喜欢文本.ini 文件。它们易于编辑,并且在您的应用程序移动时易于移动。这是一个示例Setting class,您可能会发现它很有用。
【讨论】: