Learning paths · Skills · Intermediate

C# and .NET: how the runtime runs your code

What happens after you press build: IL, the JIT and its tiers, value and reference types, the garbage collector, Span, the async state machine, and how the generic host, ASP.NET Core and EF Core put it to work in a service.

0 of 14 done

The map

  • Not started
  • In progress
  • Done
  1. 01From source to machine codeIL, assemblies, the JIT0/2
  2. 02Types and memoryStructs, the GC, Span, generics0/4
  3. 03The modern languageNullability, records, LINQ0/3
  4. 04Asynchronous codeTasks, state machines, contexts0/2
  5. 05Building a serviceThe host, the pipeline, the database0/3
  6. 06Next: system designSame ideas, at service scale

Everything here is about .NET 10, the current long-term-support release (November 2025), and C# 14. Nearly all of it also holds for .NET 8 and 9; where a behaviour changed recently, the topic says which version. The examples were run as file-based apps (dotnet run file.cs) with SDK 10.0.402 and runtime 10.0.13 in the mcr.microsoft.com/dotnet/sdk:10.0 container on Linux x64. Byte counts and thread ids can differ on your machine.

Where this path leads