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