.NET Core is a general purpose development platform maintained by Microsoft and the .NET community on GitHub.
The following characteristics best define .NET Core:
.NET Core is composed of the following parts:
(Source: official documentation.)
The global.json
file is extremely powerful and unique to .NET Core
and ASP.NET Core
applications.
Fill with examples of using Docker on .NET Core platform, official base images for .NET Core application and self-hosted .NET Core app as well
Every .NET library and programming language utilize a set of elementary data types like System.Int32
, System.Object
, System.Type
or System.Uri
. These data types form the base of all other structures including all custom written .NET libraries. All these types are hosted in a base library, which is either mscorlib
or System.Runtime
.
The libraries which can be used with .NET Core are based on System.Runtime
core library while for the .NET Framework (the Windows component) they are based on mscorlib
. This essential difference lead to...
System.Object, mscorlib
while a .NET Core library would expect System.Object, System.Runtime
.System.Runtime
to the mscorlib
in the .NET Framework. This library is otherwise (nearly) empty but enables the usage of System.Runtime
based PCL libraries on the .NET Framework.mscorlib
to the System.Runtime
in a future version of .NET Core.netstandard
as a method of unification between the two core libraries.AND out of that, countless questions on Stack Overflow.
If you need more info, you can go and see official microsoft documentation
How components in .NET Core are versioned.
.NET Core consists of multiple components that are each versioned independently and can often be mixed and matched.
Shared Framework. This contains the APIs and the Virtual Machine and other runtime services needed for running .NET Core applications.
The current .NET Core Virtual Machine is called CoreCLR. This executes the .NET bytecode by compiling it JIT and provides various runtime services including a garbage collector. The complete source code for CoreCLR is available at https://github.com/dotnet/coreclr.
The .NET Core standard APIs are implemented in CoreFX. This
provides implementations of all your favourite APIs such as
System.Runtime
, System.Theading
and so on. The source code for
CoreFX is available at https://github.com/dotnet/corefx.
Host is also called the muxer or driver. This components
represents the dotnet
command and is responsible for deciding what
happens next. The source for this is available at
https://github.com/dotnet/core-setup.
SDK is also sometimes called the CLI. It consists of the
various tools (dotnet
subcommands) and their implementations that
deal with building code. This includes handling the restoring of
dependencies, compiling code, building binaries, producing packages
and publishing standalone or framework dependent packages. The SDK
itself consists of the CLI, which handles command line operations
(at https://github.com/dotnet/cli) and various subprojects that
implement the various operations the CLI needs to do.
Various official and unoffical packages, tarballs, zips and installers for .NET Core (including those available on https://dot.net/core) provide .NET Core in many variants. Two common ones are SDKs and Runtimes.
Each SDK install or Runtime install contains a number (possibly 0) of hosts, sdk and shared framework components described above.
.NET Core Runtime contains
.NET Core SDK contains