Who Killed ASP.NET MVC?

I recently gave a presentation at a .Net Developer Group meeting about the architecture of VoiceModel and how it promoted reuse by using ASP.NET MVC as the underlying technology. After the presentation I was having a discussion with the attendees and one of them said, "I heard that MVC is a dying technology." I was kind of taken aback by this comment and wondered where he got this information from. Did I miss some news flash from Microsoft?  He could not remember the source and went on to say, "Yeah, I heard that it is being replaced by ASP.NET Web API".  I assured him that it did not seem possible that Microsoft would abandon a technology that is obviously popular with developers and has an upcoming release with MVC 4, and that Web API is just an extension of MVC that serves a very specific purpose.

For those of you not familiar with Web API it is part of the upcoming MVC 4 release and allows developers to easily create RESTful web API's using the familiar MVC technologies of controllers and the routing infrastructure. Microsoft has moved their focus for creating RESTful API's from WCF (i.e. WCF Rest Starter Kit) to MVC.  Having developed REST API's with both technologies I will say that using ASP.NET Web API is much easier to use and allows you to adhere more easily to REST principles. In fact if you go to  CodePlex to get the MVC REST Starter Kit you will see that the it is no longer supported and recommend using ASP.NET Web API.  I would highly recommend anyone developing REST API's to take a look at this new technology. But it does not replace MVC. You still need a view engine for rendering some pages and Razor is still a great tool for rendering server side information.  But if you are using AJAX in your web pages you may want to consider using Web API instead of the usual controller to exchange information in JSON.  And that is the beauty of Web API, it dovetails nicely with MVC.

So why would a very useful addition to MVC cause its demise?  Was there something I was missing about the future of MVC? This prompted a search of the Internet. Because, as you know, if it is on the Internet it is true.  No official statement from Microsoft. I think I found the source of this information in a blog post titled "Microsoft Declares the Future of ASP.NET is Web API". This article is written by Shaun Walker, a Microsoft MVP and original creator of DotNetNuke.  He first excites emotion with a picture of a sinking ship with "MVC" on the bow and a life boat saving people from the water with "Web API" on its side. He then continues to make some pretty outlandish comments on the future of MVC by looking at its history and taking some Microsoft comments out of context.  The article seems to be pitting Web Form developers against MVC developers and justifies the authors decision for sticking with Web Forms for future development of DotNetNuke.  This article obviously stirred a lot of controversy as you can tell by reading the comments and by looking at this rebuttal in a blog titled "ASP.Net MVC is the Frontier".

As you can probably tell from my tone I do not believe Mr. Walker's assessment on the future of MVC and firmly believe that MVC will not die. In fact it will flourish. It would be nice to hear an official statement from Microsoft on Mr. Walker's interpretation, but they tend to stay quiet on these matters. I agree with many of the comments on this article that Web API is just another tool in the ASP.NET arsenal and you have to pick the right tool for the job. MVC is a great tool for VoiceModel in that it allowed for easily developing a lightweight, robust, and reusable framework for developing voice/speech applications.  Having developed voice applications for many years, even prior to MVC, I will say that MVC is a better tool than Web Forms for developing these types of applications. But there are some simple web applications where Web Forms is a great choice for rapidly developing a user interface.  If you are developing a highly interactive rich web user interface that has better performance, I would go with MVC.

So that is how rumors get started. I feel confident now that no one killed MVC and it will have a long life. But you be the judge. Look at these referenced articles and form your own opinions. I believe Microsoft listens to developers and forms their strategy for tool development based on the developer community. What do you think the future of MVC should be? Thumbs up, or thumbs down?


Popular posts from this blog

Using Claims in ASP.NET Identity

Customizing ASP.NET Identity in MVC 5

Customizing Claims for Authorization in ASP.NET Core 2.0