每个人如何存储连接线?

时间:2012-05-09 21:32:34

标签: asp.net .net web-config connection-string

我想知道人们是否可以将他们的解决方案发布到本地数据库的持续问题以及源控制中的一个项目中的许多开发人员之间的不同连接线?

更具体地说,我所说的是一个源代码控制项目,并且每个开发人员都拥有本地数据库的问题。每个开发人员都有自己的连接字符串(命名实例,默认实例,计算机名称,用户名,密码等)。每次检入都会覆盖以前的版本,并使用其他人的连接字符串拉取最新版本的结果。

那么,人们,您使用哪种解决方案来解决这个问题?解释为什么他们的解决方案有效,优点和缺点的额外点。

修改 请记住,此答案不应仅针对您完全控制设置的企业环境。正确的解决方案应该适用于所有人:企业,初创公司和开源开发人员。

谢谢!

4 个答案:

答案 0 :(得分:10)

对我来说,你的问题似乎意味着两个结果之一:

  1. 在Web.config文件中指定了一个连接字符串,该字符串足够通用,可以用于数据库的所有本地版本。您已经指出,在您无法完全控制的环境中,这不是理想的设置。
  2. 每个开发人员都必须提供自己的连接字符串,该连接字符串永远不会被检入源代码管理。
  3. 其他一些人已经涵盖了第一种情况。使用localhost并遵循数据库名称的约定。对于选项2,我建议指定一个未检入源代码控制的配置源:

    <configuration>
      <connectionStrings configSource="connectionStrings.config"/>
    </configuration>
    

    编辑:

    connectionStrings.config

    <connectionStrings>
      <add name="Name" 
        providerName="System.Data.ProviderName" 
        connectionString="Valid Connection String;" />
    </connectionStrings>
    

    来自:http://msdn.microsoft.com/en-us/library/ms254494(v=vs.80).aspx

    connectionStrings.config将是您从源代码管理中明确排除的项目根目录中的文件。在本地工作时,每个开发人员都需要提供此文件。您的生产连接字符串可以通过构建/部署上的Web.config转换替换。

答案 1 :(得分:5)

我们所有的开发站都设置有点相同。

  1. 我们对数据库使用集成身份验证,因此不需要存储用户/密码。
  2. 每个人都使用默认实例。
  3. 由于它们都是本地数据库,因此您可以使用localhost。
  4. 相同的数据库名称
  5. 因此连接字符串可能最终成为:

    Data Source=localhost;Initial Catalog=TheDatabaseName;Integrated Security=SSPI;
    

    每个人都使用它。

答案 2 :(得分:1)

我们有一个在自己的服务器上运行的测试数据库。它只是每天晚上从实时服务器实际复制的测试数据。 所有开发人员都将其用于测试。这是真实的数据,但不重要,因为它是一天的。 我们当然将连接字符串存储在web.config中。我有一个函数来从web.config获取连接字符串,我只是看看它是否localhost返回测试连接字符串。如果没有,则返回实时连接字符串。 这对我们有用。我们只是不使用本地数据库。

答案 3 :(得分:0)

我见过各种方法。

i)您只维护一个实时连接字符串,并且开发人员对相关模块进行修改,并且永远不会将其签入。

ii)使用连接字符串维护app.config,就源控制而言,它是一个共享文件。

iii)在debug config中,连接字符串详细信息在IDE的命令行中传递。