我们的开发团队部署了大约6个ASP.NET应用程序(Web表单,SOAP服务,RESTful服务和可执行文件)。这些应用程序均引用了包含我们大多数业务代码的少数几个.DLL库,而这些库引用了一些较低级的框架和安全性库(全部在C#中)。现在,所有内容都以天蓝色托管在TFVC中。
我们正在创建一个新的Azure组织,并将所有内容移至Azure Git,更重要的是,我们正在使用管道设置CI / CD。到目前为止,我们只有一个巨型解决方案,可用于容纳所有内容的部署。应用程序项目仅使用对库项目的项目引用,而当我进行部署构建时,它将全部构建。然后,我们只需使用Web部署将每个应用程序独立发布到我们的Azure虚拟机中。
我们将需要为这些应用程序中的每一个提供管道,并且我们试图找出最佳方法(1)在Repos存储库中构建项目,以及(2)如何最好地引用库。
是否应该将库内置到包中,然后从引入管道的工件提要中引用它们?此外,每个应用程序和库应该是存储库中自己的项目,还是作为一个大型项目流向更好?我不确定这些问题是否有明确的答案,但我希望可以参考一些指导或最佳做法。
答案 0 :(得分:0)
是否应该将库内置到包中,然后从引入管道的工件提要中引用它们?
将库构建到包中是一个不错的选择,尤其是那些库被多个应用程序引用。使用nuget软件包将减少项目之间的引用关系,从而使我们更易于管理项目。
检查this thread以获得更多好处,并选择该线程选择Project reference or NuGet。
每个应用程序和库都应该是其各自的项目 存储库,还是作为一个大型项目流向更好?
正如您所知,这个问题很难给出明确的答案。尽管现在越来越多的声音支持monorepos,但是建议monorepos仍然有争议,实际上在某些情况下,我们仍然需要多个存储库,例如:
所以,就像DJ所说的,您必须自己选择。
您可以检查以下主题以获取有关此主题的更多信息:
Why you should use a single repository for all your company’s projects
Choosing between Single or multiple projects in a git repository?
希望这会有所帮助。