locked
CRM 2011: Customization First or New Solution First? RRS feed

  • Question

  • I've just started working with CRM 2011 a few weeks ago and I have a question about building solutions.  The company I am with has been using CRM for the past year or two and some of the project managers (non-developers) have made a number of customizations and they purchased a customization from a thrid party. So now I come along and I am looking at CRM customizations, adding JavaScript, adding plugins, etc., etc. and have noticed that their approach has been...

    1. Modify things like entities, ribbons, sitemap, etc. directly. 
    2. Keep a list of changes as notes. 
    3. They leave the "new_" prefix and add something like "_abc_" manually in the field names.  So you end up with fileds named new_abc_firstname.
    4. When they are happy with the customizations, they then create a solution and select the default publisher and then add all of the items that have been changed.
    5. Then they deploy this as a unmanaged solution.

    However, after working through LOTS of training videos and documents, I am finding that most suggest NOT taking this approach.  They suggested..

    1. Create a new solution
    2. Create a new publisher and modify the prefix from "new" to something related to your company.
    3. Add items to your solution that you wish to modify.  Modify those from without the solution, not directly on the default solution.

    So my question is... what do I do at this point?  They have a lot of customizations against the default solution.  But I want to do this correctly and build solutions, new publishers, etc.  Am I going to run into any issues here?

    Also, we are going to eventually have to migrate from CRM 2011 to CRM 2013.  We run CRM on-premise.  So am I going to run into any issues with all of these customizations, the 3rd party customization solution we purchased, plus all of my new solutions? 

    Are there any negatives/positives to making customizations directly against the default solution versus making the changes in a new solution with a new publisher?  I would like to provide them with a list of negatives in regards to making customization changes using the default soluiton and default publisher, if in fact there are negatives.  But I would also like to explain why I we should continue doing this going foward.     

    Any thoughts, suggestions, or comments are much appreciated.

    Best regards,

       

    Jon Gregory Rothlander

    Tuesday, February 4, 2014 6:22 PM

Answers

  • The main reason for starting with a solution is to define the schema prefix. But, given that there's no way to change this on existing entities and attributes, then it's a bit late for this to be useful for the existing customisations.

    Regarding deployment of customisations, any that are made in the default solution can be added to a different solution for deployment. You may have to spend a bit of time ensuring the dependencies work, which is less of an issue if you'd started with a solution. The earlier you resolve these dependencies now by adding the relevant cutomisations to solution(s), the less work it will be


    Microsoft CRM MVP - http://mscrmuk.blogspot.com/ http://www.excitation.co.uk

    Wednesday, February 5, 2014 7:11 PM
    Moderator
  • I believe the best practice is to create the solution first to contains the customisations to be packaged.

    To answer your questions:

    what do I do at this point?

    In your case, you should be able to add the existing customisations to the solutions, make sure the dependencies are added properly to the new solution. As David mentioned above, you could not change the prefixes on existing customisations. You could add new publishers and use that to you new solution for the new customisations onward. 

    Am I going to run into any issues with all of these customizations, the 3rd party customization solution we purchased, plus all of my new solutions? 

    with the current customisations, if it is created in Microsoft supported way, it should not be a problem. You might want to check the custom codes to be validated:

    http://blogs.msdn.com/b/crm/archive/2012/06/21/microsoft-dynamics-crm-2011-custom-code-validation-tool-released.aspx (CRM 2011)

    http://www.microsoft.com/en-nz/download/details.aspx?id=30151 (CRM 2013)

    For the 3rd party solutions, again it is depend whether they made the solution in the supported way or not.

    To confirm whether the upgrade process run smoothly, I'd suggest to run test VMs with snapshot of current deployment. Test the upgrade to 2013, do the testing on each components.

    Are there any negatives/positives to making customizations directly against the default solution versus making the changes in a new solution with a new publisher?

    Direct modification on default solution was the technique from CRM 4, which is not the best practice in CRM 2011 onward. It makes metadata migration harder. It also add the difficulties to identify who made the solution and changes (versioning in the solution). It is harder to maintain the deployment from Dev/Test environment to Production.

    I hope it helps.

    • Marked as answer by jonrothlander Friday, February 28, 2014 3:13 PM
    Thursday, February 6, 2014 11:04 PM

All replies

  • The main reason for starting with a solution is to define the schema prefix. But, given that there's no way to change this on existing entities and attributes, then it's a bit late for this to be useful for the existing customisations.

    Regarding deployment of customisations, any that are made in the default solution can be added to a different solution for deployment. You may have to spend a bit of time ensuring the dependencies work, which is less of an issue if you'd started with a solution. The earlier you resolve these dependencies now by adding the relevant cutomisations to solution(s), the less work it will be


    Microsoft CRM MVP - http://mscrmuk.blogspot.com/ http://www.excitation.co.uk

    Wednesday, February 5, 2014 7:11 PM
    Moderator
  • I believe the best practice is to create the solution first to contains the customisations to be packaged.

    To answer your questions:

    what do I do at this point?

    In your case, you should be able to add the existing customisations to the solutions, make sure the dependencies are added properly to the new solution. As David mentioned above, you could not change the prefixes on existing customisations. You could add new publishers and use that to you new solution for the new customisations onward. 

    Am I going to run into any issues with all of these customizations, the 3rd party customization solution we purchased, plus all of my new solutions? 

    with the current customisations, if it is created in Microsoft supported way, it should not be a problem. You might want to check the custom codes to be validated:

    http://blogs.msdn.com/b/crm/archive/2012/06/21/microsoft-dynamics-crm-2011-custom-code-validation-tool-released.aspx (CRM 2011)

    http://www.microsoft.com/en-nz/download/details.aspx?id=30151 (CRM 2013)

    For the 3rd party solutions, again it is depend whether they made the solution in the supported way or not.

    To confirm whether the upgrade process run smoothly, I'd suggest to run test VMs with snapshot of current deployment. Test the upgrade to 2013, do the testing on each components.

    Are there any negatives/positives to making customizations directly against the default solution versus making the changes in a new solution with a new publisher?

    Direct modification on default solution was the technique from CRM 4, which is not the best practice in CRM 2011 onward. It makes metadata migration harder. It also add the difficulties to identify who made the solution and changes (versioning in the solution). It is harder to maintain the deployment from Dev/Test environment to Production.

    I hope it helps.

    • Marked as answer by jonrothlander Friday, February 28, 2014 3:13 PM
    Thursday, February 6, 2014 11:04 PM