I have just updated the ASP.NET Core Boilerplate Visual Studio extension with a new project template targeting ASP.NET Core. 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.
Well, the obvious thing is that this template targets ASP.NET Core 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 Core 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 description:
- Performance improvements derived from using ASP.NET Core. ASP.NET Core is much improved and no longer uses
System.Web, so it uses a lot less memory.
- 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.
- The default ASP.NET Core project template uses Bootstrap-Touch-Carousel and Hammer.js for a nice touch friendly carousel control on the home screen.
- There is now a single controller action responsible for displaying errors. This is a lot simpler and a great improvement over MVC 5.
- The logging and caching services are now built into ASP.NET Core, so we use them instead.
ASP.NET Core 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 ASP.NET Core 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 Core GitHub project, so far, I've had one pull request accepted and a few suggestions acted on.
ASP.NET Core 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.