.NET Core is the latest general purpose development platform maintained by Microsoft. It works across different platforms and has been redesigned in a way that makes .NET fast, flexible and modern. This happens to be one of the major contributions by Microsoft. Developers can now build Android, iOS, Linux, Mac, and Windows applications with .NET, all in Open Source.
In this tutorial, we will cover .NET Core and a few new innovations including the .NET Framework updates, .NET Standard, and Universal Windows Platform updates, etc.
The following are the major characteristics of .NET Core −
.NET Core is an open source implementation, using MIT and Apache 2 licenses.
.NET Core is a .NET Foundation project and is available on GitHub.
As an open source project, it promotes a more transparent development process and promotes an active and engaged community.
Application implemented in .NET Core can be run and its code can be reused regardless of your platform target.
It currently supports three main operating systems (OS)
Windows
Linux
MacOS
The supported Operating Systems (OS), CPUs and application scenarios will grow over time, provided by Microsoft, other companies, and individuals.
There can be two types of deployments for .NET Core applications −
Framework-dependent deployment
Self-contained deployment
With framework-dependent deployment, your app depends on a system-wide version of .NET Core on which your app and third-party dependencies are installed.
With self-contained deployment, the .NET Core version used to build your application is also deployed along with your app and third-party dependencies and can run side-by-side with other versions.
All product scenarios can be exercised at the command-line.
.NET Core is compatible with .NET Framework, Xamarin and Mono, via the .NET Standard Library
.NET Core is released through NuGet in smaller assembly packages.
.NET Framework is one large assembly that contains most of the core functionalities.
.NET Core is made available as smaller feature-centric packages.
This modular approach enables the developers to optimize their app by including just those NuGet packages which they need in their app.
The benefits of a smaller app surface area include tighter security, reduced servicing, improved performance, and decreased costs in a pay-for-what-you-use model.
.NET Core Platform contains the following main parts −
.NET Runtime − It provides a type system, assembly loading, a garbage collector, native interop and other basic services.
Fundamental Libraries − A set of framework libraries, which provide primitive data types, app composition types and fundamental utilities.
SDK & Compiler − A set of SDK tools and language compilers that enable the base developer experience, available in the .NET Core SDK.
‘dotnet’ app host − It is used to launch .NET Core apps. It selects the runtime and hosts the runtime, provides an assembly loading policy and launches the app. The same host is also used to launch SDK tools in much the same way.