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.
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.
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.