If there is no struggle, there is no progress. Frederick Douglass
Dynamics 365 will always surprise you #HoskCodeWisdom
Microsoft Dynamics 365 is evolving. Patches, revisions get added without knowledge or consent of users, major changes must be scheduled and customisations tested. Most patches fix bugs and improves Dynamics 365 but sometimes changing code causes bugs and problems.
Microsoft Dynamics versions
Version numbering for Dynamics 365 is like Dynamics solutions versions
The current release is of Dynamics 365 188.8.131.521
Major releases and numbers
- CRM 4 = 4
- CRM 2011 = 5
- CRM 2013 = 6
- CRM2015 = 7
- CRM 2016/Dynamics 365 = 8
- Release 9 is the next big release coming soon! (read – Important changes coming in future releases of Microsoft Dynamics 365)
Dynamics 365 as a service
Microsoft Dynamics 365 is a service, developers cannot access any servers (Front end, back end or SQL server).
Microsoft installs, configures and maintains the servers for our Online Dynamics 365 instance, charging you for this work in your monthly licence cost.
Developers have less control and flexibility. We cannot scale up servers, SQL databases or performance. We can’t change database or server settings, we don’t have access and need to work with what is there.
The lack of scaling, configure servers and limitations of Dynamics 365 online developers need to to move heavy processing out of Dynamics 365 and into Azure (avoids performance being throttled) and to enable long running processes.
Plugins and custom workflows in Dynamics 365 online run in sandbox mode which has many limitations, one of the fundamental limitations is plugins/custom workflows must finish within 2 minutes (yes even async workflows run in the sandbox) – Understanding Plugin sandbox mode.
This post covers best practices of Dynamics 365 online architecture
Upgrades and updates
Microsoft Dynamics 365 delivers a major release every 2 years (the first number, current version 8) and a minor release every is 6 months. Microsoft Dynamics 365 has added functionality which allows you to delay updates but you must update once a year (you cannot delay) or before a major release.
You need to manage and plan for updates
There is pressure to keep up with the releases and not waste time testing the new releases because they cannot avoid taking them.
For the Major and minor releases, admins decided when to apply the update and test the update on sandbox instances.
For build and revision releases Microsoft can apply these any time and regularly applies small patches to fix minor bugs. Microsoft promises not change anything significant in patch updates.
Patch releases are not always minor
At Extreme 2017 I heard a story where Microsoft depreciated a security protocol but hadn’t removed it from the code yet. Developers were told not to use it, Microsoft being busy didn’t get round to removing it until a few months later and then did so in a patch release.
When the release went live Microsoft noticed a massive drop in Dynamics 365 usage in Australia, lots of code using not supported security protocol stopped working. Microsoft naughty making major changes in a patch release rolled this back within in a couple of hours.
A CRM 2011 upgrade which after installed, changed their database and their Dynamics CRM didn’t work. This lead me to writing the post
I recommend you follow Scott’s blog and use the awesome Ribbon Workbench.
When patches attack
Microsoft applied a small/patch release and broke our DevOp‘s automatic deployments.
Over a weekend Microsoft updated our instances from version 184.108.40.2069 to version 220.127.116.111 over weekend. We noticed because a trial instance was 18.104.22.1681, our instances were 22.214.171.1249.
This caused problems, the extract customisations script stopped working because the new version of Dynamics 365 needs new versions of client assemblies (126.96.36.1996 to 188.8.131.529).
It’s obvious when you know the cause but it we came in to automatic deployments not working and a generic error. It took a few hours of investigation to find the solution.
A minor release shouldn’t need an update of client assemblies to interact with Dynamics 365. If Microsoft wants Dynamics 365 to deliver Enterprise projects, they need to improve the communication and effect of updates. If they alerted about updated assemblies we could have avoided wasting time diagnosing the problems.
When working with Dynamics 365 online and other online services you have to be ready to diagnose problems, deal with upgrades and potential problems.
Change will happen whether you are ready for it or not #HoskWisdom