原始碼控制整合讓開發團隊能透過支援的 Git 服務提供者(如 Azure DevOps 或 GitHub)在一個或多個 Microsoft Dataverse 環境中同步解決方案與解決方案物件。 解決方案體驗原生提供原始碼控制整合功能,因此公民開發者、優先程式碼的開發者與管理員都能享有版本控制、變更追蹤及跨工具與環境間無縫團隊協作。 在開發環境使用 Git 整合,不要在測試或生產環境中使用。 使用組建在 Power Platform 中建立要部署的解決方案成品與管線。
本文說明使用 Git 支援的版本控制在 Dataverse 環境與解決方案中的一些關鍵概念與好處。 如需了解 Azure DevOps 中的 Git 資訊,請參閱 Azure DevOps Git repository。 關於 GitHub 倉庫的資訊,請參見關於倉庫。
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 中快速且輕鬆地從原始碼控制重新建置開發環境。 這可讓您建立用於開發和測試目的的短期環境。 短期環境可讓您釋放儲存空間、試驗新功能、測試和迭代您的解決方案,而無需依賴永久環境。
- Fusion 開發團隊:Fusion 開發團隊是由開發人員和製作者組成的團隊,他們共同建立解決方案。 透過使用 Dataverse 中的 Git 整合,這些使用者可以在不同的環境中獨立進行開發,並透過與共通原始檔控制存放庫同步來與其他人協作。 原始檔控制整合可讓您利用開發人員和製作者的技能和專業知識,來建立滿足組織需求的高品質解決方案。
- 保護:使用原始檔控制作為解決方案的真實來源,讓您可以快速輕鬆地從解決方案中的非預期變更中恢復。 透過將解決方案儲存在原始檔控制中,您可以還原到先前的狀態或版本。
重要概念
非受控解決方案與受控解決方案
當您使用 Git 與 Dataverse 整合時,儲存在原始檔控制中的解決方案來自製作者環境中的非受控解決方案。 非託管解決方案允許製作者添加、刪除和更新在提交和推送更改時與原始程式碼管理同步的物件。 受管理解決方案是從原始碼控制建置而成,並部署到下游環境(例如測試或生產環境),且無法在這些環境中編輯。 受控解決方案可用來確保解決方案的唯一可信來源始終是原始碼控制,且所有變更都只能先在製作者環境中進行,之後再加入原始碼控制並部署到其他環境。
解決方案物件的檔案格式
隨著 Git 整合 Dataverse的引入,解決方案和解決方案物件在原始程式碼管理中的表示方式發生了變化。 提交更改並將其推送到原始程式碼管理時,解決方案物件將以與 Git 相容的特定格式存儲。 此格式用於以易於閱讀和理解的方式表示解決方案物件,並可用於跟蹤解決方案物件隨時間的變化。 解決方案物件的檔案格式設計為人類可讀,可用於查看原始碼管理中對解決方案物件的更改。 此外,為了允許將多個解決方案存儲在同一存儲庫和資料夾中,原始程式碼管理中的解決方案物件不再為每個解決方案重複。 相反,解決方案物件存儲在單個位置,並且可以在同一存儲庫和資料夾中的多個解決方案之間共用。
使用 Git 進行程式碼優先開發
Power Platform 中的程式碼優先開發使用了 Power Platform CLI、Visual Studio 和 Visual Studio Code 擴充功能等開發工具。 如果沒有原始碼控制整合,就很難讓以程式碼為主的開發人員參與解決方案的開發流程,因為像是 Power Apps Component Framework 控制項和 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 同步程序建立可供取用的成品。