This is tells about Solution in Microsoft Dynamic CRM 2011 and how it works. There are three types solution as system (default) solution, managed solution, unmanaged solution.
In Microsoft Dynamic CRM organization there is a solution that contains solution component that can be customized. Together all this solution component is called as default solution. This solution can be customized by selecting Customize the System same as unmanaged solution. Default solution can be exported as unmanaged but it cannot be export as managed solution.
In Dynamic CRM all solutions start as unmanaged solution. This you can say is initial stage or solution where do the following :
· Can add, delete, update, and remove the solution component, managed properties, configuration and the update the publisher of the solution. You can update the version of the solution.
- · Export and import unmanaged solution.
· Export as unmanaged version as managed solution.
When all changes has been done in suppose in dev system(organization) then you can export the solution as unmanaged and managed solution to another system or production system (organization). Best practices is that you should export unmanaged solution as managed version from dev to production system because managed solution is not editable and user can made the change final solution in production. When you do import an unmanaged solution, the definition of any components of solution that already are in the organization will be overwritten. You cannot revert this action.
When you are done with your unmanaged solution i.e. it is completely done, you can then export solution as managed to production. In managed solution you get restricted to do things like
- ·Cannot add or delete any solution component.
- ·They cannot be exported.
- ·If deleting unmanaged solution, this will uninstall all solution components within it.
After you have generated a managed solution, you cannot install it in the same Dynamics CRM organization that contains the unmanaged solution used to create it. It must be installed in different organization.
After you install a managed solution you may be able to customize the solution components if the builder of the managed solution has configured the managed solution to do so. You must access the customizable solution components using “Customize the System” instead of through the managed solution itself.
To check solution component is customizable and what customization actions are enabled is controlled by using Managed Properties of entity.
** In unmanaged solution Managed properties must be set and managed property settings are only applied after the managed solution has been packaged and installed.
Once you have final solution as Managed Solution, it can be installed into another organization and also be deployed in multiple deployment types like online, partner hosted, and on-premise.
How solution works to show up in application
As you can see from the figure below show how the unmanaged solution & unmanaged solution interact with system solution to show up in application behaviour. The system (default) solution is overridden by managed solution & which is further overridden by unmanaged solution. Thus whatever is the final result which is seen by the user in application.
For example if in Dynamic CRM organization (contains system (default) solution) we first add managed solution having custom entity with field named “Client”, then Save & publish. This will overwrite field named as “Client” in default solution. Now if we again add another managed solution having field named as “Individual”, this will overwrite the previous solution customization & field name will change as “Individual” and the final field name will be “Individual” visible to user. This means solution installed last with customization done on same solution component will override the previous customization.