I’ve been having questions recently around managed and unmanaged Dynamics solutions. I thought it would be a good idea to write a quick blog describing the differences between them. Knowing the difference between these solutions can save you time around deployment and roll back if any issues were to occur.
So, what is a solution? Essentially a solution is a series of changes made to Dynamics which would be anything from a completely new entity to a workflow tweak. Any changes made to a solution will be visible to the end user once imported and the customisations published. Below is a list of solution types along with a brief description.
The default solution is made up of the default entities when you install Dynamics. There are no customisations to this unless stated on install. Any changes made to the solution cannot be rolled back unless you have a backup or have the time to go through and undo all changes. All instances of Dynamics CRM have a default solution where changes can be made.
Often referred to the starting state of a solution, here is where all customisations are made prior to deployment. Changes made to the unmanaged solution directly impact the default solution by making changes to the unmanaged layer. When removing the unmanaged solution every component is left with the default solution and therefore cannot be rolled back. There is an excellent quote which says, “Unmanaged solutions are like a box of Lego, there are many pieces inside the box, once you have taken the pieces out the box itself can be thrown away without taking the components”.
· Customise a solution
· Test any changes
· Cannot be rolled back
· Changes are permanent
The managed solution is an export from the unmanaged solution and is read only once deployed. These are installed alongside the default solution to ensure that there are no direct changes. Multiple managed solutions can be applied to a Dynamics instance and removed at any point. As this solution is read-only it prevents users from making any changes in a live environment. Whenever I deploy a solution I will always work from an unmanaged solution in both a sandbox and dev environment, moving to a managed solution when importing to production. The sister comment to the above is, “A managed solution is like a tea bag, when you throw away the bag you throw away everything inside”.
· Solutions are managed
· Removing the solution removes the changes and any stored data
You’ll notice above I’ve mentioned some benefits and drawbacks. The idea is when you make changes to Dynamics you follow a strict change process and triple check the changes before you apply them. All the drawbacks can be mitigated by making changes to Dynamics and ensuring managed solutions are used for any production changes.