.NET Ecosystem
March 02, 2021
Runtime
A runtime is responsible for running your compiled code in some environment. By environment, we refer primarily to operating systems that abstract the bare metal hardware.
All .NET runtimes implement the Common Language Runtime (CLR), which is responsible for interpreting and running compiled .NET applications.
.NET has several runtimes with different operating system and API support.
Runtime | Environment |
---|---|
.NET Framework | Windows |
.NET Core | Windows, Mac OSX, Linux |
Xamarin | Android, iOS |
Language and Standard Library
Languages
The CLR executes an Intermediate Language (IL), which is comparable to byte code for Java. So as long as our application can be compiled into IL, it can be run on the any runtime.
The officially supported languages from Microsoft are C#, F# and Visual Basic.
Standard Library
.NET Standard includes the bulk of the common libaries we use to build applications (e.g. date, string, collections, exception, etc.). It is implemented by all the runtimes so is perfect for writing libraries that can be shared between the runtimes.
Each of the different runtimes will add additional libraries to support features of that runtime. For example, Xamarin will have libraries to access the GPS, accelerometer or camera on a phone.
ASP.NET, Entity Framework, etc.
Confusingly, both .NET Framework and .NET Core provide seperate implementations of some popular Microsoft supported libraries. They are similar in name, but their usage and features could be quite different.
Community
Microsoft has built a rich platform with libraries for building anything. The community has also contributed additional open and proprietary libraries. All these libraries can be accessed through the Nuget package manager.
Miscelaneous
- .NET Core is being rebranded to .NET, with the first version being .NET 5
- .NET Framework 4.8 has been announced as the last release, with continued support for security and bug fixes