Learn More





DNN Community Blog

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.

How To Get The Most Out Of The DotNetNuke 6.1 Performance Improvements

One of my favorite features in DotNetNuke 6.1 is the new Client Resource Management capabilities.  This is a feature that I wanted to see as part of the core a few years ago.  As a commercial module developer and DotNetNuke website owner, I was constantly keeping track of overall page output with each DotNetNuke release.  DotNetNuke 6.0 introduced several new components that greatly improved the user interface, but unfortunately also added more to the overall page size.  We knew we needed to get better control over the number of resources needed for each page and we knew it needed to be done for DotNetNuke 6.1. 

As a few of you know, we did find a few issues with the Client Resource Manager after the initial release.  Thanks to some great feedback from our community, the Client Resource Manager is ready to make your website load much faster.  How much faster?  Well, since all websites are different, including DotNetNuke websites, the performance improvements really depend the skins, containers and modules that you use. 

Knowing that there are many different factors that can affect page performance, I needed to come up with a baseline method to measure the client side performance across different versions of DotNetNuke.  I also needed to use a common tool that would score the a web page based upon typical browsing characteristics.  My testing conditions were as follows:

  • Clean installs of DotNetNuke 4.9.5, 5.0.0, 5.6.2, 6.0.0 and 6.1.0
  • Windows 7 64-bit/IIS 7.5
  • Firefox 8.0
  • Plain Skin (compatible with all DNN Versions tested)
  • YSlow

We had three main goals we wanted to achieve with Client Resource Management.  First, we needed to make sure that Client Resource Management API was compatible with existing modules and skins.  Our second goal was to reduce the overall number of HTTP requests per page load.  Finally, we wanted to reduce the size of JavaScript and CSS files as much as possible. Fortunately, YSlow made it very easy to capture the information I needed to see how each version of DotNetNuke performed. 

The Results

YSlow Scores
Higher numbers are better.
Total Number of Requests
Lower numbers are better.
Total Request Payload
Lower numbers are better. Measured in Kilobytes.
Page Load Speed
Lower numbers are better.

Still Room for Improvement

If you look at the Page Load Speed results you can see that we have some room for improvement.  However, in order to improve page load speed we will need to continue to improve the Request Payload.  This means we will need to become more intelligent in the way we load CSS and JavaScript files.  As a framework, we need to make sure we are only loading the resources that are necessary for the current page request.  Client Resource Management is helping us get there, but the next step is to see if we can further optimize our core files such as default.css. 

Coming in Part II

We’ve posted several blogs and wiki entries explaining how to use the Client Resource API, but that isn’t really helpful for site administrators that are trying to improve their site performance.  In my next entry I’ll explain how to make sure Client Resource Management is enabled and what to look for from skins and modules that are affecting the client side performance of your DotNetNuke website.


Comment Form

Only registered users may post comments.


2sic Daniel Mettler (124)
Aderson Oliveira (15)
Alec Whittington (11)
Alex Shirley (10)
Andrew Nurse (30)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (22)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (203)
Chris Paterra (55)
Clinton Patterson (28)
Cuong Dang (21)
Daniel Bartholomew (2)
Dave Buckner (2)
David Poindexter (3)
David Rodriguez (2)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (74)
Geoff Barlow (6)
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 (270)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matthias Schlomann (15)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Mike Horton (19)
Mitchel Sellers (28)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Peter Donker (52)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott S (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)
Timo Breumelhof (24)
Tony Henrich (3)
Torsten Weggen (2)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (37)
Will Strohl (163)
William Severance (5)
Try Evoq
For Free
Start Free Trial
a Demo
See Evoq Live
Need More Information?