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.

DNN 8 Beta Released

Community LogoDNN 8 has reached another major milestone. After more than 9 months of development, I am pleased to announce that DNN 8 Beta has been released.  In the month since DNN 8 CTP 7 was released, the team has spent a lot of time reviewing the features planned for DNN 8 and working to stabilize the release.

DNN 8 has a long list of features.  Since the beginning we have been very focused on delivering valuable features that address key developer challenges.  With the introduction of MVC and SPA module types, DNN 8 will provide more options for developers, and allow them to build modules using their .Net framework of choice.  In addition, we have been working to provide additional authentication options for developers using the DNN Service Framework.

The DNN 8 beta represents the full feature set that we expect to ship in January.  In the last month the team has closed more than 150 issues, including over 30 issues in the new CKEditor. In addition, the team has worked to incorporate many new community contributions as well. The team has also finished refactoring almost all of the administration modules into separate projects.

The DNN 8 beta include the following new enhancements/features:

  • DnnImageHandler – The DnnImageHandler replaces the existing ProfilePicHandler. The image handler allows developers to easily manipulate images directly on the server. Resizing, cropping, rotating, filtering and many more effects are supported out ot the box. The image handler provides multiple modes and built-in anti-DOS protection.
  • Settings API – The new settings API simplifies accessing module, tabmodule and portalsettings from your module.  Instead of using a generic string dictionary, the new API allows you to create a strongly typed settings class that can serialize and deserialize your settings data automatically.
  • Default.CSS API – One of the biggest pain points for designers is dealing with all of the base styles included in Default.css.  The new APIs included in the Client Resource Manager makes it easier for us to continue iterating and updating default.css without breaking all of the existing skins. Skin designers can specify exactly which version of default.css they want loaded, or unload default.css completely – giving designers the ultimate control.
  • MVC Partial Views – One of the big features for DNN 8 is the new MVC module type.  The DNN 8 beta release now includes support for MVC partial views.

As we approach our anticipated January release, we have had to make some difficult decisions regarding the feature set we will deliver.  Earlier this year, we began work on a new structured content feature (the Dynamic Content Creator) .  As a content management system we view structured content as a feature that is central to delivering a great CMS. 

After doing a complete review of the Dynamic Content Creator in October and November, we determined that we would not be able to complete the feature to the quality level needed for a January release.  We have a number of features planned for 2016 that depend on having a solid and stable core structured content platform.  We felt that we still had a number of changes to make to the Dynamic Content Creator to allow us to move forward with these additional features. Rather than further delay DNN 8, we have made the decision to push DCC to our next release so that we can deliver a great feature rather than a feature that would need re-architecting in a subsequent release.

In addition we were not happy with the HMAC and oAuth services that were being developed.  Based on our review and the goals for these features, we decided to cancel development of HMAC and postpone the development of oAuth.  In their place we have begun work on a new JWT based authentication service which provides a much simpler authentication mechanism that provides greater control to developers.  The JWT feature is expected to ship with DNN 8 but will only ship as a ‘Beta’ feature.

Overall, DNN 8 has a lot of great features that will simplify DNN development and provide developers with more options.  I am really excited for all of the progress we have made so far on DNN 8 and look forward to the January launch. Go download DNN 8 Beta today and let us know what you think.


