Monday, November 18, 2013

Notes on Upgrading from Microsoft Dynamics CRM 2011 to Dynamics CRM 2013


The following are notes on upgrading from Dynamics CRM 2011 to Dynamics CRM 2013 from InfoStrat’s Dynamics CRM lead Dmitri Riz.

In many ways, the upgrade to Dynamics CRM 2013 is less painful than the transition from version 3.0 to 4.0 or from 4.0 to Dynamics CRM 2011.  In general, if your site has been already upgraded to CRM 2011 Rollup Update 12 or later, you shouldn’t experience significant issues with updating to CRM 2013.

The upgrade process falls into following large categories:

     1.       Find incompatible/legacy code and update it
     2.       Upgrade to 2013 (if using on-premise)
     3.       Review and refactor the user interface (UI) to adopt the new form and navigation paradigm.

Dynamics CRM 2013 removes all support from legacy 4.0 features. All references to objects like crmForm or 2007 web service endpoints such as ‘…/mscrmservices/2007/crmservice.asmx’; ISV folder, CRM 4.0 plugins are all unsupported and should be replaced with updated objects.


Note: The Dynamics CRM 2013 Custom Code Validation Tool will likely generate many false positives, for example, if you are using jQuery or similar libraries.

On-premise upgrades can be done by installing CRM 2013 and following these steps:

-          Importing the Dynamics CRM 2011 solution or backing up the Dynamics CRM 2011 database, restoring it in a new location and importing new organization into a fresh CRM 2013 instance using deployment manager.

or
-          Dynamics CRM 2013 supports in-place upgrade which can convert existing Dynamics CRM 2011 server into 2013. This is not recommended for production environments, however.   If you choose to use the in-place upgrade, you must ensure that RU 14 or 15 are installed on your Dynamics CRM 2011 server first.

then
-          Testing the new organization to validate that all custom features and extensions are functioning properly


The user interface and navigation in Dynamics CRM 2013 have changed significantly.

The most visible changes are the dramatically reduced number of popups (new data and entity windows tend to load into the same page) and complete redesign of navigation options.

Your upgraded Dynamics CRM 2011 solution will benefit from a thorough review of both navigation options and form layout. Left-nav bars of Dynamics CRM 2011 are replaced by a collapsible top-of-the-page ribbon control in 2013. While it conserves a lot of usable space on the form, it may lead to negative effects on converted solutions, especially when Dynamics CRM 2011 solution has many deep hierarchies and customized navigation bars. In Dynamics CRM 2013, this navigation gets flattened, which leads to essentially a one-level layout with a potentially very long breadcrumb-style nav elements at the top of the page, which can be hard to visualize.

Spend some time redesigning and organizing site hierarchy, paying attention to simplifying the layout and making sure your users can navigate through parent-child chains easily.

After upgrade, all your forms will function. Microsoft didn’t change FormXml definitions.

However, for some of the entities you will get a few additional forms. In the screenshot below, Information form comes from the Dynamics CRM 2011 solution, while the Case form is an OOB new process-driven Case UX form.

You can use both forms, or merge them. If during the upgrade issues are detected, they will be added to Conflicts tab at the bottom of the upgraded form.
 
 

Since Dynamics CRM 2013 introduced the auto-save feature, and it is turned on by default, determine if it might lead to potential issues, especially if you are using plugins triggered by an Update message. If a plugin is prone to consume significant resources, or if it introduces long-running operations (such as invoking transactions in remote systems), it might reduce overall system performance and introduce adverse effects if it is invoked often as a result of auto-save operation.

Finally, custom JS code might need to be reviewed and adjusted. One of the major enhancements in 2013 is an introduction to asynchronous data saving, auto-saves and reduction in the number of popups and screen reloads. A couple of scenarios below illustrate potential issues with legacy custom code:

-          Custom JS code executes during page load and loads certain resources. In Dynamics CRM 2011 each form save triggered complete window reload. In Dynamics CRM 2013 it doesn’t happen anymore. Even after first save on a New record, the window doesn’t reload. Load event however will still be triggered, which may lead to legacy Dynamics CRM 2011 JS code loading same resources multiple times.

-          In Dynamics CRM 2013, an entity form can be displayed within the main CRM window, or can be displayed in a popup form. If you load custom code that manipulates DOM (which technically is unsupported, but in practice might be unavoidable for complex scenarios), for example, to replace certain screen element (such as text box) with a generated on the fly HTML (e.g. graphical button displayed an image from JPG web resource), you will notice that relative URLs are different between inline and popped forms and your DOM code needs to be modified.

After ensuring that converted site runs correctly and looks good, take a look at such new Dynamics CRM  2013 features as quick create forms, entity preview options, Bing maps integration and business rules. Some of these new options may replace or enhance pre-existing customizations.
 
Upgrading to Dynamics CRM 2013 provides an opportunity to streamline the user experience and add the new features that may have been lingering in your user request backlog. 

No comments: