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:

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.

Is the recommendation that every release is built on a new Org in a production environment? How is that practical? wouldn't you update the main production org (after testing etc)?

Ayaz

7 Jul 2011 11:32 PM

Hi Wendell,

A release is a functional boundary/module i.e Employer Management, Candidate Management etc. one Org per module will be created in development environment. For example in release 1 org, there will be one Release 1 solution as unmanaged and base solution as managed (reference solution).

You will have one testing ORG in test environment and you will install releases/modules as managed whenever they are ready to be tested. In this way, you can easily unplug a module/update a module after fixing bugs.

You Test/production org will very much look like as first picture in this post where all solutions are stacked.

Dave

23 Sep 2011 3:20 AM

So every time you do a release you would need to copy data to a new org?