适用于Oracle / ASP.NET环境的最佳源代码控制解决方案?

时间:2020-03-06 15:02:36  来源:igfitidea点击:

我正在尝试为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之后,开发人员可以立即在开发服务器上看到他的更新。

解决方案

我使用了Subversion和TortoiseSVN并感到非常满意。

如果我们可以花钱,那么Team Foundation Server就是在Visual Studio开发环境中效果最好的一种。

并且根据个人经验,它可以在VPN连接上正常工作。当然,我们可以进行自动化构建。

我会说SVN价格(免费),Perforce易于集成。

毫无疑问,我们还将听到有关GIT和CVS的信息,并且有充分的理由来研究它们。

Visual Source Safe是撒旦的产物。

查看Subversion和Visual SVN(使用Tortise SVN)。当然,Visual SVN每个席位的价格为49美元,但这是一个了不起的工具。我们有一个由6名程序员组成的开发团队,这对我们来说是一个很大的福音。

有趣的是-听起来我们正在服务器上的网站项目上工作,并且每个人都在处理相同的物理文件。我同意SVN远远优于VSS,并且确实可以很好地使用,但是根据我的经验,它实际上是针对开发人员在本地处理代码副本的。

VSS是"锁定并签入"类型的源代码控制,而SVN和TFS以及大多数其他代码是"编辑并合并"的-devs都获取源代码的副本,根据需要编辑文件,然后将其更改合并到源代码中控制,如果其他人同时编辑了文件,则他们会将更改合并到一起。

从数据库的角度来看,我假设我们正在检入数据库脚本,然后进行一些自动化的构建打包并运行它们(或者也许是开发人员或者DBA经常手动运行它们)。在这种情况下,让开发人员拥有脚本的本地副本,以便他们可以使用SVN或者TFS编辑和合并。

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

第1点是由于数据库架构(或者数据)问题引起的吗?

We can't use decentralized development because we can't replicate a development oracle database to all developers computers.

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

  • Oracle Express Edition非常适合这种情况。此外,共享同一数据库违反了数据库工作的第一条规则,以我的经验,应该在任何可能的地方执行该规则。
  • 正如Guy所建议的那样,拥有一个自动构建,允许任何开发人员随时重新创建其数据库架构。
  • 我们可以在此处找到更有用的指南(包括上面的规则1)。
  • 定义开发过程,以便可以进行并行开发,并且只能将锁用作最后的选择。

很抱歉,如果我们已经设想了这些解决方案并发现它们不适合情况,但我真的感到有必要表达以防万一……