应用配置最佳实践

时间:2014-04-17 10:47:44

标签: c# asp.net-mvc architecture

我有几个MVC项目(都是一样的),我想知道在哪里放置应用程序配置?现在我有以下选择:

  • 将它们存储在中央数据库中
  • 将它们存储在应用程序数据库中
  • 将它们存储在appSettings(web.config)
  • 将它们存储在配置部分
  • 将它们存储在自定义配置文件中

我想知道这种情况的最佳做法是什么

4 个答案:

答案 0 :(得分:0)

我认为你必须将它们存储在应用程序数据库中。曲子,

  • 每种应用都会有所不同,例如如果一个应用程序轻量级主题而另一个需要黑暗主题。
  • 最好保存在数据库中,因为您可以按应用程序本身或运行查询来更新配置。因此,更改设置而不是将其保存在Web.Config中非常简单。
  • 您可以创建一个类来访问数据库中的配置值。使用Indexer,以便像Configuration["Theme"]一样使用它,使访问更容易。我在我的项目中使用过它。

但是,如果它的数据库相关,则需要将其存储在web.config

希望,它可以帮助你减肥。祝你今天愉快。 :)

答案 1 :(得分:0)

我不知道是否真的有一个共同的最佳实践'用于其中来存储设置。您必须考虑给定情况的所有变量。我有些想法:

  • 如果您需要在不同应用程序之间进行集中存储,则在数据库中存储设置可能很有用。并发问题会更少。根据存储的设置类型,您可能会发现数据库模式效率低下。它还为应用程序带来了对另一个服务器/服务的依赖。
  • 在web.config中存储非常简单。对于需要从应用程序进行更改的设置不太有用。此外,对web.config中的设置进行的任何更改都将启动应用程序重新启动。
  • 自定义配置文件可以更灵活地设置存储空间。您当然必须编写额外的代码来读/写设置。序列化可以在很多情况下处理这个问题。

如果它的低级别应用程序设置很少被您更改,我可能只会使用web.config。如果您正在谈论通过应用程序更改的设置(例如用户首选项),我会选择进行数据库存储。

答案 2 :(得分:0)

您应该将web.config中的默认值和database中的其他设置存储起来。

例如,如果您的应用程序有mailing system,那么smtp settings应存储在您的数据库中,但发送邮件的文化应存储在web.config

此外,还有一种方法可以在Visual Studio环境中存储应用程序设置,如下所示

Right click on your project > Properties > Settings tab > Create

但我从未使用过这个。您还可以通过调用.Save()方法更新设置。详细了解here

就我而言:

  • 我将设置存储在我的数据库中
  • 我将默认值存储在web.config

答案 3 :(得分:0)

配置是人们应该快速找到的东西,这就是为什么项目中的配置文件与平台无关。每个平台sdk现在都附带SDK,确保他们的社区遵循他们推荐的做法。

如果您想保护配置文件,可以加密它,如果软件开发遵循颠覆工作流程和其他开发实践,我认为不需要它。