If you have been watching the newsfeeds this morning you most likely noticed the release of DNN 9.2.0. This is a release that many have been waiting for in recent months as there are a lot of great changes and improvements in this release. As with any release, there are things to be aware of, this release though requires some extra special attention, I'll cover a few key points from my perspective here.
Before I get into my comments, below are a few key links that you will want to be aware of.
Now, if you are not a developer these linked posts are most likely going to be scary! Even as developers, there are items in this release that we need to be concerned about.
The easiest starting point for discussion is with the removal of 500+ deprecated API's from the DNN API. What this means is that older API's, those that may have been around for a very long time but that was marked as "We might remove these later" were removed.
What this means to those working on upgrading is that if you have any modules, skins, or other components that use one of these older API's your upgrade WILL break, and depending on where/what the API was it could be a pretty spectacular break in the upgrade.
Mitigating the Risk
You can mitigate the risk introduced by this change by taking a few steps. These are not guaranteed but will be sure to get you closer and closer to a smooth upgrade.
- Ensure that all third-party modules are upgraded BEFORE upgrading the website.
- Ensure that all custom modules compile without any "deprecated code" warning messages.
- Follow a rigorous testing process. More on this later.
This is not a risk that should be taken lightly. Most likely if you are a site that was started on 9.x your risk here will be lower, but if you are running an older site, or a site that has migrated up to the latest versions the risk could be higher.
jQuery, jQuery UI, and other Changes
From the other posted link, some other key dependencies in the platform were updated. This includes jQuery, jQuery UI, Newtonsoft JSON, and other components used internally to DNN and by many modules/components.
The biggest concerns are most likely the major version changes on jQuery (From 1.9.1 to 3.1.2), jQuery UI (From 1.11.3 to 1.12.1). The jQuery change to 3.x introduced a large number of breaking changes, these changes could impact your skins, modules, or other aspects of your site. We know that the core of DNN will work with this change, however, older skins and components could have some issues.
It is possible that some of the other changes will impact, however, due to binding redirects included in the web.config the impact should be minimal in most cases but could happen.
Mitgating the Risk
Testing and validation is the only real successful method to guard against this. After upgrading it will be important to test all modules/layouts in the desired supported browsers to ensure functionality works as desired.
Suggested Testing Process
In my opinion, this is a major release and should be approached as a major change to your environment. Upgrading should ONLY be done first in a test environment. This test environment should be a direct copy of your production environment with good backups in place should the upgrade fail, including DB & site files as with any other valid backup.
As you are testing, you will want to set a minimum testing implementation. My suggestion here is to interact with ALL modules that are part of your implemention and all variations of your skin. Some of the risk areas will be large breaking changes that are immediatly avaialble, others could only be subtle things that you notice when browsing the site.
In addition, when viewing your site use the Developer Tools (F12) in your browser of choice to watch for any console errors that might go unnoticed.
The 9.2.0 release is a good step forward for DNN, it cleans up a number of items that needed updating. It is just important to remember that with any change could come some growing pains as you upgrade. By taking a methodocial approach to upgrade you will ensure that you are best equipped to work with the new version.