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!