What is .NET Core? Is this the future of .NET? Is this will obsolete the existing platform? Is this backward compatible? If all this are buzzing in your mind, please take a cup of coffee and go through the below topic, I promise you when you have your last sip of coffee you will have brief idea about this booming topic.
Basic of .NET
.NET is a free, open-source development platform for building many kinds of apps. .NET is open source, using MIT and Apache 2 licenses. A .NET app is developed for and runs in one or more implementations of .NET. .NET Framework, .NET 5 (and .NET Core), and Mono are the three most important implementations of .NET. Below are the key concepts of .NET.
What is .NET Standard?
There are various implementations
of .NET. Each implementation allows .NET code to execute in different places—Linux,
macOS, Windows, iOS, Android, and many more. .NET Standard is a formal
specification of the APIs that are common across all these .NET
implementations.
The relationship between .NET
Standard and a .NET implementation is the same as between the HTML
specification and a browser. The second is an implementation of the first.
.NET Implementations
There are four .NET implementations
that Microsoft supports:
Glimpse of .NET Implementations
What to choose when? (.NET Framework and .NET 5(including .NET Core))
Microsoft maintains both runtimes
for building applications with .NET, and they share many of the same APIs. This
shared API is what is called the .NET Standard.
Pick .NET 5
ü If there is a new application to build, and
have a choice between .NET Core and .NET Framework, .NET Core is the way to go.
ü If the application need cross platform implementation(Windows, Linux, and macOS)
ü Microservice architecture supported, so it
allows the cross platform service developed under .NET framework, Ruby, Java
etc communicate within another
ü Containers are the VMs of today. .NET Framework can be used on Windows
containers but .NET core is more modular, flexible and lightweight and after containerize because
of it’s cross platform nature it can deploy in various Docker(ex:- Linux Docker
containers)
ü .NET CORE is one of the best performing one
among web based frameworks in terms of performance and scalability
Pick .NET Framework
ü If existing application is .NET framework and
there is no mind to change it
ü The old technologies are using in the project which
are not yet incorporated in .NET CORE(ASP.NET webforms , Visual Basic and F#)
ü In cases where the libraries or NuGet packages
use technologies that aren't available in .NET Standard or .NET 5 then it is
required the .NET framework.