Products

Solutions

Resources

Partners

Community

About

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.


A Break With The Past

main.ball-and-chainDNN 8 is a major leap forward for DNN.  There are many new features like MVC and SPA module development support, OAuth2 server support, a new HTML Editor, the Dynamic Content Creator and a new default skin and template.  In addition to all of these new features, we are also updating the DNN architecture.  We are working to enable the creation of custom DNN distributions, to improve platform performance and to get rid of some outdated portions of the platform that are holding us back.

As we have progressed on DNN 8 development, we have been faced with some tough choices.  Some of the architectural and performance improvements that are needed will require us to break backwards compatibility.  In speaking with many community members on these issues, we have consistently heard the same message – do what is right to move the platform forward.  In most cases these changes will have no impact on your use of DNN. We are spending a lot of effort to ensure that the core platform features continue to work properly even after these changes.  We are also working with the Evoq team to ensure that the Evoq Content and Evoq Engage products provide a smooth upgrade for our commercial customers.

So what is changing?

Separating Telerik

In 2009 DNN began working with Telerik to ship RadControls with DNN as part of an OEM arrangement.  This OEM agreement was ended in 2013 and since that time we have continued to ship Telerik with the platform even as we have worked to reduce our reliance on Telerik controls.  In DNN 8 we are moving all of the Telerik wrapper controls into a standalone assembly so that it will be easier to make it an optional install in later DNN 8.x releases.  While Telerik and the associated wrappers will still be shipped in DNN 8, this change will require some work by developers who rely on these wrappers.  This will be as simple as opening the code, adding in a reference to the new assembly and recompiling. We will announce when this change has been added to the nightly build as it has not made the cutoff for CTP 5 which is due out this week.

Removing “Dead” Features

We have identified many features of DNN that are no longer relevant or that are rarely used.  We have also identified a few features that are used by a small portion of our user base, but for which much better options exist.  In removing these features we will reduce our memory footprint and improve the overall application performance. The following features are being removed from the core platform and being moved to the DNN Community section on GitHub (we are still working to get these projects completed and tested).

For those people who still rely on these features, you will be able to re-install the appropriate module or provider to re-enable the associated functionality.  This approach allows us to streamline DNN for the vast majority of our users while still providing these features for those users who still want them.  As we remove these features we are making sure that we don’t delete any data associated with the feature.  For example, if you have data in the site log, after upgrading to DNN 8 you will be able to install the new SiteLog Module and continue using the feature without loosing any of your logged data.

While some features will be deprecated and moved to GitHub, the features below will be removed completely.  These features have long since been deprecated, but the code has remained in DNN.  This cleanup is long overdue.

  • SolPartMenuNavigationProvider (and associated skin objects)
  • Feed Browser
  • Webslice Support
  • What’s New Module
  • ContentList Module

There is one final change that we have made that we have tried on two previous occasions.  We are finally getting rid of the Connection String that resides in AppSettings.  When ASP.Net 1.0 was launched, connection strings were just one more type of app setting in the web.config file.  With ASP.Net 2.0, Microsoft introduced a dedicated ConnectionString section in web.config.  Unfortunately, many modules used code which directly reads the connection string in AppSettings which prevented us from getting rid of the setting. This leads to extra code in the platform to try and keep these strings in sync, and can also lead to weird behavior if you modify one connection string without updating the second copy.  We have fixed most of the community modules which relied on the old connection string and will work with vendors to ensure their modules don’t rely on this relic from 2005.  If for some reason, you find a module that still requires this setting, it is not the end of the world, as a simple web.config edit will have you back up and running.

Performance, Performance, Performance

One of our goals with DNN 8 was to improve the overall platform performance.  We have looked at many aspects of performance and have made changes to improve application startup time, page rendering speed and scalability.  In looking at some of the application bottlenecks we had to make some changes which are technically breaking changes, but which should not impact your DNN site.

One of the performance bottlenecks that we noticed was that all static files were being processed by a number of HttpModules in the platform.  In doing our performance testing we found that this resulted in a significant degradation in performance.  Under low load, there wasn’t much performance difference, but as load increased the performance problems became worse.  Ensuring that all of the HttpModules include a preCondition=”managedHandler” ensures that only actual ASP.Net code is run through the HttpModules.  All static code (like images, JavaScript and CSS) will be served by IIS which is very efficient in serving these files.

Conclusion

There are a lot of changes coming in DNN 8.  While we want to avoid breaking changes whenever possible, we also have to balance that against the need to continually improve the platform.  Sometimes this will require us to remove old code or refactor code to provide a more reliable and stable platform.  In the end, I believe that the breaking changes in DNN 8 are necessary and will help improve the overall maintainability and performance of the platform. I would love to hear your feedback on these changes. 

NOTE:  We have a WIKI entry listing the DNN 8 breaking changes.  We'll keep the WIKI updated if we make any additional breaking changes.

Comments

David O'Leary
Sounds great! I fully support removing unused and little used features. Can't wait for DNN 8.
David O'Leary Thursday, September 24, 2015 6:15 PM (link)
Brad Bamford
Keep em coming, break more, lets move forward.
Brad Bamford Thursday, September 24, 2015 7:15 PM (link)
Jacques Woolston
These all sound like great moves for the DNN platform, I'll be moving my development sites to CTP 5 as soon as it's out.
Jacques Woolston Friday, September 25, 2015 7:01 AM (link)
Erik Hinds
RIP Telerik.

Erik Hinds Friday, September 25, 2015 9:38 AM (link)
Scott Willhite
I am really looking forward to this release and upgrading our sites to DNN 8!

Keep up the good work Joe, DNN MVP's and the DNN Corp Team!
Scott Willhite Friday, September 25, 2015 7:16 PM (link)
Don Bills
How do you install the Optimizely connector in 8.3?
Don Bills Wednesday, March 30, 2016 4:17 PM (link)

Comment Form

Only registered users may post comments.

NewsArchives


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