Skip to main content

Notifications

Microsoft Dynamics CRM (Archived)

Best practice for deploying customizations to production

Posted on by 70

Hello,

I was wondering, what is the suggested way of deploying new customizations from development environments to the production?

Suppose that we have 3 environments: development, test and production. How would you create the solutions that has your custom entities?

I was thinking about exporting and importing them as unmanaged between test and development, then create a new solution as managed when you are ready for production, and import the managed version in prod.

But Microsoft documentation says that: "Only export a solution as a managed solution when you intend to distribute it." However, if we import it as unmanaged at production, it would overwrite and it wouldn't be possible to rollback unless we backed up the previous state as another solution, correct?

So my general question is, how do you go about this customization deployment? what is the suggested habits?

Thanks.

*This post is locked for comments

  • gdas Profile Picture
    gdas 50,085 on at
    RE: Best practice for deploying customizations to production

    I will strongly recommend to  work on only development environment and avoid customization in UAT directly  (for unmanaged  solution) as much as possible . Don't do any extra customization in UAT which is not done in DEV . So always  DEV first and then UAT  otherwise you will loose your customization.

  • Aric Levin Profile Picture
    Aric Levin 30,188 on at
    RE: Best practice for deploying customizations to production

    Hi okank,

    One more note to add to Goutam's point which really depends on your needs.

    If possible, my recommendation is if possible to have 4 environments.

    We have dev and test as unmanaged solutions, which are used for development and Unit Testing

    We then have a staging and production which are used for uat and live deployment (as managed solutions).

    QA can either work on test or staging (based on whether or not you have both qa and uat).

    There can be issues that arise with managed solutions which might cause delays, which is why having the test environment as unmanaged can be beneficial.

    Hope this helps.

  • Verified answer
    gdas Profile Picture
    gdas 50,085 on at
    RE: Best practice for deploying customizations to production

    Hi ,

    I absolutely agree with David but for my practical experience I really faced big problem using managed solution in UAT  environment.

    I know there is lot of advantage to use the managed solution but when working with  more than 10 developer and different timezone its very difficult to manage the managed solution.

    I personally faced lot of issue with the managed solution , In our UAT sometimes we faced blocking  issue and customer need to fix this urgently , they want to quick fix the issue . Now let say  we can fix the issue by using simple update of a java script file or we can hide an field from  the form. Now let say  team are working on different timezone so to deploy complete managed solution we need  each developer approval for any deployment to move the managed solution as the team may be some ongoing development.

    So think on the situation you can easily  deploy single file and fix the issue but you can not do it due to managed solution and your customer will not be happy to see  this kind of blocking issue in UAT.

    if sometimes you are force to change on top of managed solution in UAT , so there is no meaning of use the managed solution in UAT environment.

    Let say to maintain security role , sometimes you want to  change the privileges  in UAT directly  and those role are associated with form , what you will do by making managed solution in UAT .

    I really not recommend deploy an managed solution in UAT if you have multiple team member and different timezone and project size is big  its hard to maintain.

    I would suggest to deploy Managed solution when your complete version is ready with set of functionality , you should deploy managed solution in pre-production or production environment .

  • Verified answer
    Aric Levin Profile Picture
    Aric Levin 30,188 on at
    RE: Best practice for deploying customizations to production

    I am with David on this.

    There are benefits on both, but when deploying to test and production I usually go with managed solutions.

    You need to have processes in place to decide how to handle certain scenarios, and when to use solutions and patches.

    Hope this helps.

  • Verified answer
    David Jennaway Profile Picture
    David Jennaway 14,063 on at
    RE: Best practice for deploying customizations to production

    The main choice is whether to go for managed or unmanaged. Managed has several benefits, whether or not you're an ISV:

    • Facility to uninstall managed solutions
    • Use of patches 
    • The ability to identify from which solution any component originated

    However, to use managed solution effectively needs a certain amount of discipline around the deployment process.

    If going for managed, use the following approach, which ensures that test behaves the same as production:

    • Develop as unmanaged in development
    • Deploy to test from development as managed
    • Deploy to production from development as managed

    For reference, in the past (before CRM 2015/2016), there were some bugs in the managed solution dependencies that could prevent you uninstalling a managed solution. However, these have now been resolved, and you should have no issues with a well planned, and well implemented, use of managed solutions

  • Verified answer
    Michel Gueli Profile Picture
    Michel Gueli 982 on at
    RE: Best practice for deploying customizations to production

    If your not an ISV and your solution is not an add-on that you sell, then always choose for a unmanaged solution. When you have issues it's the most flexible solution.

    Customer with small budget - Export, Import solution

    Big project, big budget --> Continuous integration, Continuous Delivery

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

December Spotlight Star - Muhammad Affan

Congratulations to a top community star!

Top 10 leaders for November!

Congratulations to our November super stars!

Community AMA December 12th

Join us as we continue to demystify the Dynamics 365 Contact Center

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 291,240 Super User 2024 Season 2

#2
Martin Dráb Profile Picture

Martin Dráb 230,149 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,156

Leaderboard

Featured topics

Product updates

Dynamics 365 release plans