Power Platform 中的 Git 集成概述

源代码管理集成使开发团队能够使用受支持的 Git 提供程序(如Azure DevOps或GitHub)跨一个或多个Microsoft Dataverse环境同步解决方案和解决方案对象。 这些解决方案原生提供源代码管理集成功能,因此公民开发人员、代码优先开发人员和管理员都可以从版本控制、更改跟踪和跨不同工具和环境的无缝团队协作中获益。 将 Git 与开发人员环境(而不是测试或生产环境中)集成。 使用构建在 Power Platform 中创建解决方案工件和管道以进行部署。

本文介绍将已启用 Git 的源代码管理用于 Dataverse 环境和解决方案的一些关键概念和优势。 有关 Azure DevOps 中的 Git 的信息,请参阅 Azure DevOps Git 存储库。 有关GitHub存储库的信息,请参阅“关于存储库”。

在环境中的制作者可以更改非托管解决方案,并提交到 Git,然后再使用管道部署

Power Platform 和 Dataverse 中的 ALM

Power Platform 提供了许多即装即用的功能,使组织能够管理其解决方案的应用程序生命周期管理(ALM)。 其中包括:将解决方案打包成容器,用于容纳平台中的多种不同类型的对象;管理应用程序生命周期中涉及的环境;以及使用Power Platform 中的管道部署解决方案的能力。 将 Git Power Platform 存储库与开发人员工具集成在一起的方法也有很多种。 通过在 Dataverse 中本机集成 Git,流程得以简化和精简,制作者可以熟悉的方式使用他们的解决方案,并可以通过 Power Apps (make.powerapps.com) 中的简化界面与源代码管理交互。

福利

  • 源代码管理作为事实来源:在某些组织中,Dataverse 中部署的事实来源是构建解决方案的制作者环境。 出现这种行为的主要原因是,非原生 Git 集成采用了高级技术和工具,而要开始使用这些技术和工具,则需要具备专业的 IT 知识。 通过在 Dataverse 中本机集成 Git,只需几步即可启用源代码管理,并可为制作者提供熟悉的界面来使用他们的解决方案。
  • 使用 SDLC 最佳做法的安全、审核和合规:软件开发生命周期 (SDLC) 最佳做法是一套指南和流程,可帮助您有效管理软件开发项目。 通过在 Dataverse 中使用 Git 集成,您可以按照 SDLC 做法操作,如版本控制、代码审查和静态源代码分析,来确保解决方案的质量、可靠性和安全性。 Dataverse 中的 Git 集成还包括审核、合规性和可跟踪性等功能,可帮助您跟踪解决方案的更改并与其他团队成员有效协作。
  • 短期开发环境:通过在源代码管理中存储环境自定义和配置的副本,您可以在 Dataverse 中快速轻松地从源代码管理解除冻结开发环境。 这样,您可以创建短期环境来用于开发和测试。 利用短期环境,您可以释放存储,试用新功能,在解决方案中进行测试和迭代,不需要依赖永久环境。
  • 融合开发团队:融合开发团队是由开发人员和制作者组成的团队,一起协作构建解决方案。 通过使用 Dataverse 中的 Git 集成,这些用户可通过与常见源代码管理存储库同步,在单独的环境中独立构建并与其他人协作。 源代码管理集成允许您利用开发人员和制作者的技能和专业知识来构建满足组织需要的高品质解决方案。
  • 保护:使用源代码管理作为解决方案的事实来源,您可以快速轻松地从解决方案中的意外更改中恢复。 通过将解决方案存储在源代码管理中,可以还原到以前的状态或版本。

关键概念

非托管与托管解决方案

使用 Git 与 Dataverse 集成时,存储在源代码管理系统中的解决方案来自创作者环境中的非托管解决方案。 非托管解决方案允许创作者添加、删除和更新在提交并推送更改时与源代码控制同步的对象。 托管解决方案从源代码管理构建,然后部署到下游环境,如测试或生产,但在这些环境中不能进行编辑。 托管解决方案用于确保解决方案的权威来源始终是源代码管理,并且更改只能在创作者环境中进行,然后再添加到源代码管理并部署到其他环境。

解决方案对象的文件格式

随着 Git 集成 Dataverse的引入,解决方案和解决方案对象在源代码管理中的表示方式发生了变化。 提交更改并将其推送到源代码管理时,解决方案对象将以与 Git 兼容的特定格式存储。 此格式用于以易于阅读和理解的方式表示解决方案对象,并可用于跟踪解决方案对象随时间的变化。 解决方案对象的文件格式设计为人类可读,可用于查看源代码管理中对解决方案对象的更改。 此外,为了允许将多个解决方案存储在同一存储库和文件夹中,源代码管理中的解决方案对象不再为每个解决方案重复。 相反,解决方案对象存储在单个位置,并且可以在同一存储库和文件夹中的多个解决方案之间共享。

使用 Git 进行代码优先开发

Power Platform 中的代码优先开发是使用 Power Platform CLI、Visual Studio 和 Visual Studio Code 扩展等开发工具实现的。 如果没有源代码控制集成,就很难让代码优先开发人员参与解决方案开发过程,因为组件框架控件和 Power Apps 插件等 Dataverse 对象作为从源代码构建的打包资产部署到解决方案中,并且无法 Power Apps 直接编辑(make.powerapps.com)。 如果没有将源代码管理作为低代码和代码优先对象开发过程的一部分,则很难管理对解决方案的更改并确保以受控方式跟踪和部署更改。

通过在 Dataverse 中启用 Git 集成,您可以在代码优先开发人员工作的地方见到他们,并可以为低代码和代码优先开发人员提供无缝体验。 但是,在低代码环境中管理代码优先对象时,需要牢记一些注意事项。

使用 Dataverse Git 集成的融合开发

Power Platform 为低代码和代码优先开发提供功能。 本文讨论与 Dataverse Git 集成相关的代码优先开发过程,并提供有关如何在单个环境中管理代码优先和低代码对象的指导。 组件框架控件、 Power Apps 插件和自定义工作流活动等 Dataverse 对象是可以在源代码管理中管理的代码优先对象的示例。

单个环境中的代码优先和低代码对象

代码优先对象可以通过构建过程纳入解决方案,该过程会生成可导入 Dataverse 环境的托管或非托管解决方案。 但是,代码优先对象在生成后也可以直接部署到制作者环境中的非托管解决方案中,而无需使用解决方案生成过程来部署它们。 鉴于这种灵活性,需要考虑构建过程。

如果要将代码优先对象直接部署到制作者环境中的非托管解决方案,则当这些对象提交到源代码管理时,只有其编译(生成)版本存储在源代码管理中。 例如,如果是插件,则为二进制 DLL,或者如果是 Power Apps component framework 控件,则为经过转译和优化的 JavaScript 包。 因此,您最终会在源代码管理中获得对象的两个副本,一个由生成版本表示,另一个由源代码表示。 如果源代码和生成版本不同步,将二进制文件存储在存储库中可能会导致混乱和潜在冲突。不建议采用此做法,因为源代码应该是对象的单一事实来源,并且只能存储一个副本。

建议的方法是在解决方案生成过程中生成代码优先对象,并将生成的非托管解决方案导入制作者环境。 这种方法可确保源代码和构建版本保持同步,并且源代码是对象的单一事实来源。 但是,此方法需要您有一个构建过程来生成托管解决方案或非托管解决方案,来用于导入过程和部署过程。 例如,您可以创建 Azure Pipelines 或 GitHub 工作流,这些工作流会生成供 Power Platform 管道和 Git 同步流程使用的工件。

后续步骤