|
|
Jan
22
Posted by:
Shaun Walker
1/22/2010
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!
Tags:
26 comment(s) so far...
Re: ASP.NET MVC and DotNetNuke
I Agree with DNN decision on this... ASP.NET MVC is nice... but not very mature yet...
If you compare it to something like.... lets say Django... you see how ASP .NET MVC need too grow until it is mature enough, do I also believe ASP.NET MVC is growing...
Also like you said DotNetNuke would have to change a lot.. its like make a new DNN version... no upgrade support... or at least not reliable…
By Miguel Clara on
1/22/2010
|
Re: ASP.NET MVC and DotNetNuke
Good analysis! There is an old saying that runs something like 'if it is not broken, don't fix it" This is a perfect case.
There is no real need to upgrade to the latest programming technology(read as in 'fad"), just because it is there. There should be some very good engineering reasons in back of any technology shift.
That said, i congratulate DNN in not adopting every latest technology, just because it is there. There is nothing technologically incorrect with Web Forms .... just look at the current use/adoption rate for COBOL ....
By Hans Zassenahaus on
1/22/2010
|
Re: ASP.NET MVC and DotNetNuke
I can't believe you're not willing to jump on the latest bandwagon just because it makes no practical sense. :-)
By David OLeary on
1/22/2010
|
Re: ASP.NET MVC and DotNetNuke
Always good to listen to people speak in absolutes. What about supporting both? Plenty of examples exist about hosting both platforms in a single solution and with the appropriate development governance, you can effectively transition products from one to the other (IF the team finds it useful). Especially MVC 2! Although MVC is not as mature as web forms in many ways (controls), just the benefits of the View engines and TDD are a compelling case to abandon web forms for *most* web development. When you need to support a control, have a method of integrating web forms into your platform. MVC is a step in the right direction. We'll see what happens...
By Eric Swanson on
1/22/2010
|
Re: ASP.NET MVC and DotNetNuke
Miguel,
I think you completely missed the point. The decision has little to nothing to do with the maturity of ASP.NET MVC. Beyond a default view engine and the fact that they run on top of .NET, the two platforms bear little resemblance. There simply isn't enough incentive to embark on a voyage as treacherous as migrating a project as large as DNN from WebForms to ASP.NET MVC.
What bothers me most is that your comment spreads its own FUD by claiming that ASP.NET MVC isn't yet very mature. This couldn't be further from the truth.
Please refrain from making such falsified claims, in the future. Comments like yours have the ability to disrupt progress under a false pretense.
By senfo on
1/22/2010
|
Re: ASP.NET MVC and DotNetNuke
Shaun,
I appreciate that from a business case it would be extremely difficult to migrate from WebForms to MVC. It would require you to force a big change in the current DNN development community.
That being said, to say that the MVC pattern is a special case and to play it off almost as if it were a fad, is misinformed. FIrst, MVC is by no means a new paradigm, it's only new in the .Net community. Some will argue this case, but after having developed large projects using both WebForms and MVC, the MVC pattern is better suited to making rich internet applications and platforms.
While WebForms work fine for developing smaller applications rapidly, when a development team begins building larger web applications and needs more control, the page controller model simply gets in the way and becomes exceedingly cumbersome. The page abstraction gets in the way of development instead of helping. I'm sure you've run into this a number of times while developing the DNN core.
Again, I understand the business decision to continue with the WebForms based DNN, but I'm disappointed DNN will seemingly never have a MVC version. For our team, it will relegate DNN to only those project that need CMS with only minor additional functionality. Without more attention to the UI and User Experience of the DNN core, we'll be forced to look elsewhere for those needs as well.
Sincerely,
Shane
By Shane Kempton on
1/22/2010
|
Re: ASP.NET MVC and DotNetNuke
If you look at our track record, you will notice that we have always tried to offer support for every new technology which comes out of the ASP.NET group at Microsoft. A great example is in our application extensibility area where we allow developers to create Modules using the Web Site Project model, the Web Application Project model, as fully compiled Web Controls, or even as in-line script files. Another example is our data access layer where you can use a Provider model, Linq-to-SQL, NHibernate, Entity Framework, etc... Flexibility is one of our foundational pillars and it has been key to our long term growth and success. So, when ASP.NET MVC was announced it created a real dilemma for us. For the first time we encountered a technology which we could not support directly in the DotNetNuke framework. This is because of the incompatibilities between the WebForms and ASP.NET MVC programming models I outlined above. There are over 500,000 websites running DotNetNuke in production today. With an install base so large, an ecosystem with thousands of commercial extensions, and a culture that refuses to leave users on an evolutionary dead-end ( ie. no upgrade option ) it would be irresponsible for us to even consider a migration to ASP.NET MVC. So in the end, although we would have loved to support ASP.NET MVC, it was impossible. That being said, we have stood quietly on the sidelines for the last year as we listened to a vocal minority of ASP.NET MVC advocates dominate the airwaves with their personal opinions and agendas. It has now reached a point where we feel that it is impacting the overall health of the ASP.NET community, which is why I felt compelled to weigh in. I don't expect everyone to agree with my analysis and I do apologize to anyone who feels personally offended by my 'zealot' characterization.
By Shaun Walker on
1/22/2010
|
Re: ASP.NET MVC and DotNetNuke
Shane, I do understand that MVC is not a new paradigm - I actually used a number of legacy 'MVC' frameworks in the past before I started focusing solely on the Microsoft platform for development. One of the biggest challenges I have with ASP.NET MVC is not the framework itself, but the conclusions which people come to in regards to what problems it is intended to solve. For example, you mention that UI and User Experience need attention in DotNetNuke ( and I definitely agree ) but I have no idea how you would come to the conclusion that ASP.NET MVC is the solution to that problem. It is these types of comments which really make me scratch my head, as based on my understanding of ASP.NET they could be solved equally as well in WebForms as they could be in ASP.NET MVC.
By Shaun Walker on
1/22/2010
|
Re: ASP.NET MVC and DotNetNuke
Mark Hoffman,
I sincerely hope that people did not get the impression that I think ALL developers who are using ASP.NET MVC are zealots - this is not definitely not the case. I wholeheartedly believe that developers need to choose the right tool for the task based on customer requirements. The zealot comment was directed towards an extremely vocal minority who feel that it is their job to eradicate WebForms from the face of the earth.
I respect your opinion that DNN is headed down an evolutionary dead-end because of it reliance on WebForms, but I could not disagree with you more. WebForms has almost 10 years of maturity under its belt and a massive vendor community which offers exceptional tooling support and significant developer productivity benefits.
If DNN is on an evolutionary dead-end then it would also mean that Sharepoint, SDL Tridion, SiteCore, Ektron, and Telligent Evolution are also doomed. Same with control vendors like Telerik, Infragistics, DevExpress, and ComponentOne because they derive a bulk of their revenues from WebForms developers. And what about the millions of customers who are utilizing WebForms-based solutions as mission critical aspects of their business - should they all begin budgeting for enormous conversion projects in the near future? I think not.
Both WebForms and ASP.NET MVC have a leadership role in the future of the ASP.NET platform. I can say this confidently because I have been told this directly by multiple decision makers in the Web Platform and Tools Team at Microsoft. And this is ultimately the core of what I was trying to communicate in this blog post ( unfortunately the message seems to have been lost in the controversy ).
By Shaun Walker on
1/23/2010
|
Re: ASP.NET MVC and DotNetNuke
You may be 20% more productive coding with RoR or MVC or whatever, but you have to code 95% of your web application yourself, from hello world to delivery.
With DotNetNuke, you have little to develop, because everything is already there in the ecosystem. In most cases, coding is only needed for the 5% of the project where you could not find a module that meets your needs.
No zealotry here. I like Ruby, and having developped an application with Rails for one of my customers, I have a live experience with it. I also had a look at the interesting asp.net mvc samples and tutorials, with an open mind. But with DotNetNuke, people deliver solutions with little or no coding. That's where real productivity is.
Well... interpreted languages have an edge, in that they can generate classes and methods on the fly from a standardised database schema. More productive, but less performant. It's a draw here for me.
By Benoit Sarton on
1/25/2010
|
Re: ASP.NET MVC and DotNetNuke
A huge player for future development is Silverlight. Silverlight 4 will produce a lot of exceptional applications in the future. Silverlight works 100% with DotNetNuke. For examples see: dnnsilverlight.adefwebserver.com/
By Michael Washington on
1/23/2010
|
Re: ASP.NET MVC and DotNetNuke
Shaun
What about the option of following the strategy you have outlined but at the same time starting work on DotNetNuke MVC.
So much database design is already there waiting to be reused. I’m thinking some of the data controller classes could reused as is to retrieve and persist data.
How about you and another developer starting off the high level design architecture. As you say not a migration but a joint approach. It will keep DotNetNuke at the pinnacle of web development on the Microsoft platform for both Web Forms and MVC.
Telerik are starting down the MVC path and it’s the beginning of their journey and while it’s early days they are covering both bases. I’m sure other vendors will cease their work if there is clearly no call for it but for the moment they’ve made a start.
Best regards
Mike
By f3a on
1/24/2010
|
Re: ASP.NET MVC and DotNetNuke
I liked this post. I agree with you Shaun. DNN corp has its own stratigy and vision. let us think in the bright side, future may goes MVC ..... maybe until then, no fixes for something not broken :)
By Mohammed Gurban on
1/23/2010
|
Re: ASP.NET MVC and DotNetNuke
Ugh, really Shaun? Great decision ("If it ain't broke, don't fix it"), poor analysis of MVC.
By nkirkes on
1/22/2010
|
Re: ASP.NET MVC and DotNetNuke
I guess I didn't get the memo that Rails has lost "much of it's lustre". I'm a long-time .NET developer who has run, screaming, away from the .NET community to other platforms, largely Rails. It's not zealotry, it's not some silly nerd-rage or religious war. It's just that it's an order of magnitude easier and more productive than .NET and with a community that frankly, seems more informed. I think perhaps you should spend some time building Rails app and working with it's very active community before you make incorrect assumptions about it's vitality.
You seem to characterize proponents of ASP.NET MVC as zealots that are fracturing the community. That's unfortunate, because at least those people are trying desperately to move the .NET community out of it's deadly love-affair with WebForms.
In the end, I happen to agree with your stance on not migrating DNN over because it would be a nightmare and really serve no purpose. But I will also add that I think DNN is already headed down an evolutionary dead-end given that it's based on WebForms. Granted, the .NET community will continue to ooh and ahh over WebForms for a while yet, but eventually even they will figure out that there is a far better way of building web-apps that don't involve such a hideous architecture that is today's WebForms.
By MarkHoffman on
1/23/2010
|
Re: ASP.NET MVC and DotNetNuke
Mike, although it is technically possible to re-architect DotNetNuke in ASP.NET MVC, the bigger question to ask yourself is Why? What specific business problems will switching to ASP.NET MVC solve for DotNetNuke and its ecosystem? Like any company, we only have finite resources at our disposal; therefore, it is critical for us to maintain a laser-sharp focus on solving the most critical business problems faced by our users. Creating a parallel ASP.NET MVC version will create a ton of work for us, distract us from our goals, disrupt our community, and produce no quantifiable business value. Cathal Connolly recently reminded me of an old blog from Joel Spolsky which is a favorite of mine as well: Things You Should Never Do. I think it adequately sums up the reasons for not going down the path you are suggesting.
By Shaun Walker on
1/24/2010
|
Re: ASP.NET MVC and DotNetNuke
I am very pleased that Scott Guthrie, Corporate Vice President, .NET Developer Division, has now publicly weighed in on this topic: About Technical Debates (and ASP.NET Web Forms and ASP.NET MVC debates in particular). Its great to hear words of wisdom from the "Father of ASP.NET"... hopefully this will help restore some peace to the ASP.NET developer community.
By Shaun Walker on
1/24/2010
|
Re: ASP.NET MVC and DotNetNuke
Ultimately whether DNN survives or dies, does not depend on what Framework it is built on, but what it enables.
It is far more productive to make sure that developers can design their extensions using ASP.NET MVC or Web Forms or Iron Python or Iron Ruby, just as they already can do with any of the data strategies such as NHibernate, Linq to SQL or Entity Framework.
By Charles Nurse on
1/24/2010
|
Re: ASP.NET MVC and DotNetNuke
IMHO an mvc solution would be something else, perhaps even deserving a brand of its own.DotNetNuke stands for more than just code in webforms. Its a familiar way of doing things, a hot developer base and common customer skill set. Something already big with a life of ts own out there. Like Win XP. I might be wrong, but I mean to have observed a ripple run through the ecosystem as the pro and community editions were introduced.
The expensive part of an mvc solution will be growing it up, nuturing thrill about it, ...to achieve the popularity DotNetNuke has today. Please excuse my generalisation, but, put new wine into a new bottle, and both are preserved. Which does not answer the qeustion weather the DNN core team will build an asp.net mvc solution or not. But if they do, I just hope they give it another name.
By Neville Ogolla on
1/26/2010
|
Re: ASP.NET MVC and DotNetNuke
Agree with Anthony. I'm finding ASP.NET MVC as really modern technology, completely different approach.I think DotNetNuke MVC as new frontend project it's good idea, OSS community has enough resources to do that. Best Regards
By Paweł Wasilewski on
1/27/2010
|
Re: ASP.NET MVC and DotNetNuke
It's interesting how some people have responded... Iterpretting words that weren't said, and then even ignoring other statements altogether. (Sometimes in the same paragraph!
Great post Shaun. If nothing else, at least this will get the conversation moving, and for those that actually pay attention and listen, they will educate themselves on both technologies.
It has clearly been said by all of the right people at and around Microsoft. Both technologies serve different purposes, and both will live on. Let's all move on and develop! :)
By Will Strohl on
1/25/2010
|
Re: ASP.NET MVC and DotNetNuke
MVC is a pattern, which happens to be implemented on top of ASP.NET. I say it is implemented on top of asp.net because it uses the asp.net pipeline, not the webforms engine, so it is an asp.net application at its core.
I agree there is no reason to move DNN to MVC, it would be irresposible to do so. Much of what makes DNN popular is the sheer number of modules out there, and these would not be compatible***at all*** if the DNN core were migrated to ASP.NET MVC.
However there is a very compelling reason to move to an MVC style of development, and that is a more test accessible model. There is no reason why you can't do MVC development in DNN, I don't mean ASP.NET MVC, but rather MVC the pattern. As a matter of fact I developed a module, Tribalhut CRM (www.tribalhut.com for DNN using an MVC framework I developed.
You don't have to choose MVC at the core to use it for your own module development. MVC is simply a way of programming that can easily be achieved within dotnetnuke without a huge effort.
Microsoft would not even think of killing WebForms as the majority of their market share runs on it, not MVC. However what they did was stop the bleeding of developers that decided to go to different platforms (RoR and others) because they wanted to do MVC. There isn't just one way of doing things, and I for one am glad Microsoft recognizes this and helps people in whatever their choice is.
But hey!... that's just my 2 cents...
Rock on DNN.... 500k sites.... wow!
By Mitch Labrador on
1/27/2010
|
Re: ASP.NET MVC and DotNetNuke
Perhaps:
All the admin pages could stay as webforms.
All the controllers and database items could be used as is.
Skins would be unchanged.
The new part would be the MVC rendering framework.
?
Mike
By f3a on
2/8/2010
|
Re: ASP.NET MVC and DotNetNuke
I completely agee with the article by Joel about not rewriting from scratch but he does talk about being able refactor existing code. I'm wondering how much code could be reused as is and how much could be morphed.
On the question of "why" I'm afraid I'm going to answer that with a question. Why are Telerik pursuing it?
Best Regards, Mike
By f3a on
1/25/2010
|
Re: ASP.NET MVC and DotNetNuke
I agree with Shaun, DNN Corporation should focus on solving the most critical business problems faced by the user. One of the problems I am facing as a user is the chatty ( in terms of network traffic) nature of the DNN framework.
That said, I also think, from an evolutionary perspective, that it is healty to be able to adapt. Although the DNN corporation has limited resources, why couldn't there be a new project, DotNetNuke MVC. Let enthousiasts build DNN from the ground up again, learn from their findings. Maybe they will not improve the DNN Framework as it is, maybe they will. Anyhow, looking at the DNN core from a whole new perspective seems worthwile enough to start up a DNN MVC project. Whatever comes out from it, good or bad, will be beneficiary to the DNN Framework as a whole.
greetings,
Anthony Candaele www.webmove.be Belgium
By Anthony Candaele on
1/26/2010
|
Re: ASP.NET MVC and DotNetNuke
Keeping DNN on WebForms makes sense. Let's not jump into every new technology bandwagon for the sake of technology. No one wants to suddenly migrate tens of modules and skins to MVC. And for what benefit? It's all still the same HTML that gets sent to the browser.
I suggest people concentrate on learning on the new features of asp.net 4.0 and C#/VB.NET 4.0. For example, learn how to use routing instead of url rewrites.
By Tony Barken on
2/8/2010
|
|


Follow us on Twitter @DNNCorp or join the DotNetNuke Community on LinkedIn
|