将经典 ASP.NET 解决方案迁移到 Azure 存储库



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

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

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

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

是否应该将库内置到包中,然后从我们拉入管道的工件源中引用它们?

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

检查此线程以获取更多 nuget 优势,并检查此线程以选择项目引用或 NuGet。

每个应用程序和库是否应该在 存储库还是作为一个大型项目倾向于更好地流动?

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

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

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

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

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

在 git 存储库中的单个或多个项目之间进行选择?

希望这有帮助。

最新更新