6 reasons to switch to .NET Core

At VI Company, we develop most of our software in .NET MVC (currently at version 4.6.1) and we prefer to keep our projects running on the latest technologies to be able to offer the best experience possible to our end users.

Last week Microsoft released the long awaited first version of ASP.NET Core. To prepare for this release, my colleague Joost and I attended a two-day workshop hosted by Damian Edwards and David Fowler at NDC Olso.

NDC Oslo


As the new framework is not a successor to the widely used .NET Framework, but rather a complete re-write, considering a move to the .net core should not be rushed. The workshop offered us a chance to get to know all the details first hand from its developers.

During the workshop, we learned about the inner workings of .NET Core by working through small assignments and by diving into the source code of the framework itself. To share some of our takeaways, we've composed a list of the top reasons to switch:

  1. Multi-platform hosting
    .NET Core 1.0 is multi-platform. You can now host your .NET applications not only on Windows but also on OSX and Linux.

  2. Less framwork, more speed
    The entire framework is split up into NuGet packages. You won’t get the whole framework by default, you have to specify the components you want to use in the project.json file. The absence of all the framework stuff you don’t need makes your project incredibly fast!

  3. One framework
    MVC and WebAPI functionality is now combined into one framework. This is great if your application needs both and it removes some inconsistencies in the programming api’s.

  4. Improved structure
    The project structure has changed. There is no App_start, App_Data, package.json and Global.asax anymore. The Global.asax file is replaced by the Startup.cs file and the package.json by the project.json. The appsettings which formerly existed in the web.config are moved to the appsettings.json file.

  5. Build-in support for Dependency Injection
    The framework has built-in support for Dependency Injection, which is quite convenient. But no worries, you can still use your favorite DI container like AutoFac or Unity if you want.

  6. Tag helpers
    Introduction of tag helpers. The former HTML helpers like Html.BeginForm are removed and replaced by attributes on html elements. As the new tag helpers are much easier to read, understand and work with, it will definitely improve your cooperation with your frontender.


Should you use it?

Although .NET Core is cool, fast and runs on multiple platforms it is not as mature as the ASP.NET 4.6 platform. I don’t think we should switch all our projects to .NET Core 1.0 immediately. Besides the fact that it would be an enormous amount of work I don’t think this framework is the right choice for every project.

For our new projects we will consider .NET Core carefully before we start programming. Migration of existing projects will occur in case the project would benefit from a migration.

After the workshops I am really enthusiastic about where .NET Core is going. I'm sure we'll move our development over to the new framework more and more while the framework matures. In the meantime, the developers at VI Company will make sure to learn all there is to know about it!

You can find the workshop files in Damian Edwards’ repository on Github.