在MVC3中区分环境的最佳方法是什么?

时间:2011-11-28 18:55:07

标签: asp.net asp.net-mvc-3 environments

我正在使用MVC3,我想知道区分环境的最佳方法是什么?例如,我正在考虑为appSettings添加一个键并引用它,但是在MVC3中有更好的方法吗?我正在开发3种环境:开发,分期和生产。

由于

3 个答案:

答案 0 :(得分:3)

我使用配置管理器并将DEBUG,TEST,RELEASE定义为编译时常量。对于我使用Web.config Transformation Syntax for Web Application Project Deployment的配置,强烈建议您使用它们。

例如:

//web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>
    <add name="MyConnectionString"
         connectionString="Data Source=SqlServer\Sql2008;
                           Initial Catalog=MyDB.Dev;
                           Integrated Security=SSPI"
         providerName="System.Data.SqlClient" />
  </connectionStrings>
  <add key="SomeAppSetting" 
       value="DebugValue"/>
</configuration>

测试转换:

//web.Test.config
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <connectionStrings>
    <add name="MyConnectionString"
         connectionString="Data Source=SqlServer\Sql2008;
                           Initial Catalog=MyDB.Test;
                           Integrated Security=SSPI"
         providerName="System.Data.SqlClient"
         xdt:Transform="SetAttributes" 
         xdt:Locator="Match(name)"/>
  </connectionStrings>
  <add key="SomeAppSetting" 
       value="TestValue"
       xdt:Transform="SetAttributes" 
       xdt:Locator="Match(key)"/>
</configuration>

当我将配置从调试更改为测试并重建/部署时,我的应用现在使用我的web.Test.config中的转换更新。非常有用。

您可以使用Configuration Manager Dialog Box构建不同的配置。您可以随时右键单击web.config并选择添加配置转换,以使Visual Studio 2010自动创建转换配置文件。

答案 1 :(得分:0)

对于MVC UI项目,Web.config可能是个好地方。假设数据层和服务层是分开的,那么在其他项目中也会有条目。

答案 2 :(得分:0)

我建议您查看web config transformation。获得web.config设置的基础后,您将为登台和生产环境创建转换。

如果您需要更多信息,可以在网上找到很多好的例子。