2012-11-29 159 views
1

如何将一个单一的解决方案网站拆分成多个解决方案(而不是多个项目),使独立开发人员可以在各个解决方案的工作,同时还具有“知名度”到其他那些?例如,我希望能够直接从Visual Studio运行和测试业务模块(F5),但登录模块位于单独的解决方案中。有没有办法像这样划分网站开发?在asp.net拆分单一的解决方案为多个解决方案

如果没有,怎么能多开发者是在同一个解决方案不同项目中工作? (我们是一家小商店,还没有尝试Team Foundation Services)。

回答

0

...来源控制。

我读了你的问题,来考虑的第一件事是“他们试图在托管网络共享源代码的同一副本的工作”。坏,坏,坏。即使它是一个网站,因此可以在正常运行状态下从一个地方访问,但这不是开发它的正确方法

抓住Subversion或Mercurial的副本,检查代码库并确保每个人定期做出改变。 Subversion Server本身免费提供CollabNet;一些用于提供GUI和IDE集成的工具不是(但有些是好的;检查出TortoiseSVN用于一般基于Windows资源管理器的存储库操作,而AnkhSVN是Visual Studio的免费插件,允许在IDE内提交/更新) 。

一旦你设置了这个源码控制系统,每个人都会将代码库的工作副本“检出”到他们的本地机器上,并且可以对其进行所有更改,然后“检入”这些更改他们有一个稳定的工作版本,其他人可以通过更新他们自己的工作副本来获得。显然,这需要开发人员的机器有足够的力量来在自己的机器上运行网站的基本副本(大多数最近4年左右的PC应该没有问题,运行IIS,SQL Server Express和ASP实例.NET网站只有开发者浏览它)。要查看最新的工作副本的外观和行为,您可以定期将其发布到模拟您的生产服务器的临时环境(相同的服务分布,例如不同机器之间的IIS/SQL Server,除非需要进行负载测试,否则可能功耗更低) 。

SVN通过“合并”的变化将在同一文件的多个提交,并有通常只有一个问题,如果两个开发者修改了相同的代码行以不同的方式。如果某人对代码库进行了大规模的彻底改变,可能会干扰其他用户,但仍然想“提交”他的工作副本(通常是一件好事,为了备份目的,如果没有其他),他可以根据当前的源代码,从中更新并提交,然后当他完成时,将他的更改合并到“中继”中。

基本上,每个在项目上工作的开发人员都应该在同一组源代码中工作,理想的情况是开发人员可以从版本控制中从头开始下载,在VS中打开,打开“构建”按钮并去。你的团队应该彼此沟通,了解他们正在从事哪些项目和源文件,并且应该定期(如每隔一两个小时)进行变更并让其他人参与。

你可以去整个生猪和实施了“持续集成”服务器。在每一次签到时,这个系统都会提取最新的源代码并运行一些自动化任务,比如运行各种测试/指标,推送到分级等。如果你安装在三个或更少的“构建代理”上,TeamCity是免费的“构建代理”可以运行不同的测试套件,或基于不同的提交工作)。当你密切注意测试驱动的开发实践时,这通常具有最大的价值;那么CI服务器将运行单元和集成测试,以确保代码完成开发人员认为应该做的所有事情,并加上代码覆盖范围,以确保遵循规则并且代码已被测试充分行使。

工作在不同的解决方案,揭示不同的,但重叠的项目是不是一个伟大的想法;作为一种减少托管虚拟机环境中的资源需求的策略(加载大量项目,特别是使用像ReSharper这样的代码分析工具,可能真正对旧系统或仿真器/ VPC设置征税),我只曾将这种方法看作是一种策略。

+0

我从任何地方都能看到这个想法。我们有另一个(非网络)asp.net应用程序,我们已经使用多种解决方案开发了多年,这些解决方案运行良好,但Web开发是另一种野兽。非常感谢您的建议。 – user1864728

+0

即使您正在进行WinForms或Windows Service开发,也不应让人们尝试将更改保存到一组平面文件。如果有人正在与另一个人在同一个文件上工作会发生什么?无论谁保存上次都会覆盖自上次获得该文件副本以来的任何其他人的更改(并且在IDE告诉他该文件发生更改时未命中“忽略”)。版本控制系统是任何开发团队最基本的要求。 – KeithS

+0

它是完全独立的解决方案,只有我们两个人,所以我们协调得很好,而且决不会同时处于相同的解决方案中。但是你的观点已经完全被采纳,源代码控制是我们将要走向的方向。再次感谢。 – user1864728