如何在ASP.NET中分离配置?

时间:2012-03-31 15:21:11

标签: asp.net deployment

我的团队正在进行Web开发(ASP.NET,WCF),我们处于开始阶段,每个人都需要进行数据库更改并使用自己的示例数据。

我们使用专用的数据库服务器,我们希望每个开发人员都针对不同的数据库进行开发。

我们看起来需要的是能够以源代码控制的方式在每个开发人员的基础上配置连接字符串。显然,我们可能有其他需要自定义设置的配置设置,最后,我们需要维护一组对所有开发人员都通用的配置设置。

有人可以在这里建议最佳做法吗?

当我们想要将构建的应用程序部署到不同的环境(测试,阶段,生产)而不必手动调整配置(除了可能配置环境名称)时,会出现类似的问题。

2 个答案:

答案 0 :(得分:2)

您可以使用配置转换来部署到不同的环境。这很容易。斯科特·汉塞尔曼(Scott Hanselman)对其进行了非常精彩的视频here

对于您的个人开发人员db问题,没有任何我能想到的特别优雅的解决方案。让每个开发人员拥有一个独特的配置并不是一个真正的“最佳实践”。一旦每个人开始集成他们的代码,如果每个人都针对唯一的数据库和配置集编写代码,那么你的手上可能会有一个非常丑陋的情况。它几乎可以保证代码不会对两个开发人员执行相同的操作。

这是我推荐的,过去做过的。

  1. 在测试数据库服务器上的一个数据库上为数据库创建基本框架。
  2. 创建数据库项目作为解决方案的一部分。
  3. 使用.Net内置的Schema Compare将现有数据库写入数据库项目。
  4. 当有人需要更改数据库时,首先,他们应该获取数据库项目的最新信息,然后进行更改,然后重复步骤4以将更改添加到项目中。
  5. 使用此方法,开发人员也可以非常轻松地部署与“主”数据库匹配的数据库的本地实例,进行更改并将这些更改写回项目。

答案 1 :(得分:0)

行。

也许不是那么优雅的解决方案,但是当使用Debug配置构建项目时,我们选择从不同的地方读取连接字符串。

我们正在使用注册表,必须手动维护。

它需要一些额外的编码,但是读取注册表的代码只能在debug(#if debug)中编译,因此生产中没有性能损失。

希望这也有帮助。

干杯