将经典ASP.NET解决方案迁移到Azure Repo

时间:2019-05-29 17:49:57

标签: azure-devops azure-pipelines azure-repos

我们的开发团队部署了大约6个ASP.NET应用程序(Web表单,SOAP服务,RESTful服务和可执行文件)。这些应用程序均引用了包含我们大多数业务代码的少数几个.DLL库,而这些库引用了一些较低级的框架和安全性库(全部在C#中)。现在,所有内容都以天蓝色托管在TFVC中。

我们正在创建一个新的Azure组织,并将所有内容移至Azure Git,更重要的是,我们正在使用管道设置CI / CD。到目前为止,我们只有一个巨型解决方案,可用于容纳所有内容的部署。应用程序项目仅使用对库项目的项目引用,而当我进行部署构建时,它将全部构建。然后,我们只需使用Web部署将每个应用程序独立发布到我们的Azure虚拟机中。

我们将需要为这些应用程序中的每一个提供管道,并且我们试图找出最佳方法(1)在Repos存储库中构建项目,以及(2)如何最好地引用库。

是否应该将库内置到包中,然后从引入管道的工件提要中引用它们?此外,每个应用程序和库应该是存储库中自己的项目,还是作为一个大型项目流向更好?我不确定这些问题是否有明确的答案,但我希望可以参考一些指导或最佳做法。

1 个答案:

答案 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?

希望这会有所帮助。