解决方案回购结构-VS Azure 功能

Solution repo structure -VS Azure functions

我正在开发 3 个名为 EmployeeAPI、StudentAPI、ProjectsAPI 的 Azure Functions,它们都访问同一个 SQL 数据库。我被指示确保每个项目都独立部署(每个项目都有单独的代码存储库)。

我的问题是这 3 个共享了一些共同的项目,维护所有 3 个项目很痛苦。如果我更改了 1 个项目,比如说一个数据库列,我也需要在其他项目上更新它。

有没有办法让公共项目驻留在 1 个存储库中,而更改将反映在 3 个项目中?有人建议我创建一个 Nuget 包或引用该项目。

这是每个项目的解决方案结构(简化)

EmployeeAPI
ApplicationLayer (shared)
DomainLayer (shared)
InfraLayer (shared)
Tests (shared)

StudentAPI
ApplicationLayer (shared)
DomainLayer (shared)
InfraLayer (shared)
Tests (shared)


ProjectsAPI
ApplicationLayer (shared)
DomainLayer (shared)
InfraLayer (shared)
Tests (shared)

我希望我解释得很好:-D

实际上,如果您想将 API 项目保存在单独的存储库中,那么将共享项目移动到 nuget 包是您可以做的最好的事情。 Here 您有文档向您展示如何推送 nuget 包。

您还可以将所有共享项目移动到第 4 个存储库,并将它们用作 API 项目的子模块。 你有关于在 Azure DevOps 中使用子模块的详细信息。

假设您正在为 CI/CD 使用 Azure DevOps,那么您可以使用 here 到 include/exclude 等路径过滤器,并将所有功能和共享项目放在一个存储库中。也许您可以使用其他 CI/CD 工具实现类似的功能。