A code upgrade is needed when you are upgrading your application to a new major or cumulative release. As of July 2017, it is possible to overlayer the application suite model for customization. Overlayering enables the possibility of code conflict in your customization with the latest application code. The code upgrade process basically identifies such conflicts and then, manually resolves them by merging or refactoring your code.
The code upgrade process goes through following high-level steps:
- Using the code upgrade service in LCS to upgrade your code.
- Deploying a new development environment running the new version that you are upgrading to. You will use this environment to complete code merging and refactoring of your custom code.
- Completing the code migration steps that require connecting your new development VM to VSTS, getting the upgraded code, resolving any code conflicts, preparing builds, performing tests, and creating a deployable package.
When you are upgrading from an earlier application version of Dynamics 365 for Finance and Operations to the latest version of the application and have significant customization, you may have to do a lot of code refactoring due to model split done in the application suite. For example, in RTW (Feb 2016) version, various modules such as human resources and retail were part of the application suite but in update 2 ( Nov 2016), these modules are broken into their own model. In this case, the customer upgrading from RTW to update 2 had to do a lot of refactoring in their customization code.
After the application suite is hard sealed (Fall 2018), a application update scenario especially the code upgrade will change. We would expect minor updates releasing monthly similar to the platform update as you won't have any code conflict to worry about. Probably, major updates will still be released two times in a year, however, applying the application update should become easier.
The next step, after the code upgrade, is to upgrade data which is described in the following section.