Oracle / ASP.NET环境的最佳源代码管理解决方案?

时间:2008-10-02 18:56:11

标签: asp.net oracle version-control development-environment

我正在尝试为5位开发人员计划一种方法,使用Visual Studio 2005/2008在开发Web服务器上针对Oracle 8i(即将是10g)数据库协作开发ASP.NET Web应用程序。

开发人员要么在本地网络上,要么通过vpn进入(不是非常快速的连接),

我评估了最新的Visual SourceSafe,但遇到了以下问题:

1)我们不能使用分散式开发,因为我们无法将开发oracle数据库复制到所有开发人员计算机。此外,vpn太慢,无法让其本地应用程序实例连接到数据库服务器。

2)由于VSS源代码不在文件系统上,因此调试它的唯一方法是构建应用程序并运行调试器,只有一个开发人员可以在集中式开发服务器上一次执行。这是无法接受的。我们尝试使用影子文件夹,以便每次检入文件时都会将其发布到开发服务器上的应用程序实例,但这对于vpn上的远程开发人员来说是失败的。

3)由于开发人员执行了大量的Web代码,因此出于生产率的原因,在保存文件时,他们应该能够立即看到开发服务器上的更改。

4)没有简单的方法来实现将文件推送到生产服务器的受控过程。

有关源控制解决方案的任何建议可以在这些约束下工作吗?

更新:我想由于开发被强制放在服务器上,我们需要使用“锁定并检入”模式。那么哪种源控制解决方案最适合“锁定和签入”场景?

更新: Visual SVN是否支持针对开发服务器集中开发?如在,保存在VS后,开发人员可以立即在开发服务器上看到他的更新?

6 个答案:

答案 0 :(得分:4)

我使用了SubversionTortoiseSVN,非常高兴。

答案 1 :(得分:3)

由于数据库架构(或数据)存在问题,第1点是什么?

  
      
  1. 我们不能使用分散式开发,因为我们无法将开发oracle数据库复制到所有开发人员计算机。
  2.   

如果没有,我强烈建议每个开发人员都有自己的环境(Visual Studio,Oracle ......),并使用开发服务器进行集成。也许你可以给他们一些数据,或者只是模式脚本。

  • Oracle Express Edition完全适合这种情况。此外,共享同一个数据库违反了rule #1 for database work,根据我的经验应该尽可能强制执行。
  • 作为Guy suggested,有一个自动构建,允许任何开发人员随时重新创建其数据库架构。
  • 更有用的指南可以是found here(包括上面的规则#1)。
  • 定义您的开发过程,以便可以进行并行开发,并且只使用锁作为最后的手段。

如果您已经设想过这些解决方案并发现它们不适合您的情况,我很抱歉,但我真的觉得要表达它们的冲动以防万一......

答案 2 :(得分:2)

Visual Source Safe是撒旦的产物。

查看Subversion和Visual SVN(使用Tortise SVN)。当然,Visual SVN的成本有点 - 每个座位49美元 - 但它是一个很棒的工具。我们有一个由6名程序员组成的开发团队,这对我们来说是一个很大的好处。

答案 3 :(得分:1)

如果您可以花钱,那么Team Foundation Server是最适合Visual Studio开发环境的那个。

根据个人经验,它在VPN连接上运行良好。当然,你可以自动构建它。

答案 4 :(得分:0)

我会说价格(免费)的SVN,Perforce易于整合。

毫无疑问,您也会听到GIT和CVS,并且有充分的理由去了解它们。

答案 5 :(得分:0)

有趣 - 听起来您正在处理服务器上的网站项目,并且每个人都在处理相同的物理文件。我同意SVN远远优于VSS并且非常适合使用,但根据我的经验,它非常适合在本地编写代码副本的开发人员。

VSS是一种“锁定和检入”类型的源代码控制,而SVN和TFS以及其他大多数代码都是“编辑和合并” - 开发人员都获取源代码的副本,根据需要编辑文件,然后合并他们的更改为源代码管理,如果其他人在此期间编辑了文件,他们会将更改合并在一起。

从数据库的角度来看,我假设您正在检查数据库脚本,然后进行一些自动构建打包并运行它们(或者可能只是一个dev或DBA每隔一段时间手动运行它们)。在这种情况下,让开发人员拥有可以使用SVN或TFS编辑和合并的脚本的本地副本是有道理的。

对于在开发服务器上处理源代码共享副本的团队,您可能会遇到使用编辑和合并的问题 - 源代码管理的“锁定和签入”模型可能更适合您。从腐败和稳定的角度来看,不是VSS。