dotnet-primer
Fifteen years of .NET 3.5? Here's everything that changed, and how to be productive with .NET 10, ASP.NET Core, EF Core, gRPC and containers.
Who this is for
Section titled “Who this is for”You know C# and .NET Framework well. You’ve shipped and maintained a large .NET 3.5 codebase for years. Modern .NET keeps the language and much of the base library, but the platform, the tooling and the idioms around them have changed a lot. This primer gets you productive on them quickly.
How it’s organised
Section titled “How it’s organised”- The learning path uses ASP.NET Core as its main thread. It introduces everything else along the way, starting with configuration, dependency injection and middleware. Follow it in order, using the Next links at the bottom of each page.
- C# language catches you up on everything since C# 3.0, as a separate section.
- Coming from .NET 3.5 maps the habits you already have to their modern equivalents.
- Cheatsheets are one-page references to keep open while you work.
- Exercises in the GitHub repo let you practise. You clone them, run them locally, and use their tests to check your work.
Every page links to the official docs on Microsoft Learn. If you spot a mistake or something missing, use Report a problem at the bottom of the page.
Getting started
Section titled “Getting started”.NET 10 and the dotnet CLIThe platform, the SDK and the command line.
dotnet CLI cheatsheetEveryday commands on one page.
The learning path
Section titled “The learning path”ASP.NET CoreHosting, the request pipeline and minimal APIs.
ConfigurationIConfiguration and the options pattern.
Dependency InjectionThe built-in container and service lifetimes.
MiddlewareThe request pipeline, and writing your own middleware.
LoggingStructured logging with ILogger.
TracingDistributed tracing with OpenTelemetry.
MetricsCounters and histograms with System.Diagnostics.Metrics.
EF CoreDbContext, migrations and querying.
gRPCContract-first services with Protocol Buffers.
TestingxUnit v3, WebApplicationFactory and Testcontainers.
Security & authAuthentication, authorization and secrets.
Async & performanceasync/await, Span and benchmarking.
ContainersContainer images, with or without a Dockerfile.
Orchestration & AWS.NET Aspire, Kubernetes, ECS, EKS and Lambda.
Standalone sections
Section titled “Standalone sections”C# languageFrom C# 3.0 to C# 14.
Coming from .NET 3.5Old habits, and their new equivalents.