【问题标题】:split a single solution into multiple solutions in asp.net在 asp.net 中将单个解决方案拆分为多个解决方案
【发布时间】:2012-11-29 23:09:54
【问题描述】:

如何将单一解决方案的网站拆分为多个解决方案(而不是多个项目),以便单独的开发人员可以处理单独的解决方案,同时仍然对其他解决方案具有“可见性”?例如,我希望能够直接从 Visual Studio (F5) 运行和测试业务模块,但登录模块位于单独的解决方案中。有没有办法像这样划分网站开发?

如果不是,多个开发人员如何在同一解决方案中的不同项目上工作? (我们是一家小商店,还没有尝试过 Team Foundation Services)。

【问题讨论】:

    标签: asp.net projects-and-solutions


    【解决方案1】:

    ...源代码控制。

    我阅读了您的问题,首先想到的是“他们正在尝试处理托管在网络共享上的源代码的同一副本”。糟糕,糟糕,糟糕。即使它是一个网站,因此要在正常运行状态下从一个地方访问,这也不是开发它的正确方法

    获取一份 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 设置带来负担)。

    【讨论】:

    • 我的这个想法是从我能读到的所有地方得到的。我们有另一个(非网络)asp.net 应用程序,我们已经使用多种解决方案开发了多年,这些解决方案运行良好,但网络开发是另一种野兽。非常感谢您的建议。
    • 即使您正在进行 WinForms 或 Windows 服务开发,也不应该让人们尝试将更改保存到一组平面文件。如果有人和另一个人在同一个文件上工作会发生什么?上次保存的人会覆盖自上次获得文件副本以来其他任何人的更改(并且当 IDE 告诉他更改时没有点击“忽略”)。版本控制系统是任何开发团队最基本的要求。
    • 是完全独立的解决方案,我们只有两个人,所以我们协调得很好,不会同时在同一个解决方案中。但是你的观点完全被接受了,源代码控制是我们将要走的方向。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    • 2012-03-31
    • 2021-05-20
    相关资源
    最近更新 更多