New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

The Community Blog is a personal opinion of community members and by no means the official standpoint of DNN Corp or DNN Platform. This is a place to express personal thoughts about DNNPlatform, the community and its ecosystem. Do you have useful information that you would like to share with the DNN Community in a featured article or blog? If so, please contact .

The use of the Community Blog is covered by our Community Blog Guidelines - please read before commenting or posting.

5 Tips for Successfully Upgrading DNN Websites

Upendo Ventures gives 5 tips for successful DNN website upgrades

Depending on who you ask, you’ll be the recipient of a very passionate response when you ask any DNN’er their opinion about DNN upgrades.  In general, upgrading DNN is very similar to any other ASP.NET application.  Yet, when things go wrong, people tend to blame the application itself.  Don’t get me wrong, the respective application can and sometimes does have something to do with an issue that may occur, but in my experience, that’s the exception and not the rule.  Here are some tips to help you have a less "exciting" time the next time you have to upgrade DNN.

In general, all of the DNN websites I manage that have no other superusers are easily upgraded.  I rarely have to roll anything back or see any errors occur during the upgrade process.  This is primarily because I keep it clean.  It’s also because I follow my own tips below.  I hope this help you and your team to have the same beautiful experience with DNN. 

Oh, by the way, each of the steps below potentially perform significant changes to the DNN website.  Be sure to backup the website and test everything you do.

Scan the Website

It never ceases to amaze me, but approximately 30% of the website backups I receive have either been hacked, or they have been infected with a virus.  It’s rare that the owners of the website are aware of either.  It’s super-easy to prevent the hacks.  See my tip about that below.

Before you upgrade, you’ll want to first scan the file system using your preferred antivirus tool.  Be sure to correct any issues that occur using the advice provided by the antivirus software you’re using. 

Next, scan the website for any .ASP and .PHP files.  In almost every instance, there shouldn’t be any instances of either type of file.  I've found FileLocator Lite to be incredibly helpful for this and numerous other tasks.  If you find any, be sure to investigate why they’re there.  It’s rare, but sometimes an integration of some kind may require the files you find.

Finally, it’s a good practice to compare all of the core .ASPX, .ASCX, and .JS files to the same files in a clean instance of the same version of DNN.  You’re making sure that they haven’t been altered at all.  You can use a tool like WinMerge or Beyond Compare to make this task easier.  If you find any altered files, this is evidence of either someone changing the core files, or having been hacked.  It should go without saying, but never, ever, ever, ever, ever change the core code files.  If you do find any core files with differences, you should probably overwrite those files with the correct ones before you proceed.

Oh, and please don’t make any core code changes.  Yes.  It’s important enough to say again.

Uninstall All Unused Extensions

Almost every website I see that allows third-party extensions to be installed has numerous extensions installed that aren’t being used anywhere.  They were installed once because they were indeed used but have since been replaced, or they were being tested for potential use, or they may have simply been installed just in case they might be needed in the future.  Whatever the reason, you should uninstall them immediately.

The more extension you have installed, the higher the risk of the upgrade failing, potential security vulnerabilities, performance issues, usability issues, and more.  Like an Olympic athlete, you want to keep your website as lean as possible.  Cut the fat by uninstalling all extensions that aren’t being used.

By the way, this includes the theme packages you might have installed.  In general, you should only be using a single theme package, and any others should be removed.  Keeping them installed will only ensure that your upgrades will become more and more complicated over time.

Upgrade All Extensions

Now that you have a fairly clean instance of your website, it’s time to help it rise up to the next level.  The first way you do that is by upgrading all of the third-party extensions you are using.  You’ll want to make sure that you have the most current version installed.  Be careful to check the release notes from the respective vendors though.  Sometimes you’ll find that a third-party extension can’t be upgraded until a specific version of DNN.  This is for good reason. Be sure to pay attention to that.

Some of the third-party extensions you need to upgrade will be commercial extensions, requiring an upgrade fee.  This should be considered to be part of your annual website budget.  Count on having to upgrade extensions and paying for it.  Commercial extensions that regularly are supported via license fees is a cyclical thing.  The license fee ensures that they can keep the extension updated and continue to enhance it over time.  This will continue to help you for years to come.

Ensure Your Theme Is Following Best Practices

