.NET is a free, open-source, cross-platform runtime, not a programming language. Compilers turn C#, F#, Visual Basic, and other supported languages into Common Intermediate Language (CIL). CoreCLR executes that code and provides services including just-in-time compilation and memory management. Because the languages share CIL and a runtime, code written in one .NET language can use code written in another. section 1.1
Figure 1.1 .NET compilers, CIL, and CoreCLR
Follow the path from language compilers through CIL to CoreCLR. section 1.1
The name reflects a platform transition. .NET Framework preceded the cross-platform .NET Core; the Core name was dropped with .NET 5. Current .NET continues that Core lineage rather than being a new name for .NET Framework. section 1.0
Choose a .NET application model for the job:
- Build web services with ASP.NET Core. Kestrel can host them across platforms and in containers. section 1.2
- Build desktop, mobile, or browser applications with options including WPF, MAUI, and Blazor. section 1.2
- Use C# scripts in game engines such as Unity and Godot, or target devices such as the Raspberry Pi. section 1.2 section 1.2.1
Breadth does not make .NET the default choice everywhere. Web services and applications are common uses; for data science, Python may be a better starting point. Weigh performance, security, team familiarity, and available support against the needs of the application. section 1.3
From a console program to a container
A .NET 6-style console program can put top-level statements in one file and move reusable behavior into a class in a namespace. For a longer-running ASP.NET Core service, container setup needs a different detail: a launch profile bound to localhost will not work the same way inside a container. Bind the service to an appropriate address instead. .NET 7 and later can publish a basic container image; customized images still need a Dockerfile. section 2.4 section 13.3




