I am here to begin this series related to .NET Core tutorials. In the first part of the series, we will go through the what and why of .NET Core and the related concepts.

Let’s start by posing some fundamental questions.

What is .NET Core?

.NET Core is a fast, modular, cross-platform, and open source platform for developing general purpose applications. Currently, it supports console apps, Libraries, Web Applications/Services, Windows 10 UWP and Xamarin forms.

.NET Core includes .NET Core, ASP.NET Core and Entity Framework Core. These products are actively developed by the .NET team and in collaboration with a community of open source developers

The characteristics given below best define .NET Core.

What does .NET Core contain?

The .NET Core platform is made of several components, which includes the managed compilers, the runtime, the base class libraries and Application models such as console apps, ASP.NET MVC & API apps.

.NET Core comprises of the parts given below.

.NET Core Versioning

.NET Core is not the name of the product, which was started initially. However, the changes are big and it’s almost re-writing from scratch. Hence, it makes more sense to rename them. In the screenshot given below, the left side shows the old name and corresponding new names are on the right.


.NET Core compilation process

Now, let’s look at .NET Core compilation process, as it’s different from traditional processes.


Source: GitHub

.NET Framework Vs .NET Core

.NET platform was first announced by Microsoft in 2000 and then evolved. .NET Framework has been the primary .NET product produced by Microsoft during a 15+ year span.

Before comparing them, let me tell one thing -- .NET Framework (4.x) is still very much alive and should be used for any existing Workloads. It’s a time tested Framework for the Windows environment.

Also, there are some Workloads (WPF/Win Forms/Web Forms etc.) which can only be run in traditional .NET Framework. The image given below explains this.


Source: GitHub

The major differences between .NET Core and .NET Framework are given below.

When to use what?

Now, the classic questions comes about use cases that when should I go for Core or when with traditional framework.

Workloads, where it can’t be used:

Workloads where it can be used (with some re-writing):

Workloads where it should be used

Conclusion

In this article, we looked at what .NET Core is, along with its internal components, compilation process; and how it’s different from traditional .NET Framework. In the end, we have gone through its use cases. I will cover other aspects of .NET Core in subsequent parts.