About this post

This post explains to you what .NET Core is, what it is used for and tells you whether you need to use it or not.

1. What is .NET Core?

.NET Core is a new platform from Microsoft made up of a new runtime and a set of libraries. The main reason for it existing is to make .NET run cross-platform which means it will run on Windows, Linux and macOS.

2. What language do you write .NET Core applications in?

.NET Core applications are written in C#, F# and VB. This means you can write C# code on Linux and Mac now, this is why applications like Visual Studio Code and Visual Studio for Mac have been made.

3. What type of applications would you use .NET Core for?

You can write Console applications, Web APIs, and ASP.NET websites right now with .NET Core. It's not fully written yet, so the tooling is limited at the moment.

4. Do I need to learn .NET Core?

You only need to learn .NET Core if you want to write .NET applications which need to run cross-platform. If you are just building applications which are going to be hosted on Azure or on a Windows server somewhere you can continue to write them in the full .NET Framework.

5. Will it replace the full .NET Framework?

No it's not going to replace the full .NET framework. The full framework continues to exist and be improved alongside .NET Core.

6. Is it compatible with the full .NET Framework?

Yes, .NET Core is compatible with certain versions of the full framework as well as Xamarin's Mono framework. It can be confusing to understand which version of one is compatible with the other versions. To help with this they have created the .NET Standard.

7. What is .NET Standard?

.NET Standard was created to help you know what version of the .NET framework you need to target if you want your code to be compatible with other different types of .NET framework. Currently there are 3 types. Full .NET Framework, Mono (used for Xamarin) and .NET Core. It is hard to know which version of which framework is compatible with others.

.NET Standard isn't anything physical and it's not even code itself, its just a set of features which a version of a .NET Framework needs to have to be compatible with others targeting it. This means even if you are try to talk to code from a different version of the .NET Framework it will have the necessary features to be compatible if it targets the same version of .NET Standard.

To help you understand this, try to think of it like this:

TVs, Videos, Satellite and freeview player/recorders all communicate with each other via cables. Over the years there have been many different cables to the TV, such as RF, Scart, Component and HDMI. 

Think of each of these different cables as a version of the .NET Standard, so the latest version of .NET standard is represented by HDMI.

Think of the devices that connect together as different versions of the different .NET frameworks.

It is possible to get the different devices (frameworks) to talk to each other because they've been made to work with the necessary cable (Standard) HDMI, or Scart etc.

How can I learn more about .NET Core?

Follow along with this video course to show you How to build your first ASP.NET Core Web Application

If you're not into following video course and you want to read more about .NET Core then have a read of Jamie Taylor's blog A Journey In .NET Core

Paul Seal

Umbraco MVP and .NET Web Developer from Derby (UK) who specialises in building Content Management System (CMS) websites using MVC with Umbraco as a framework. Paul is passionate about web development and programming as a whole. Apart from when he's with his wife and son, if he's not writing code, he's thinking about it or listening to a podcast about it.

Proudly sponsored by

Moriyama

  • Moriyama build, support and deploy Umbraco, Azure and ASP.NET websites and applications.
AppVeyor

  • CI/CD service for Windows, Linux and macOS
  • Build, test, deploy your apps faster, on any platform.
elmah.io

  • elmah.io is the easy error logging and uptime monitoring service for .NET.
  • Take back control of your errors with support for all .NET web and logging frameworks.
uSync Complete

  • uSync.Complete gives you all the uSync packages, allowing you to completely control how your Umbraco settings, content and media is stored, transferred and managed across all your Umbraco Installations.
uSkinned

  • More than a theme for Umbraco CMS, take full control of your content and design with a feature-rich, award-nominated & content editor focused website platform.
UmbHost

  • Affordable, Geo-Redundant, Umbraco hosting which gives back to the community by sponsoring an Umbraco Open Source Developer with each hosting package sold.