PL400 : Implement source control for projects including solutions and code assets (Implement application lifecycle management (ALM))

In the modern development world, version control systems are essential tools. Every software companies follow best practices and tools during the development process. Source control tools such as Git, GitHub and Azure DevOps and others are designed with the aim of improving the communication and software quality. Version control, also known as source control, is the practice of tracking and managing changes to software code. Version control systems are software tools that help software teams manage changes to source code over time.



A version control system serves the following purpose:
  • A version control enables multiple people to work together as a project.
  • Version control integrates the work done by different team members together.
  • Version control provides access to the historical version of our project.
In Power Platform and Dynamics 365 CE, solutions play an important role in shipping changes to developers across different environments. Deployment and source control are not the same in Power Platform as other software development processes. As such, if two different developers work in the same component, it is difficult to merge the entire component easily or with the help of any tool. Even Microsoft suggests a different approach to version control in Power Platform and Dynamics 365 CE.

As Microsoft's doc:

Microsoft Power Platform uses the solution feature of Microsoft Dataverse to track and manage apps, flows, tables, and even developer code components like JavaScript and plug-ins. Solutions are containers that can be used the transport project assets from one environment to another.
Solutions are a core part of Microsoft Power Platform application lifecycle management (ALM) strategy
As the best practice, Unmanaged Solution uses for development. A tool named SolutionPackager can be used to prepare solutions to be checked in.

SolutionPackager tool:

Solutions exported from a Dataverse environment are simply a compressed zip file with the metadata included. As a single binary file, it is not very effective or useful when placed into a source control repository.  The SolutionPackager tool is distributed as part of the NuGet package  Microsoft.CrmSdk.CoreTools. It can unpack a Dataverse solution into a series of XML files and other files so that these files can be easily managed by a source control system. SolutionPackager can also repack the solution zip file using the extracted components.

The SolutionPackager tool is an executable that you can use to conduct the following actions:
  1. Extract: Extract solution .zip file to a folder
  2. Pack: Pack a folder into a .zip file
Version Control and Build Management:
  1. Solution are unpacked using the solution package and version control in a repository such Team foundation or GitHub.
  2. Solutions are built through an automated process that invokes the solution packages to repack the solution into solution.zip file.
  3. Packages are built through an automated process that combines the required solutions and configuration deployer.zip file.
Conclusion:

As per the documentation the unmanaged solution is used in the development environment while we make changes to our application. We can export our unmanaged solutions and unpack them, so that we will have a copy of our unmanaged solution source in our repository.

Comments

Popular posts from this blog

Exploring the Differences: Managed vs. Unmanaged Solutions in Dynamics CRM/Dataverse

PCF vs. Web Resources: Choosing the Right Extensibility Tool for Dataverse

Effective Strategies for Debugging Plugins in Dynamics CRM