Solutions & Release Management – CRM 2011
Microsoft Dynamics CRM 2011 comes with a brand new concept of solutions. Solutions are how customizers and developers author, package, and maintain units of software that extend Microsoft Dynamics CRM 2011. In this post I will be focusing on development of enterprise CRM implementations and utilization of solutions.
In enterprise CRM implementations, many processes/iterations are running in parallel which result in many product releases in parallel. So development, testing and rollout of all releases in parallel with no interference with work in progress are massive challenges.
For example, your CRM implementation is comprised of N release as shown below and you want to utilize Microsoft Dynamics CRM 2011 solution concept to fulfil following goals:
- Development of releases in parallel
- Multiple teams working on multiple releases
- Testing of releases in parallel to development
- Release based rollout to production
- Install or uninstall releases from test or production
- Post production support (Patch/hotfix)
I am expecting that you are familiar with managed/unmanaged solution concepts. So in order to implement above scenario, you need to design your organization and solution structure for CRM 2011 accordingly as given below:
- Create a base organization and a base unmanaged solution in it
- This solution will carry generic customization i.e. account and contact entity customization
- Any generic plugins i.e. creation of counter/auto numbers on custom entities
- Configuration entities and plugins
- Add common security roles
- Create another organization for each release with one unmanaged solution per release
- Install base solution as managed in this org i.e. very similar to solution library concept.
- Add all release 1 specific components to release 1 unmanaged solution
Similarly, for all other release, use rest of all released as managed solution (reference).
Now, if something is changed in release 1 or base solution, you can use managed solution update feature. Just export new version of base/release 1 solution as managed and install it to release 2 organization by using overwrite or merge option.