Solution management

Completed

A solution is a mechanism for implementing ALM in Dataverse and it applies to Intelligent Order Management and Microsoft Power Platform.

Key concepts of solution management are:

  • They include metadata and certain entities with configuration data. Solutions don't contain business data.​

  • Packaged as a unit to be exported and imported to other environments or deconstructed and checked into source control as source code for assets. You can also use solutions to apply changes to existing solutions.​

  • Managed solutions that you use to deploy to any environment that isn't a development environment for that solution. They include tests, user acceptance testing (UAT), system integration testing (SIT), and production environments. You can service managed solutions (upgrade, patch, and delete) independently from other managed solutions in an environment.

Additionally, you can export solutions as a managed solution and then import them into different environments. You can move your development artifacts after they've been completed as a part of a managed solution from your Development sandbox to your Test sandbox.

Intelligent Order Management has different layers of solutions:

  • Runtime - A layer that end users can view.

  • Unmanaged - A layer that contains active customizations that haven't been applied to the Runtime layer.

  • Managed - This layer can have many managed solutions, and you can have system solutions that come out of the box.

When you develop a solution and it's ready to be deployed, you can find the managed solution under the Managed layer.

Source control

Source control, also known as version control, is a system that maintains and more securely stores software development assets and then tracks changes to those assets.​

Two main paths that you can use when working with solutions in a source control system are:​

  • Export the unmanaged solution and then place it as unpacked in the source control system. ​Then, the build process imports the packed solution as unmanaged into a temporary build environment that's a sandbox environment. ​Afterward, you export the solution as managed and store it as a build artifact in your source control system.​

  • Export the solution as unmanaged, export the solution as managed, and then place both in the source control system. Though this method doesn't require a build environment, it does require that you maintain two copies of all components:

    • One copy of all unmanaged components from the unmanaged solution.

    • And one copy of all managed components from the managed solution.