ASP.NET MVC 6 vNext

I am a little late to the party with this one, but Microsoft recently announced the next version of ASP.NET MVC which will be version 6 and is code named vNext. What they are doing here is very cool and represents quite a major overhaul of the technology.

ASP.NET MVC 6 vNext

ASP.NET MVC 6 vNext

Here are the main features summarised :

  • Optimized for Cloud and on premise servers.
  • ASP.NET MVC and Web API have been merged into a single programming model.
  • New JSON based project structure.
  • No need to recompile for every change. Just hit save and refresh the browser.
    • Compilation done with the new Roslyn real-time compiler.
  • Dependency injection out of the box.
  • Side by side deployment of the runtime and framework with your application.
  • Everything packaged with NuGet, Including the .NET runtime itself.
  • vNext is Open Source via the .NET Foundation and is taking public contributions.
  • vNext (and Rosyln) also runs on Mono, on both Mac and Linux today.

I especially like the fact that WebAPI is being merged with MVC as this will make a much easier and cleaner framework to use for full stack development. Rest based API’s are now pretty much the in-thing when it comes to programming your back-end, so it is good to see that Microsoft are making things easier there.

I still think there is a need for SOAP API’s with WCF, especially for maintaining legacy services infrastructures, but where you don’t need that level of infrastructure then Web API and Rest are certainly the way to go.

The other feature I am really pleased about is the side by side deployment of both your application and the .NET framework/runtime. This means that each website you deploy could be targeted against a different framework as opposed to picking the framework centrally from your server. This should make it much easier to manage servers where you have several sites deployed.

So, should everyone jump onto vNext when it is fully released? Not necessarily. vNext makes quite a lot of structural changes and large parts of the API have been removed to make things simpler. Also, vNext no longer relies on the System.Web namespace. Microsoft states there will be an upgrade path for existing MVC applications, but if your site is running fine on MVC 5, then you will most likely not be in a rush to upgrade, unless you really want to be on the bleeding edge. If you are embarking on a new site, then that may be the time to make the jump.

Scott Hanselman wrote an in-depth introductory post on vNext on his blog back in May. It is a very good read, I suggest you take a look.

My background has never been in web development, although I did develop a site with MVC, but this was back in the MVC 2 days, 2010/2011, so although I am not an expert, I know my way around the technology and I have been responsible for a few teams that have had to produce MVC sites as-well. I have always wondered whether I should dig into MVC and some of the newer javascript framework, but held off as I always had other things to be doing. But now that vNext is on the way, I might use this as my excuse to dive into web development in more detail.

I am also really pleased to see Microsoft embrace open source and start to address cross platform development. vNext has been fully open sourced via the .NET Foundation and is also accepting public contributions. Since the leadership change at Microsoft, they really have been changing their old draconian ways and turning into a much more forward thinking organisation. They are going out of their way to make sure vNext works with Mono, and working quite closely with the Xamarin team. They will not be supporting Mono on their paid for support plans, but they are incorporating testing of vNext with Mono in their Continuous intagration builds and ensuring anything that breaks gets fixed.

You can get more information from the official Microsoft vNext site.

This entry was posted in ASP.NET MVC, Commentary, WebAPI and tagged , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s