3

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

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

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

1)我们不能使用去中心化开发,因为我们不能将一个开发预言机数据库复制到所有开发者的计算机上。此外,VPN 速度太慢,无法让他们的本地应用程序实例连接到数据库服务器。

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

3) 由于开发人员编写了大量的 Web 代码,出于生产力的原因,重要的是当他们保存文件时,他们应该能够立即看到在开发服务器上工作的更改。

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

关于在这些限制下工作的源代码控制解决方案有什么建议吗?

更新:我猜由于开发被迫在服务器上进行,我们需要采用“锁定并签入”模型。那么哪种源代码控制解决方案最适合“锁定和签入”场景?

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

4

6 回答 6

4

我使用过SubversionTortoiseSVN,非常满意。

于 2008-10-02T19:00:37.300 回答
3

第 1 点是由于您的数据库架构(或数据)有问题吗?

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

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

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

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

于 2008-10-03T09:41:55.603 回答
2

Visual Source Safe 是撒旦的产物。

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

于 2008-10-02T19:10:07.950 回答
1

如果您可以花钱,那么 Team Foundation Server 是最适合在 Visual Studio 开发环境中运行的服务器。

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

于 2008-10-02T19:01:38.250 回答
0

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

毫无疑问,您也会听说过 GIT 和 CVS,并且有充分的理由来研究它们。

于 2008-10-02T19:03:00.837 回答
0

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

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

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

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

于 2008-10-02T19:24:04.157 回答