Microsoft Dynamics 365 Blog

Today’s guest blogger is CRM MVP Ayaz Ahmad who is a CRM Architect and Senior Consultant for CSG Services Pty Ltd, the largest Australian owned and leading publicly listed ICT provider in the country. He is also the owner of the MSCRM User Group in Pakistan.

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 fulfill following goals:

1. Development of releases in parallel

2. Multiple teams working on multiple releases

3. Testing of releases in parallel to development

4. Release based rollout to production

5. Install or uninstall releases from test or production

6. 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:

1. Create a base organization and a base unmanaged solution in it

a. This solution will carry generic customization i.e. account and contact entity customization

b. Any generic plugins i.e. creation of counter/auto numbers on custom entities

c. Configuration entities and plugins

d. Add common security roles

e. Add core JavaScript libraries


2. Create another organization for each release with one unmanaged solution per release

a. Install base solution as managed in this org i.e. very similar to solution library concept.

b. 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.


CRM MVP Ayaz Ahmad

We're always looking for feedback and would like to hear from you. Please head to the Dynamics 365 Community to start a discussion, ask questions, and tell us what you think!