Whats New in ASP.NET 5 MVC 6 Boilerplate

I’ve just updated the ASP.NET MVC Boilerplate Visual Studio extension with a new project template targeting ASP.NET 5 MVC 6 Beta 6. This post is just a quick one to talk about what’s new and different about this version of the template compared to the ASP.NET 4.6 MVC 5 version.

What’s New

Well, the obvious thing is that this template targets ASP.NET 5 MVC 6 which is currently still in beta. In particular I am targeting Beta 6 which is the current stable version. I will be regularly updating the template with each new beta until ASP.NET 5 is released sometime in November according to Microsoft.

There are not too many new improved features over the ASP.NET 4.6 MVC 5 version but here is a quick summary:

  1. Performance improvements derived from using ASP.NET 5. ASP.NET 5 is much improved and no longer uses System.Web, so it uses a lot less memory.
  2. Using NPM and Bower to get CSS and JavaScript scripts rather than NuGet. This means you have a lot more choice and get the latest versions straight from the source.
  3. Switched from LESS to SASS for CSS. This decision was made because SASS seems to be more popular and the upcoming Bootstrap 4 has also made the same decision.
  4. Gulp is used instead of the standard ASP.NET 4.6 bundling and minification feature. Not only that but Gulp is also configured to optimize images, rebuild CSS and JavaScript on file change, lint the CSS and JavaScript for common errors and warnings and measure the speed of your site using Google Page Speed.
  5. The default ASP.NET 5 project template uses Bootstrap-Touch-Carousel and Hammer.js for a nice touch friendly carousel control on the home screen.
  6. There is now a single controller action responsible for displaying errors. This is a lot simpler and a great improvement over MVC 5.
  7. The logging and caching services are now built into MVC 6, so we use them instead.

What’s Missing

ASP.NET 5 is still in beta and there are a lot of third party libraries that don’t yet support it. Support will be added as soon as it becomes available. I have contacted all three project owners and can confirm that support will be added soon.

The new .NET Core runtime does not currently support the System.ServiceModel.Syndication namespace which is used to build an Atom feed. The .NET Core runtime is still being targeted but the Atom feed will not work and is excluded using #if pre-processor directives. I have raised this issue on the .NET teams GitHub page here. Please do go ahead and show your support for the feature.

There are other issues around MVC 6 missing features from MVC 5 including no support for HttpException which I will be looking into adding soon. I am also looking into submitting any improvements I make to the ASP.NET 5 GitHub project, so far, I’ve had one pull request accepted and a few suggestions acted on.

Conclusions

ASP.NET 5 is still in beta but hopefully this project will give an understanding of what can be done with it. There are still missing features but it’s surprisingly usable at the moment.