Probably the biggest offender I see for upgrade and performance issues is found in the theme.  If you’re upgrading from a version of DNN prior to 8.0, you’ll need to perform at least one critical step as part of your upgrade process.  This step requires someone who’s comfortable with editing ASP.NET code.  You need to remove all of the references to the degraded SolPartMenu and Action Buttons/menus.  You’ll find the Action Buttons in your containers.  Hopefully, you don’t see the SolPartMenu though.  It often takes a significant amount of effort to replace that menu with a more contemporary one.

Another thing to look at is how the theme is including any CSS or JS files.  These resources should be included using the Client Resource Manager only, and not using the standard/static <script> and <link> HTML tags.  Doing it any other way only increases the risk of odd usability issues and errors on your website – not to mention performance issues.

Do It In Increments

In many cases, it would appear that you could upgrade directly from one version to the most recent version of DNN.  For example, you try to upgrade from version 06.02.04 to 09.01.01.  It may even look like it worked at first. In many cases, we’ve seen this ourselves, only to find quirky issues creep up, sometimes weeks or months after the upgrade.  In general, we’d recommend upgrading to the highest version of DNN for each major version.  For example, the highest version of 6.0 is 06.02.09, 7.0 is 07.04.02, and so on.  Upgrade to each major version, backup, and test incrementally.  It may seem like more time in the short-term, but we’ve found this to be a critical step towards ensuring long-term stability.

Do It Regularly

Upgrade your DNN website as soon as possible.  It’s a good idea to never fall behind.  The longer you wait to upgrade, the more work you’re creating for when you do.  You’re almost guaranteeing issues to occur.  In general, we never recommend being more than two releases behind.

It’s worth noting that as of the time of this writing, we don’t recommend upgrading to DNN 9.2.  There have been over 500 API endpoints removed, and the ecosystem hasn’t yet had enough time to react to this change.

Bonus Tip!

Probably the number one cause of upgrade problems I see is related to third-party and (especially) custom extensions.  Only use extensions that are built by a well-known vendor whose reputation shows that their extensions are compatible with and don’t hinder newer versions of DNN.  Also, if you have your own custom extension, rebuild them regularly against newer versions of DNN to ensure that they are adhering to any recent API changes.  Otherwise, the next time you upgrade, you may  be spending a lot more time and effort troubleshooting things, versus upgrading.

This blog post is cross-posted from the Upendo Ventures blog.


Horacio Judeikin
Nice post, Will.
May I add two extra tips? Make the pre-upgrade tasks and upgrade itself easier with Evotiva's DNNUpgrade, and make the backups (and clones for testing) with Evotiva's DNNBackup. Shameless plug, of course :)
Horacio Judeikin Monday, June 18, 2018 1:00 AM (link)
Will Strohl
In-context shameless plugs are always welcome. Thanks, Horacio! :)
Will Strohl Monday, June 18, 2018 5:03 PM (link)

Comment Form

Only registered users may post comments.


Aderson Oliveira (22)
Alec Whittington (11)
Alessandra Daniels (3)
Alex Shirley (10)
Andrew Hoefling (3)
Andrew Nurse (30)
Andy Tryba (1)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (37)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Bogdan Litescu (1)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (213)
Chris Paterra (55)
Clint Patterson (108)
Cuong Dang (21)
Daniel Bartholomew (2)
Daniel Mettler (181)
Daniel Valadas (48)
Dave Buckner (2)
David Poindexter (12)
David Rodriguez (3)
Dennis Shiao (1)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (80)
Francisco Perez Andres (17)
Geoff Barlow (12)
George Alatrash (12)
Gifford Watkins (3)
Gilles Le Pigocher (3)
Ian Robinson (7)
Israel Martinez (17)
Jan Blomquist (2)
Jan Jonas (3)
Jaspreet Bhatia (1)
Jenni Merrifield (6)
Joe Brinkman (274)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Kelly Ford (4)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matt Rutledge (2)
Matthias Schlomann (16)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Miguel Gatmaytan (3)
Mike Horton (19)
Mitchel Sellers (40)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Oliver Hine (1)
Patricio F. Salinas (1)
Patrick Ryan (1)
Peter Donker (54)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Sacha Trauwaen (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott Schlesier (11)
Scott Wilkinson (3)
Scott Willhite (97)
Sebastian Leupold (80)
Shaun Walker (237)
Shawn Mehaffie (17)
Stefan Cullmann (12)
Stefan Kamphuis (12)
Steve Fabian (31)
Steven Fisher (1)
Tony Henrich (3)
Torsten Weggen (3)
Tycho de Waard (4)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (40)
Will Strohl (180)
William Severance (5)
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out