Tony Henrich
Based on this Tracker entry (, DNN 8 release is not shipping with returning partial views in controller actions. The partial views support that you mention seems to be in views only. This is disappointing news for me. This is a show stopper for me because this scenario will not support components which depend on partial updates through Ajax calls. I guess we'll have to wait for this support to be fully functional or wait for the MVC based DNN version.
Tony Henrich Friday, December 18, 2015 12:04 AM (link)
Rutger Buijzen
Postponing oAuth development at this stage? We really need this feature and counted on it as it had been available in earlier CTPs?
Rutger Buijzen Monday, December 21, 2015 3:00 AM (link)
Joe Brinkman
@Rutger - I understand the frustration. I really wanted oAuth as well. The reality though is that it was not functioning the way we thought it should and there wasn't time enough to fix it in the time we had left. Part of the challenge is that we were trying to bolt on oAuth to the existing membership system which was quite challenging. Ultimately we will likely shift DNN to the new ASP.Net Identity system which makes it trivial to add oAuth support and plan to implement this later in 2016.

In the meantime we are implementing JWT in order to provide a lighter weight authentication solution for web services. For most use cases, I think JWT provides a better solution than oAuth as it is much easier to understand and implement for developers.

At the end of the day the problem we want to solve in DNN 8 is to provide an authentication mechanism for web services that can be used for cross-application service calls. It was never about providing oAuth support per se, but rather solving the authentication problem. Whether you are writing desktop or mobile apps or even standalone web apps, DNN 8 will provide a secure method of calling a DNN service endpoint.
Joe Brinkman Monday, December 21, 2015 2:13 PM (link)
Tony Henrich
While I feel DNN 8 is missing important features, at the same time, I want it out the door so more people use it, more module developers switch to MVC, and hopefully collectively more people will voice their opinions about the missing features. Looks like so far it's only me complaining about the lack of full partial views support.
Tony Henrich Monday, December 21, 2015 2:22 PM (link)
David O'Leary
I hear mostly terrible things about oAuth. Seems wise to have abandoned it.
Bummed that DCC didn't make it. Was really interested to seem what became of that. Definitely a much needed feature.
Great news on DnnImageHandler and the Settings API. Those are long overdue.
David O'Leary Monday, December 21, 2015 5:53 PM (link)
Willem Bonekamp
Same complains here. We are really happy that DNN 8 Beta is released, but disappointed that it doesn't include the DCC and full MVC support. This is something we really need to compete with other CMS systems.

I hope all the waiting will be rewarded in 2016.

Willem Bonekamp Tuesday, December 22, 2015 11:20 AM (link)
Joe Brinkman
@David - We still plan to build out oAuth and DCC. DCC will be delivered in our next release and I think everyone will appreciate the extra time we are spending.
Joe Brinkman Tuesday, December 22, 2015 11:39 AM (link)
Joe Brinkman
@William - We have implemented the vast majority of MVC features that makes sense. We continue to evaluate the parts of MVC that aren't implemented to see if there is any way to make those features work in DNN. Realistically, the differences don't prevent you from building feature rich MVC based modules.
Joe Brinkman Tuesday, December 22, 2015 11:44 AM (link)
Tony Henrich
The current MVC implementation doesn't support several ActionResult types including partialviews which is very important. I have suspended work on my commercial MVC module until the support is fully baked. Whether it will be in an update for DNN 8 or vNext. I am in no hurry. The current DNN8 is not suitable for me and it doesn't offer the user experience my implementation depends on. Meanwhile I will see what others will be doing.
Tony Henrich Tuesday, December 22, 2015 1:08 PM (link)
Radoslav Radivojevic

Do you have any examples that will show how to obtain JWT token and use it with a DNN WebApi service?

Will the existing authentication providers: Facebook, Google provide JWT and is there away to obtain it from let's say a SPA, MVC or Web forms based model?

What about OpenID connect and it's Identity services implementation like Thinktecture Identity Server.
I know that DNN builds on top of ASP.NET Membership provider.
Identity Server supports out-of-the-box ASP.NET Identity. DNN can supply IUserService implementation that can be based on the ASP.NET Membership and Users, UserRoles, UserProfie, ProfilePropertyDefinition extensions present in SQL DB for DNN.
Can DNN now use Owin so one day Asp.Net Identity provider can be introduced?
Radoslav Radivojevic Thursday, December 24, 2015 6:10 AM (link)
Rod Weir
Tried upgrading a 1 page, v7 website and get this when in edit mode. In view mode, the page contents does not display. Any ideas?

Error: Text/HTML is currently unavailable. DotNetNuke.Services.Exceptions.ModuleLoadException: Object reference not set to an instance of an object. ---> System.NullReferenceException: Object reference not set to an instance of an object. at DotNetNuke.Modules.Html.HtmlTextController.GetWorkflow(Int32 ModuleId, Int32 TabId, Int32 PortalId) at DotNetNuke.Modules.Html.HtmlModule.OnInit(EventArgs e) --- End of inner exception stack trace ---
An error has occurred. DotNetNuke.Services.Exceptions.ModuleLoadException: Object reference not set to an instance of an object. ---> System.NullReferenceException: Object reference not set to an instance of an object. at DotNetNuke.Modules.Html.HtmlTextController.GetWorkflow(Int32 ModuleId, Int32 TabId, Int32 PortalId) at DotNetNuke.Modules.Html.HtmlModule.get_ModuleActions() at DotNetNuke.UI.Modules.ModuleInstanceContext.LoadActions(HttpRequest request) at DotNetNuke.UI.Modules.ModuleInstanceContext.get_Actions() at DotNetNuke.UI.Containers.ActionBase. (EventArgs e) --- End of inner exception stack trace ---
Error: Text/HTML is currently unavailable. DotNetNuke.Services.Exceptions.ModuleLoadException: The UPDATE statement conflicted with the FOREIGN KEY constraint "FK_HtmlText_WorkflowStates". The conflict occurred in database "dnn1", table "dbo.WorkflowStates", column 'StateID'. The statement has been terminated. ---> System.Data.SqlClient.SqlException: The UPDATE statement conflicted with the FOREIGN KEY constraint "FK_HtmlText_WorkflowStates". The conflict occurred in database "dnn1", table "dbo.WorkflowStates", column 'StateID'. The statement has been terminated. at System.Data.SqlClient.SqlConnection. (SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at PetaPoco.Database.Execute(String sql, Object[] args) at DotNetNuke.Data.PetaPoco.PetaPocoHelper.ExecuteNonQuery(String connectionString, CommandType type, String sql, Object[] args) at DotNetNuke.Modules.Html.Components.DataProvider.UpdateHtmlText(Int32 ItemID, String Content, String Summary, Int32 StateID, Boolean IsPublished, Int32 LastModifiedByUserID) at DotNetNuke.Modules.Html.HtmlTextController.UpdateHtmlText(HtmlTextInfo htmlContent, Int32 MaximumVersionHistory) at DotNetNuke.Modules.Html.HtmlTextController.GetTopHtmlText(Int32 moduleId, Boolean isPublished, Int32 workflowId) at DotNetNuke.Modules.Html.HtmlModule. (EventArgs e) --- End of inner exception stack trace ---
Rod Weir Thursday, December 24, 2015 7:56 AM (link)
Joe Brinkman
@Radoslav - We don't have any JWT examples yet. We will have them when we launch in January. As I state in the blog post, we will only be shipping JWT as a "beta" feature and we are still finalizing a few items to get it to that point. We think that the JWT implementation we ship in January will have all the basics, but expect it to change a little before we mark the feature as finished.

One thing to clear up is that DNN is not using oAuth or OWIN or Identity Server for any of our JWT work. Those are all outside the scope of this effort. We will discuss those as we are closer to having an official oAuth solution.
Joe Brinkman Monday, December 28, 2015 8:42 AM (link)
Joe Brinkman
@Rod - Can you report that error in Jira - http:// Make sure to include what version you were upgrading from. If it is possible to get a zipped copy of the site, that would help the team to debug and find out exactly what is causing the problem so we could fix it before the final release.
Joe Brinkman Monday, December 28, 2015 8:50 AM (link)
Mark McAvoy
Where can we seem examples/samples of how to use the DnnImageHandler and Settings API?

Since the module competition is about creating good reference modules, it would be nice to be able to integrate these.
Are you expecting to release other new features/APIs before the closing date of the competition?
Mark McAvoy Monday, December 28, 2015 11:13 AM (link)
Joe Brinkman
@Mark - The DnnImageHandler is documented at We are currently working on a new documentation center that will contain all of the documentation. As for the Settings API, I will have to work on a blog post this week as we don't have documentation for it yet.
Joe Brinkman Tuesday, December 29, 2015 9:02 AM (link)
Mark McAvoy
@Joe Thanks for that! The DNNImageHandler is good, works pretty well. Its a nice feature for module developers to be able to use.
Mark McAvoy Saturday, January 2, 2016 2:56 PM (link)
Jacques Woolston
Is the DCC completely removed from the Beta, or is it still in there as it was in CTP7 ? We'd really like to use it even if it as it was in CTP7...
Jacques Woolston Monday, January 4, 2016 8:32 AM (link)
Joe Brinkman
@Jacques - It was removed from the Beta.
Joe Brinkman Monday, January 4, 2016 9:10 AM (link)
Jacques Woolston
@Joe - While I understand the reasons behind the decision, this is a blow for the direction of a current project on which we're working on for the release of DNN8... Even in the DCCs currently developed state in CTP7 it's really useful - we'd been using for more templating content layouts which editors can easily put in place in any page. A shame, we'll need to find another way to do this now.
Jacques Woolston Monday, January 4, 2016 10:57 AM (link)
Lance Long
@Joe delighted to see the Default.CSS API! A long standing annoyance with the platform.

Where can I find out more details on this encouraging component?
Lance Long Monday, January 4, 2016 5:39 PM (link)
Erik Hinds
Any documentation on the Default.css api? Examples?
Thanks, great update!
Erik Hinds Tuesday, February 9, 2016 2:26 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