Sunday, June 26, 2011

Solutions.

MS CRM 2011 introduced a new concept called Solutions. For those of you who used MS CRM 4.0, solutions are the new way to transfer customizations (and other staff) between deployments. In version 4.0, we could only transfer entities, fields, workflows, security roles, isv.config and site map definitions. The 2011 version includes all of these capabilities and some more powerful new capabilities. The exported solution file is actually a zip file containing several components:
1)      The customizations file: this file is very similar to the customizations file of version 4.0, only that, now, we do not have isv.config. We now have Ribbon!
2)      Plugins: the zip file will also contain the plugin dll files which were registered to the deployment you are exporting from. The package also contains all the steps that were registered to these plugins so you don’t need to re-resister them on the target deployment.
3)      Reports: all custom or native reports you have included in the solution will be exported
4)      Security: field level security or other security settings are also included
5)      Dashboards…
6)      Web Resources: images, js files, html files or any other resource included in the solution
So, for a developer using the SDK guidelines to develop a supported solution built on top of MS CRM v2011, it is now extremely easy to package and distribute the customizations and custom developments made to the platform.
There is one more important thing to realize with solutions – managed vs. unmanaged solution files. It is easy to understand what an unmanaged solution is. It is very similar to the concept we had in v4.0, which is, all changes are permanent.  If you import an unmanaged solution to a new deployment, deleting the solution WILL NOT delete the components it contained from your deployment. The only way to completely remove the components will be to delete all of them manually. The changes made by the unmanaged solution are deeply burned into the "Default Solution".
A managed solution is a different story. You define a solution to be managed when you export it. Once a solution has been set as managed, it is considered as a "closed box" and something which is very similar to the way we treat software installation. When you install a software product, you do not have access to the code and cannot change the screens. If you don’t want to use the product, you simply uninstall it. Managed solution is the same thing. You treat it as a sealed product ready for installation on top of the MS CRM platform. In any case you will want to remove it, deleting the solution will remove ALL of the components that were inside the solution and ALL the data they hold.

No comments:

Post a Comment