Upgrade Your Customizations from Microsoft Dynamics CRM 4.0

[Applies to: Microsoft Dynamics CRM 2011]

If you created customizations for Microsoft Dynamics CRM 4.0, you must upgrade your customizations to be compatible with Microsoft Dynamics CRM 2011.

In This Topic

Upgrade Behavior

In Microsoft Dynamics CRM 4.0, customizations are equivalent to unmanaged customizations. During upgrade, the existing customizations are processed and added to the unmanaged customizations for the organization. You access them using the Customizations area under Settings. Any applications that use Microsoft Dynamics CRM 4.0 APIs should be backwards compatible.

Update Microsoft Dynamics CRM 4.0 Customizations to Microsoft Dynamics CRM 2011

Your first step is to evaluate the new capabilities introduced in Microsoft Dynamics CRM 2011. You may have made design choices because the capabilities you needed were not available in Microsoft Dynamics CRM 4.0 that are now available. You may have resorted to unsupported methods to achieve business requirements that can now supported in Microsoft Dynamics CRM.

The next step is to create one or more unmanaged solutions that implement any design changes you want to apply for Microsoft Dynamics CRM 2011. During this process, you should consider whether you want to break your solution into separate modules or retain within a single solution. After your conversion is complete, you can export your solution as a managed solution and distribute it to your organizations that will install it for the first time.

After you verify that your solution works correctly with Microsoft Dynamics CRM 2011, you can begin to work out how to upgrade any organizations that already have your Microsoft Dynamics CRM 4.0 customizations installed.

Options to Upgrade Existing Customers

Unmanaged and managed versions of the same solution cannot co-exist in the same organization. You must decide whether to leave the customizations representing your solution as unmanaged or convert them to a managed solution.

Two options are discussed below:

Leave the Solution as Unmanaged

You are not required to use managed solutions. Some organizations may want to continue to use the Microsoft Dynamics CRM 4.0 model and customize the system as they have been doing.

This may be common for large enterprises that have large IT departments who have full control over their environments and are not concerned about merging customizations or multiple solutions colliding with each other.

A variation of this option is to separate the various solution components into multiple unmanaged solutions based on logical groups of related solution components. This will enable more flexibility in transporting a sub set of solution components.

Convert Unmanaged Customizations to a Managed Solution

If you want to take advantage of the capabilities provided by managed solutions for your existing customers, you will need to convert the unmanaged customizations representing your solution in the customer’s upgraded Microsoft Dynamics CRM 2011 organization.

When an organization installs your managed solution and the system detects that a solution component in the unmanaged customizations matches a solution component in your managed solution, the following message will display:

One or more components in the solution already exist in your system as unmanaged components. Importing this solution will convert the components into managed components for this solution.
Warning: Any customizations that your organization has made to these components will be lost.
After the import operation is complete, managed solutions from other solution publishers will be unable to update these components.

When the person installing your managed solution accepts these conditions, the unmanaged customizations will be included in your managed solution. The installation performs the following actions when converting unmanaged customizations into a managed solution:

  • Creates any new solution components

  • Preserves existing components

  • Updates existing components

    • Overwrites labels

    • Overwrites any form layout changes

      • Merging is not done

    • Overwrites any changes to Views.

We strongly recommend that you back up your unmanaged customizations before you install the managed solution. After the managed solution is installed, you will not be able to export the definitions of these customizations.

Never install a managed solution on your development environment that will convert your source unmanaged solution components to part of a managed solution. You will not be able to export those customizations.

If an unmanaged solution is detected with the same unique name as the managed solution that you are trying to import, the installation will fail unless you delete the unmanaged solution.

Refactoring your Unmanaged Solution Prior to Converting to Managed

The process to convert an unmanaged solution to a managed solution simply detects solution components that match those defined in the managed solution installed. It does not provide any optimizations that you may want to have in the Microsoft Dynamics CRM 2011 version of your solution. If your new solution contains different solution components than those provided by the default upgrade of your solution, provide a way to migrate the unmanaged version of your solution on your customers organization so that it matches the solution components found in the Microsoft Dynamics CRM 2011 version of your solution.

In most cases, this means you will need to write code to add or remove unmanaged solution components so that they match the managed ones included in your managed solution. For example, you may want to refactor the JavaScript libraries created for your form scripts automatically during upgrade. You must do this before you convert the unmanaged solution to a managed solution.

ConvertToManaged Optional Parameter

You can install a managed solution programmatically by using the ImportSolutionRequest message.

For example, you may want to write a program to address any refactoring you need to do for your solution. After your refactoring is complete, you can use this message in your application to import your managed solution to complete the conversion process.

You can use the optional ConvertToManaged parameter with this message to direct the system to convert any matching unmanaged customizations into your managed solution.

To use this optional parameter, you must create an application to perform the installation. The following sample shows how to include this optional parameter:

ImportSolutionRequest request = new ImportSolutionRequest();
request.CustomizationFile = compressedData;
request.ConvertToManaged = true;
request.ImportJobId = Guid.NewGuid();

ImportSolutionResponse response = new ImportSolutionResponse();
response = (ImportSolutionResponse)ExecuteRequest(request, typeof(ImportSolutionResponse));

See Also

Microsoft Dynamics CRM 2011
Send comments about this topic to Microsoft.
© 2013 Microsoft Corporation. All rights reserved.

Community Additions