.NET (dotnet) is a developer platform made up of toolsprogramming languages, and libraries for building many different types of applications.

So, there are various implementations of .NET (dotnet). Each implementation allows .NET code to execute in different places—Linux, macOS, Windows, iOS, Android, and many more. This framework has two main versions:

  1. Framework is the original implementation of .NET. It supports running websites, services, desktop apps, and more on Windows.
  2. Core is a cross-platform implementation for running websites, services, and console apps on Windows, Linux, and macOS. .NET Core is open source on GitHub.

Then, Xamarin/Mono is a .NET (dotnet) implementation for running apps on all the major mobile operating systems, including iOS and Android.

The .NET Standard is a formal specification of the APIs that are common across .NET implementations. This allows the same code and libraries to run on different implementations.

Therefore, the two major components of .NET (dotnet) Framework are the Common Language Runtime and the .NET Framework Class Library.

  • The Common Language Runtime (CLR) is the execution engine that handles running applications. It provides services like thread management, garbage collection, type-safety, exception handling, and more.
  • The Class Library provides a set of APIs and types for common functionality. It provides types for strings, dates, numbers, etc. The Class Library includes APIs for reading and writing files, connecting to databases, drawing, and more.

Summarize, .NET (dotnet) applications are written in the C#, F#, or Visual Basic programming language. Code is compiled into a language-agnostic Common Intermediate Language (CIL). Compiled code is stored in assemblies—files with a .dll or .exe file extension.

At the end, when an app runs, the CLR takes the assembly and uses a just-in-time compiler (JIT) to turn it into machine code that can execute on the specific architecture of the computer it is running on.