PL400 : create solutions and manage solution components (Implement application lifecycle management (ALM))

The solution plays an important role in transporting the customization between different environments. In other words, it is a critical factor in the application lifecycle. Undoubtedly, the environmental strategy is the first concern and  at least, project should have a development, testing and production environment. The solution is the mechanism for implementing ALM in the power platform.

As the Microsoft Doc definition :

Solutions are how customizers and developers author, package, and maintain units of software that extend Microsoft Dataverse.


Solution Component:

The individual item that can be added to the solution is called the component. In other words, the component represents something that we can potentially customize. Below screen shot can give a clear comprehensive information about the components.



Solution Lifecycle:

Following actions of solution helps to support application lifecycle process:


Create : Create Author and export unmanaged solutions.

Update: Create updates to a managed solution that are deployed to the parent managed solution. You can't delete components with an update.

Upgrade: Upgrades involve rolling up (merging) all patches to the solution into a new version of the solution. Solution upgrades will delete components that existed but are no longer included in the upgraded version.

Patch: A patch contains only the changes for a parent managed solution, such as adding or editing components and assets. 

Type of Solutions :

We will use unmanaged solutions in development environments when we are making configuration changes to your application. Solutions are exported as unmanaged and then tested in your source control system. Unmanaged solutions should be considered your source.


Use managed solutions to deploy to any environment that is not a development environment, including testing, user acceptance testing (UAT), system integration testing (SIT), and production environments. Managed solutions can be serviced (upgraded, patched and deleted) independently of other managed solutions. As an ALM best practice, managed solutions should be generated by a build server and considered a build artifact.


Create Solution:

Display Name : This is the user friendly name used for the display and it is changeable.

Name : This is unique and create automatically.

Publisher:

  • Every solution requires a publisher.
  • A publisher requires the following :
    • A customization prefix
    • A unique name
    • A friendly name

  • For an unmanaged solution, the solution publisher provides a common customization prefix and option value prefix.
  • Many solutions can be associated with a single solution publisher.
There are two default solutions in the unmanaged layer:

Common Data Service Default Solution:

  • This solution is available for makers to use by defaults for their customization in an environment.
  • Common data service, which is associated with the Dataverse default publisher.
  • The default prefix will be randomly assigned for this publisher.

Default Solution:
  • This is a specials solution what contains all component in  the system.
  • The default solution is useful for discovering all the components and configuration in system.

Configuration Page:

Choose HTML Web Resource as the configuration page for the solution. The configuration page is typically used by ISVs that distribute solutions. When this is set, a new configuration node appears below the information node to display this web resource. Developers will use this page to include instructions or controls to allow you to set configuration data or launch their solution.

Version:

Number for the version of your solution. This is only important if we export your solution. The version number will be included in the file name when we export the solution.

Description : Detail of Solution.

Installed On : Date of creation of solution.

Package Type: It is the solution type that default value is  unmanaged type solution and readable.


Important points:

There are a few reasons why we should not create app and make customization in either of the default solution:

  • The default solution contains all components and customizations from all solutions in the environment.
  • By default, all enabled users in the default environment can create apps and customize components in the common data service default solutions.
  • when we use either default solution to create components, we will also use the default publisher assigned to the solution.
  • The default solution can not be exported, therefore we can not distribute the default solution to another environment.
  • Rules that you should follow with solutions:
    • Create a solution publisher and use it for all solutions.
    • don't use the default publisher, the default solution, or the Dataverse default solution.
    • Keep the solution structure as simple as possible.
    • Avoid selecting the include all components check box unless you are adding an unmanaged table.
    • Include table metadata only when you are changing table prosperities.
    • Add the subcomponents of a table only when you are changing them.

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