Microsoft Dynamics CRM 2016 / Dynamics 365 8.x
Web API (OData v4) in production; the Dynamics 365 renaming
If you are maintaining this today
CRM 2016 is out of support. Mainstream support ended on 12 January 2021 and extended support on 13 January 2026, against a release date of 30 November 2015.
The three releases in this family ended at different times, which matters if you are working out whether a particular system was ever on a supported update:
| Release | Version | Support ended |
|---|---|---|
| CRM 2016 | 8.0 | 10 July 2018 |
| CRM 2016 Service Pack 1 | 8.1 | 8 January 2019 |
| Dynamics 365, December 2016 update | 8.2 | 13 January 2026 |
This is also the release family where Microsoft started telling developers to move off the older endpoints. An 8.x system that still leans on them was already carrying deprecated code before its support ended.
What changed for customizers
| Area | CRM 2016 / 8.x | What came before | Modern equivalent |
|---|---|---|---|
| Integration | The Web API (OData 4.0) introduced in 8.0 | The organization service (SOAP) and the OData v2 organization data service | The Dataverse Web API |
| Endpoints | OData v2 deprecated in 8.0; the 2011 SOAP endpoint deprecated in 8.1 | Both current | Web API, and the SDK for code running in plug-ins |
| Packaging | Solution patches, rolled up into new solution versions | Exporting a table exported all of its assets | Solutions, plus pipelines and environment variables |
| Form script | Keypress events and auto-completion added in 8.0 | Xrm.Page without them |
formContext |
The Web API
Source: the what’s-new topic in the 2016 SDK.
8.0 introduced the Web API, implementing OData 4.0 at
[organization uri]/api/data/v8.0/. The SDK set out the reasoning plainly:
it works across platforms and languages without downloading SDK assemblies,
everything is an HTTP request, and it was meant to reach parity with the
organization (SOAP) service, “with a few differences”.
The guidance was to use the Web API for integrations and modern applications. Code running inside a plug-in kept using the SDK assemblies and the organization service.
What was deprecated, and when
Source: the 2016 SDK, in its what’s-new topic and its topic on important changes coming in future releases.
- 8.0: the organization data service. The OData v2 REST endpoint that arrived with CRM 2011 was deprecated in favour of the Web API, and the SDK recommended that any new code use the Web API instead.
- 8.1: the CRM 2011 endpoint. The SOAP endpoint for the organization web service was deprecated as of CRM 2016 Service Pack 1 (8.1.0), along with some knowledge management entities. At the time the SDK said the endpoint “will be removed some time after the release of Dynamics 365 version 9”, and that the SDK assemblies and tools would be retargeted to the Web API over later minor releases.
That second point is a plan stated in 2016. On 9.x on-premises, Microsoft’s current documentation still describes the 2011 SOAP endpoint as deprecated rather than removed; see the 9.x on-premises page. In Dataverse it is likewise still deprecated rather than removed, with no removal date announced; see the Dataverse page.
Solution patches
Source: the 2016 SDK, in its what’s-new topic and “Create patches to simplify solution updates”.
Before 8.0, adding a table to a solution and exporting it exported the table with all of its assets: columns, forms, views, relationships, visualizations and the rest. That could modify things you never meant to ship on the target, or drag dependencies along with it.
8.0 added patches. A patch holds only the sub-components you changed,
not the whole table. Patches apply to managed or unmanaged solutions, are
created from a parent solution with CloneAsPatchRequest, and are stored as
solution records whose ParentSolutionId is set. Later, the original
solution and its patches can be rolled up into a new version of the
solution, which replaces the original. Where patches sit among updates and upgrades is on
Customization XML to solutions to pipelines.
Also in 8.1
Source: the what’s-new topic in the 2016 SDK.
- Customer lookups on any table. Lookups that accept either an account
or a contact could now be created on system and custom tables, through the
customization tools or
CreateCustomerRelationshipsRequest. - Web API enhancements, and client API support in the interactive service hub.
- Azure integration additions: SAS authorization, sending data to an Azure-hosted listener in multiple formats, and integration with event hub publishers.
- Package Deployer gained more control over how packages are deployed.
Also in 8.2
Source: the what’s-new topic in the 2016 SDK.
- Editable grids, and client APIs for working offline in the mobile clients and for using native device capabilities.
- Server-to-server authentication.
- Web API with Outlook offline: form scripts using the Web API could work against local data in Dynamics 365 for Outlook while offline, which the SOAP and OData v2 endpoints could already do.
What this page still needs
Written from the 2016 SDK and Microsoft’s lifecycle pages. Not yet covered, and not guessed at: plug-in and workflow changes in detail, security changes, the on-premises infrastructure requirements for each release, and the upgrade traps from 2015. They follow as the SDK is read further.
Sources
- Dynamics CRM 2016 (Dynamics 365) lifecycle (Microsoft Lifecycle Policy) Microsoft support dates for CRM 2016 (Dynamics 365): start 30 November 2015, mainstream support ended 12 January 2021, extended support ended 13 January 2026. Releases: 8.0 from 30 November 2015 to 10 July 2018; 8.1 (Service Pack 1) from 23 May 2016 to 8 January 2019; 8.2 (December 2016 Service Pack) from 16 December 2016 to 13 January 2026. The lifecycle table shows end dates at 6:59:59 AM on the following day; the actual end date is the day before. Microsoft’s 2021 end-of-support list confirms mainstream support ended 12 January 2021.
- Ending Support in 2021 (Microsoft Lifecycle) Microsoft’s list of products ending support in 2021. Gives Dynamics CRM 2011 end of support as July 13, 2021, and Dynamics CRM 2016 (Dynamics 365) end of mainstream support as January 12, 2021.
- Microsoft Dynamics CRM 2016 / Dynamics 365 SDK (compiled help, Dynamics365SDK.chm, and SDK tree) Private archive: CRM-SDK-Rescue/2016-D365-SDK_from_DESKTOP-Code/SDK Microsoft SDK for the 8.x era, from an owner-held copy: the compiled help (Dynamics365SDK.chm, read as documents, never executed), sample code, schemas and UII material. Its what’s-new topic covers CRM 2016 (8.0), CRM 2016 Service Pack 1 (8.1) and the December 2016 update for Dynamics 365 (8.2). Quote sparingly and cite; do not republish. Its SampleCode/CS/HelperCode/OptionSets.cs lists the component type values the 2016 SDK knew.