我们的团队正在考虑使用Team Foundation Server的第11节(2012年)来管理我们的项目。 目前,我们做我们的项目管理中的电子表格。 我们的团队只有内部客户开发软件,并有大量的项目之间的dll共享。 我们还使用SVN我们的源代码版本控制。
我们有我们的应用程序的不同部分解决方案:公用库,应用程序库(业务规则等),内网网站,互联网网站,Windows窗体。 这里是我们的SVN结构是什么样子
SVN
-CommonLibrary (VS Solution)
-Source
-CommonLibrary.Core (VS Project)
-CommonLibrary.Security (VS Project)
-CommonLibrary.Web (VS Project)
-OurCompanyLibrary (VS Solution)
-Libraries (Projects within this solution reference these)
-CommonLibrary.Core.dll
-CommonLibrary.Security.dll
-Source
-OurCompanyLibrary.Application1 (VS Project)
-...
-OurCompanyLibrary.ApplicationN (VS Project)
-OurCompanyIntranet (VS Solution) (MVC framework)
-Libraries (Projects within this solution reference these)
-CommonLibrary.Core.dll
-CommonLibrary.Security.dll
-CommonLibrary.Web.dll
-OurCompanyLibrary.Application1.dll
-Source
-OurCompanyIntranet.Application1 (VS Class Library Project)
-...
-OurCompanyIntranet.ApplicationN (VS Class Library Project)
OurCompanyIntranet.UI (VS Web Project)
-OurCompanyInternet (VS Solution) (MVC framework)
-Libraries (Projects within this solution reference these)
-CommonLibrary.Core.dll
-CommonLibrary.Security.dll
-CommonLibrary.Web.dll
-OurCompanyLibrary.Application1.dll
-Source
-OurCompanyInternet.Application1 (VS Class Library Project)
-...
-OurCompanyInternet.ApplicationN (VS Class Library Project)
-OurCompanyInternet.UI (VS Web Project)
之所以分裂代码为多个解决方案,是因为我们可以重新使用在不同情况下的应用程序库(内联网应用,互联网应用程序,应用程序的Winform)。 此外,企业内部网和互联网解决方案包含多个应用程序。 这是我们目前的结构。 我不知道这是最好的组织结构,但它为我们工作。
与切换到TFS的问题是,一个团队项目中不能有多个VS解决方案的部分。 例如,我们将成立一个TFS团队项目的应用程序1,所以我们可以有该应用程序的产品积压。 应用1需要改变OurCompanyLibrary,OurCompanyIntranet和OurCompanyInternet完成申请,但是,使用TFS,将只有一个VS解决方案应用1。
下面是我们如何开发一个应用程序的示例。 所有的域模型和业务规则,我们存储在OurCompanyLibrary VS解决方案。 当我们开发一个应用程序,把它应用1,我们先开始创建的域模型和业务规则下OurCompanyLibrary VS解决方案的OurCompanyLibrary.Application1 VS项目。 一旦域模型开发,我们转移到在OurCompanyIntranet和OurCompanyInternet VS解决方案事情UI端程序。 这些解决方案是一个MVC风格的网站。 OurCompanyIntranet包含VS Web项目OurCompanyIntranet.UI包含所有的视图(.aspx文件),CSS,javasciprt等OurCompanyIntranet还包含了所有应用程序分离模型和控制器的(OurCompanyIntranet.Application1在这种情况下)。 在TFS组织这成为一个问题,因为我们要为应用1一个团队项目,但该应用可以跨越多个解决方案,我们不希望通过增加相同OurCompanyIntranet和OurCompanyInternet VS解决方案到源代码管理处处有重复的代码。
你将如何在TFS组织呢? 还有另一种方法,我们要组织我们的代码结构,将更有意义? 在那里,任何文章或网站会导致我们在正确的方向将极大地帮助。