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.

ASP.NET MVC and DotNetNuke

Unless you have been living under a rock for the past year, I assume you must have heard of ASP.NET MVC by now. ASP.NET MVC is new framework created by Microsoft which offers an alternate development model to the traditional WebForms approach typically utilized in ASP.NET.

Although it was not immediately clear when it was announced, ASP.NET MVC is targeted at some very unique software development scenarios. Specifically, it is designed for situations where a developer wants to employ a more natural Test Driven Development ( TDD ) methodology, and also wants more precise control and flexibility over their urls and page output. This is not for the faint of heart, as I hope we all understand that greater control and flexibility comes hand in hand with greater responsibility on the part of the developer. It also requires more experience and a willingness to accept lower productivity in the early stages of a project as you have to do more of the heavy lifting yourself.

At the MVP Summit a couple years when ASP.NET MVC was first discussed,  Microsoft indicated that they expected ASP.NET MVC would satisfy a 10% use case in terms of new development projects. At the time I questioned why so much effort was being poured into a 10% use case, but clearly Microsoft felt it was important ( my personal opinion is that Microsoft identified that they needed an option which resembled Ruby on Rails – a non-Microsoft development framework which had tremendous buzz at the time, but has since lost much of its lustre ). Now that ASP.NET MVC is officially released I have not seen any official metrics on the adoption rate, but I would have to believe that the 10% number is a good estimate based on conversations I have with developers and customers.

So what does this mean for DotNetNuke?

Well, the main thing which needs to be understood about the ASP.NET MVC framework is that it is not compatible with WebForms. What I mean is that it does not employ a page controller model, and without this abstraction, it cannot support Web Controls. So where most ASP.NET developers are highly comfortable with dragging a Web Control ( ie. Telerik RADControls ) onto the design surface in Visual Studio, setting properties, and wiring up events… this functionality is not available in ASP.NET MVC. For those of you who have been around a while ( I am showing my age here )  ASP.NET MVC is similar from a UI development perspective to the Classic ASP web applications we used to write in the 1990’s ( albeit with less spaghetti ).

DotNetNuke was originally created for ASP.NET 1.0 and has evolved with every new release of the .NET Framework. Due to its heritage, it is dependent on WebForms. And not just from a core framework perspective… all of the extensions which have been created for the platform over the past 7 years are also dependent on WebForms. So in practical terms what this means is that if we converted the DNN core to ASP.NET MVC, none of the thousands of skins or modules which exist in ecosystem would function anymore. So there would need to be a really compelling business argument for us to even consider this migration… and to be honest, we have not found one.

So in a nutshell…

DotNetNuke will NOT be migrating to ASP.NET MVC.

That being said, akin to the programming language debate which continues to rage on in the Microsoft community, there are zealots who proclaim that WebForms are dead and the ASP.NET MVC is the future. Now there is nothing wrong with being passionate about a new technology which meets your requirements. But to make it your personal crusade to convert all other developers to your way of thinking by spreading false propaganda accomplishes nothing other than fracturing the ASP.NET developer community.

Microsoft has made it very clear that both WebForms and ASP.NET MVC are first class citizens and will be integral parts of the future of ASP.NET. They satisfy different use cases, cater to different stakeholders, and although they are not compatible, they are complementary solutions. In general, developers should try to use the right tool to solve a problem based on the unique business requirements of their customer. There will be cases where WebForms are the appropriate solution and other cases where ASP.NET MVC may be a viable option. The most important thing is to be objective, consider all of the goals and constraints, and make an educated decision.

As a final data point on the suggested demise of WebForms, I would just like to mention that there is another highly successful ASP.NET application we are all familiar with, which will not be migrating to ASP.NET MVC either – Sharepoint!


Bmuzammil Spears
Before I say anything# I'm not really a Pro. So, don't mind if I say something that makes no sense lol!~ . But, Module development in MVC for DNN is possible:

So, basically migration to MVC for DNN will be considered in a near future, if not now?
Yes, I know you said it's not necessary for DNN to migrate. =) / Thanks for this Blog post / Got my answers.

And if DNN switched to MVC would it make DNN even robust than it is today???????
Why not slowly switch to MVC as a BETA project.
Bmuzammil Spears Saturday, April 9, 2016 3:12 AM (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