I read a brilliant article from mscrm blogger today. He has helped clarify a misty/murky area of my knowledge of what is and isn’t supported in CRM 2011. To read the whole article go here
in fact even the start of his blog is interesting
The customizations described in the SDK are supported and will be upgradable to the next version of CRM unless they explicitly say they may not or are deprecated.
Following the Supported Extensions for Microsoft Dynamics CRM from the SDK, I’ll provide a list of what is and is not supported. I’ll try and simplify my list and the descriptions so that you can use it as a quick reference, then if you need more clarification on a particular item you can look it up in the Supported Extensions MSDN Article. Hopefully you can use this information as a quick-reference to know whether or not something will be upgradable, supported, or unsupported.
He raises an important point there are lots of things you shouldn’t change in CRM, like database tables, never touch them because they might change at any moment (e.g. a rollup) and your code will stop working. Microsoft have created the tools for you to not suffer from them changing things, they have an abstract layer over the top so you shouldn’t be affected. The abstract layer is basically the CRM SDK. You tell the CRM SDK to update an entity and it updates that entity and a bunch of other stuff to make sure it all works.
here is the list of things which are supported and unsupported. If you stick to the straight and narrow and use tools Microsoft have provided you won’t have any worries but if you are thinking of doing some extra tweaks this list should help you know what to keep an eye when you next upgrade.
CRM Web Services:
Supported: (CRM Web Services)
- Using the following web-services:
- Organization Data Service
- Web Resource End Points:
- The SOAP End Point
- The REST End Point
Unsupported: (CRM Web Services)
- Using the SOAP or REST Endpoint outside a Web Resource.
Supported: (Form Scripts)
- Jscript functions and events available through the form editor
- Xrm.Page.data for data interaction
- Xrm.Page.ui for form appearance and behavior
Unsupported: (Form Scripts)
- DOM changes and access because they may not be upgradable. The structure of forms and elements could change in future releases.
- Accessing/using methods not published in the SDK such as the innerControl methods.
- Using the RibbonDiffXml to add, remove, or hide ribbon elements
- Re-use of the ribbon commands defined by MCRM (however, they may be deprecated or changed later)
Solution File (customizations.xml)
Supported: (Solutions File – cusotmizations.xml)
- Changes to the customizations.xml file must conform to the CustomizationsSolution.xsd schema.
- Changes to the ribbon
- Changes to navigation using the SiteMap
- Form and dashboards changes using FormXml
- Customization of Saved Queries
Unsupported: (Solutions File – cusotmizations.xml)
- Defining any other solution components (than the ones listed above) by editing the exported customizations.xml file is not supported. This includes the following:
- Entity Relationships
- Entity Messages
- Option Sets
- Web Resources
- Processes (Workflows)
- Plugin Assemblies
- SDK Message Processing steps
- Service Endpoints
- Connection Roles
- Article Templates
- Contract Templates
- E-mail Templates
- Mail Merge Templates
- Security Roles
- Field Security Profiles
- Plugins are supported for all CRM 2011 deployments, Online, on-premise, and IFD.
- Adding your plug-in and custom workflow activity assemblies to the %installdir%\server\bin\ folder is supported on Microsoft Dynamics CRM on-premises and IFD server installations only.
- Non-Sandboxed plugins only work in CRM on-premises and IFD server installations.
- If it is a plugin and it works, it is supported. There are limitations to plugins, but it does not have to do with supportability.
- Creating custom workflow activities (assemblies)
- Editing XAML workflows
- Because workflow is not currently able to be sandboxed, custom workflow activities (assemblies) and modified XAML workflows only work in the CRM 2011 on-premise and IFD deployments.
Supported: (ISV Folder)
- Adding custom web-pages to the ISV folder in on-premise and IFD deployments is supported, but deprecated. These pages must use the 2007 ASMX web-service end point.
Unsupported: (ISV Folder)
- The ISV folder has been deprecated and it is preferable for these pages to utilize web-resources instead wherever possible.
- Fetch-Based reports for CRM Online, on-premise, and IFD deployments
- SQL Based reports for on-premise and IFD deployments
- SQL Based reports that access the tables and non-filtered CRM views.
Other Unsupported Customizations
- Modifications to any of the CRM web pages and files such as .aspx, .css, .htm, .xml, .jpg, and .gif.
- Modifying the schema of the database (other than adding indexes)
- Changing data using SQL commands or any program that does not leverage the SDK to make the changes.
- Referencing any CRM DLL other than:
Microsoft.Xrm.Sdk.dll Microsoft.Crm.Sdk.Proxy.dll Microsoft.Xrm.Sdk.Workflow.dll Microsoft.Xrm.Sdk.Deployment.dll Microsoft.Crm.Outlook.Sdk.dll Microsoft.Crm.Tools.EmailProviders.dll
- Using custom HttpModules to inject HTML/DHTML into the CRM User Interface
- Creating an IIS Virtual Director or Application inside the CRM website