2

我是我公司的首席技术官和唯一的开发人员。我正准备雇用我们的第一个开发人员,并可能在未来 6 到 12 个月内雇用第二个。我很尴尬地说我从来没有使用源代码控制作为我工作流程的一部分。我想作为一个 1 人开发团队让我有点懒惰。并不是我不想这样做,我只是对如何开始使用它有一点心理障碍。

我们有 5 个我构建和维护的 Web 应用程序。我们使用 ASP.NET,每个 Web 应用程序都引用一个已复制到每个应用程序的“bin”文件夹中的单个 .NET 类库 (DLL)。我一直在使用一个包含类库和所有 Web 应用程序的 Visual Studio“解决方案”进行开发。有点臃肿,我敢肯定,但这种方法使我能够同时对我的所有应用程序(和类库)进行全局查找和替换操作,从而使我可以轻松地最大程度地减少错误。

我意识到实现源代码控制本身对我的工作流程来说是一个很大的改变,但是在我的流程中引入另一个开发人员也让我有点不知所措。我正在寻求有关如何开发工作流程的帮助,以使我的小团队能够快速移动而无需繁琐的流程。我想避免讨论选择哪个 SCC 系统(我们将使用 Mercurial)。我对讨论它的结构和工作流程方面更感兴趣。

以下是我需要帮助的问题:

  1. 我应该将每个应用程序拆分为一个单独的“项目”还是将它们全部放在一起,以便我们可以在必要时继续从全局查找和替换操作中受益。由于类库的情况,我担心将它们分开(参见#2)。

  2. 如果将应用程序拆分为单独的项目,我不确定如何处理每个项目都需要一个副本的类库。例如,假设对其中一个应用程序(称为“项目 1”)的更改需要对类库进行更改......如果类库位于单独的项目中(称为“项目 2”),它在我看来,项目 1 将依赖于项目 2 中的最新更改才能正常工作,这对我来说似乎很“混乱”。或者,您是否只是对项目2(类库)进行更改,将它们签入,然后将新编译的dll复制到项目1中(但不应该将复制到项目1中的dll的新副本记录在SCC 不知何故)。写到这里我也很迷茫...

在此先感谢您的帮助。

4

2 回答 2

1

首先,恭喜您决定最终使用源代码控制。我知道改变你的习惯可能会令人沮丧,但从长远来看,我相信你会看到好处。

  1. 包含多个项目的解决方案没有任何问题。我通常将我的保持在 10 左右,但这只是为了缩短加载时间。如果将它们放在一起对您更有效,那就这样吧。使用源代码管理不会对此产生任何影响。
  2. 至于类库,我认为你需要做的是改变你对库项目进行更改的方式,而不是你如何使用引用它的项目。对库项目实施单元测试以强制向后兼容,这样您就知道删除最新版本的库不会破坏您的应用程序。您可能会发现这不是真的几次,但是随着您开发更多的单元测试来处理边缘情况,这种情况会越来越少。
于 2009-09-10T17:43:27.680 回答
0

You can have multiple projects in a single Visual Studio solution. What I've done in the past is to have both the ASP.NET project and the class library project in the same solution. You can have your ASP.NET project reference the class library project (Add Reference and then go to the Projects tab to show other projects in the same solution). That way, whenever you change the class library, the ASP.NET application will be build using the latest version of the class library. You can setup multiple solutions - one for each ASP.NET application with each solution including the class libary project.

You could also setup one large solution with all of your ASP.NET projects as well as your class library but that may get a bit hard to work with, especially with multiple developers working on the different ASP.NET pages.

于 2009-09-10T17:47:48.123 回答