Upgrading the DNN series is a breeze, which almost everyone says. Just copy the files for the new version and then the application will guide you throughout the upgradation. Right?
But, there are a lot of considerations and specific scenarios are taken into the account before heading towards upgrade process. Alas! The fundamental approach of copy and replace would no longer exists.
Then, what? Has it become difficult? Involve a lot of technical challenges?
Hold on. All the questions would be aptly answered. But, before that take a glance at the pre-requisites of making DNN 7.0 series compatible to the DNN 8.0 series module. They are:
- DNN 8.0 or later version
- ASP.NET 4.5.2 or higher is required (Visual studio 2015)
- Need updated newtownsoft.dll (json.net) 7.0.1 or above version
- Support for IE 9 or later version is required
- Medium Trust is no longer supported
- Need updated Ajax Control Toolkit.dll (4.14 or above version)
- Latest DNN development template
- Christoc's development templates for creating a package
- Gooddogs DNN development template
Now, take a quick look at what are the challenges the DNN team faced while upgrading the DNN 7.0 to DNN 8.0 and how they can be resolved:
1) Modules don't work in DNN 8.0 series
There are some modules that you developed in DNN 7.0 series, do not work with the new version of DNN 8.0 and above version.
When you add any module on the website that works impeccably in the DNN 7.0 series, but don't work in the DNN 8.0 series, you face an issue like
DotNetNuke.Services.Exceptions.ModuleLoadException: Object reference not set to an instance of an object. ---> System.NullReferenceException: Object reference is not set to an instanceâ€
2) The package/module working in DNN 7.0 series is not visible in DNN 8.0 series or onwards
When you add any module on the website, it is visible/work in the DNN 7.0, but not visible/displayed in DNN 8.0 series and the following stack trace you get.
at System.Activator.CreateInstance (Type type)
at DotNetNuke.UI.Skins.Pane.IsVesionableModule (ModuleInfo moduleInfo)
at DotNetNuke.UI.Skins.Pane.InjectModule (ModuleInfo module)
at DotNetNuke.UI.Skins.Skin.InjectModule (Pane pane, ModuleInfo module)
The solution to this problem is illustrated below:
- Take the existing DNN module (DNN 7.0 series) with source code and again choose the latest DNN development template which is compatible with DNN 8.0 and VS 2015. I have used Christoc's development template
- Download the latest version of DotNetNuke (DNN) Development Project Templates and install on development machines
- Now, Template is available in your Visual Studio environment
- Select the template and create the project on this URL: http://www.christoc.com/Products/DNN-Development-Templates
- All existing developed module page code can be moved in the new DNN development template
- Add the new latest version of the third-party DLL, which is used in your project
- After the successful development of the project, the packages are created under the install folder
3) The AppSetting connection string is not working
When an AppSetting connection string doesn't work on the DNN 8.0 series, it's better to remove the AppSetting that previous version of DNN contains, that's two types of connection strings (connectionStrings and app settings) definitions in web.config file.
The <connectionStrings> just support <appSettings>, but not VS 2003. The <connectionStrings> support VS 2005 and later versions.
If you have a module that stops functioning, you can manually add it back, but it is recommended to get a version of your module, which uses the correct connection Strings definition.
If you use or refer the appsetting connection in your C#/VB.net code, it should be removed from the developed module.
4) Old DLL like AjaxControlToolkit, newtownsoft, Telerik, and other third party DLL are not working
The only solution to this problem is to leverage the latest version of the DLL that are mentioned below:
- Other third-party DLL
5) DNN 8 has some breaking changes with respect to DNN 7
The modifications that influence the upgrade and extensions are described below:
- Some administration modules from the product are removed. However, they are no more supported
- The functionality/modules such as What's New, Widget Framework, Content List, Getting Started and Feed Browser are alleviated
- The navigation providers: DNNDropDown, Solpart, DNNMenu, ASP2Menu, and DNNTree are removed
- The legacy app setting connection string that is not updated for the modules previously is removed
- The support for Internet Explorer 8 is also removed
Upgrading the website to the latest version of DNN is essential to gain the benefits of the new feature that the latest version has brought along. The same is the case with the upgradation of the modules to DNN 8.0. The efforts made to make the DNN modules compatible to DNN 8.0 stacks up some challenges before the developers.
To make the upgrade process plain-sailing, the challenges and solutions are rounded up and explained in advance.
Have fun with DNN 8.0 development or modules up-gradation to the DNN 8.0!