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

问题描述

我们的开发团队部署了大约 6 个 ASP.NET 应用程序(Web 表单、SOAP 服务、RESTful 服务和可执行文件)。这些应用程序都引用了相同的少数 .DLL 库,这些库包含我们的大部分业务代码,并且这些库引用了一些较低级别的框架和安全库(这些都在 C# 中)。现在它全部托管在天蓝色的 TFVC 中。

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

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

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

标签: azure-devopsazure-pipelinesazure-repos

解决方案


是否应该将库构建到包中,然后我们从我们拉入管道的工件提要中引用它们?

将库构建到包中是一个不错的选择,尤其是那些被多个应用程序引用的库。使用nuget包会减少项目之间的引用关系,让我们更容易管理我们的项目。

检查此线程以获得更多 nuget 优势,并检查此线程以选择Project reference 或 NuGet

每个应用程序和库应该是存储库中自己的项目,还是作为一个大型项目流动得更好?

如您所知,这个问题很难有明确的答案。虽然现在越来越多的声音支持 monorepos,但建议 monorepos 仍然存在争议,确实在某些情况下我们仍然想要多个存储库,例如:

  • 单个存储库太大而无法高效。
  • 您的存储库是松散耦合或解耦的。
  • 开发人员通常只需要开发一个或一小部分存储库。
  • 您通常希望独立开发存储库,并且只需要偶尔同步它们。
  • 你想鼓励更多的模块化。
  • 不同的团队在不同的存储库上工作。

所以,就像 DJ 说的,你必须自己选择

您可以查看以下线程以获取有关此主题的更多信息:

为什么您应该为公司的所有项目使用单个存储库

在 git 存储库中选择单个项目还是多个项目?

希望这可以帮助。


推荐阅读