web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Microsoft Dynamics CRM (Archived)

Best practice for deploying customizations to production

(0) ShareShare
ReportReport
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

I have the same question (0)
  • Verified answer
    Michel Gueli Profile Picture
    982 on at

    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

  • Verified answer
    David Jennaway Profile Picture
    14,065 on at

    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
    Aric Levin - MVP Profile Picture
    30,190 Moderator on at

    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
    gdas Profile Picture
    50,091 Moderator on at

    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 .

  • Aric Levin - MVP Profile Picture
    30,190 Moderator on at

    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.

  • gdas Profile Picture
    50,091 Moderator on at

    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.

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

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Neeraj Kumar – Community Spotlight

We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…

Leaderboard > 🔒一 Microsoft Dynamics CRM (Archived)

#1
SA-08121319-0 Profile Picture

SA-08121319-0 4

#1
Calum MacFarlane Profile Picture

Calum MacFarlane 4

#3
Alex Fun Wei Jie Profile Picture

Alex Fun Wei Jie 2

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans