Home > MSCRM General > Solutions & Release Management – CRM 2011

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:

  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
    1. This solution will carry generic customization i.e. account and contact entity customization
    2. Any generic plugins i.e. creation of counter/auto numbers on custom entities
    3. Configuration entities and plugins
    4. Add common security roles
    5. Add core JavaScript libraries

  1. Create another organization for each release with one unmanaged solution per release
    1. Install base solution as managed in this org i.e. very similar to solution library concept.
    2. 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.

  1. July 1, 2011 at 5:16 am | #1

    Keep in mind after release 12 in a monthly release cycle you would have 12 orgs to maintain the various levels. To me that creates too much compexity to manage effectivley.

    Often times I like to look for more modular breakdown where you can still acheive some level of release agility without complexity that too many layers create.

    Just my 2 cents..it’s a great discussion to have as I think we are all learning what works best.

    Dave

  2. July 1, 2011 at 7:20 am | #2

    I have to chime in with Dave here and say that having a division either by technical or functional needs is the better way to go in the long run. Short term it might actually work better if you create solutions for releases. I found that at some point it wasn’t necessary anymore to have all those organizations up at all times. It’s easy (on-premise :) ) to create new organizations and remove them as you desire. One of the things I ran in to though, when working with a VPC for example, is that a single *empty* organization database is 420 MB

  3. July 1, 2011 at 3:34 pm | #3

    Hi David/Alex,
    Release is basically a functional boundary or a module that can be packaged together and not a periodic release.

    Administration of organizations and increasing number of solutions are overheads but flexibility of release management is massive.

    We can also get rid of all those orgs by incrementally adding solutions to base solution when a release/module is completed. For example, if we have Base Solution, Release 1 and Release 2. After development/test of Release 1, just export release 1 solution as unmanaged and import to to Base solution. In this way Base solution will grow after each iteration and we can also get rid of Release 1 Org and solution. Then for release two use managed base solution as reference solution.

  4. Ranjeet
    July 18, 2011 at 7:11 am | #4

    Hi Ayaz,

    We have a scenario where we are using base Managed Solution & on top of it Unmanaged Solution.

    We have Managed Solution & on top of it when we use unmanaged solution the customizations from Managed solution gets overridden.

    I believe this is going to be a common issue when we do development on multiple solutions. Is there any way where I can Compare & Merge the customizations.

    Regards,

    Ranjeet

  5. July 18, 2011 at 11:25 pm | #5

    Hi Ranjeet,
    Managed solutions provide layers on one another depending on their installation order. But priority will be given to any unmanaged customization/solution.

    So if you have a managed solution installed and you install an unmanaged solution on top of it your common components will get overwritten. In order to fix this issues, add that entity/component to base managed solution and then try to update managed solution using merge option.

    Moreover, Managed solution provides version control, merging and overwrite features which can be utilized to provide hotfix, patched and post production support.

    Hope this helps,

  6. Ranjeet
    July 25, 2011 at 6:50 am | #6

    Hi Ayaz,

    Thanks for your quick response….

    I will check your solution & update you if any issues I face.

    Regards,
    Ranjeet

  7. Prakash.G
    October 24, 2011 at 12:54 pm | #7

    Hi Ayaz,

    I would like to find the solution for Spelling and Grammer check in MS-CRM 2011 could you please help me out.

    Thanks
    Prakash.G

  8. Todd
    November 15, 2011 at 1:40 am | #8

    Hi Ayaz,
    Just wondering your thoughts on having separate solutions to manage your CRM deployment. i.e. 1 main solution to contain the core of CRM (Forms, Entities, web resources, etc) along with two supporting solutions that would be Reports and Security Roles. The contents of each solutions would be maintained in your Development Org. with versions of each solution maintained with TFS.

    Assuming that the majority of changes would stem from Reports and Permissions having them separate from the main solution would provide flexibility in deploying just those vs. the whole solution for CRM.

    Cheers.
    .

  9. Christian Bader
    November 25, 2011 at 8:59 am | #9

    Ayaz Ahmad [MVP - MSCRM] :
    Hi David/Alex,
    Release is basically a functional boundary or a module that can be packaged together and not a periodic release.
    Administration of organizations and increasing number of solutions are overheads but flexibility of release management is massive.
    We can also get rid of all those orgs by incrementally adding solutions to base solution when a release/module is completed. For example, if we have Base Solution, Release 1 and Release 2. After development/test of Release 1, just export release 1 solution as unmanaged and import to to Base solution. In this way Base solution will grow after each iteration and we can also get rid of Release 1 Org and solution. Then for release two use managed base solution as reference solution.

    But how are we doing this in production. Changing a managed solution to an unmanaged solution without loosing all the data?

  10. December 18, 2011 at 12:58 pm | #10

    People often complain that they are managing their sales from one crm program and their time management from a different application. Now Clarizen and Salesforce have a data integration system http://www.clarizen.com/ProjectSoftware/Integrations/Salesforce.aspx that allows your online crm program to “talk” to your online project management software. And it integrates with Microsoft too.

  11. January 5, 2012 at 8:18 am | #11

    According to Microsoft when you import an unmanaged solution over the top of a managed solution from the same publisher it will create an invalid layering of solutions. We have in fact seen this and are now unable to update our managed solution because of this invalid solution layering. We are on Rollup 5 with the latest updates as well.

  12. January 5, 2012 at 10:25 pm | #12

    Hi Jason,
    How can you install same solution as managed and unmanaged from same publisher! It is not permissible.

  1. September 24, 2011 at 7:02 pm | #1
  2. May 16, 2012 at 7:50 pm | #2
  3. May 16, 2012 at 7:51 pm | #3

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 33 other followers