← All projects

2026 · active

Learn .NET

A structured path from C# fundamentals to production-ready backend engineering.

C# · .NET · ASP.NET Core · EF Core · Azure

The problem with topic lists

Learn .NET is a long-running curriculum for rebuilding knowledge from first principles. It connects language fundamentals and object-oriented design to runtime behavior, memory, concurrency, web APIs, persistence, security, architecture, testing, and delivery.

The repository exists because topic coverage is not connected understanding. Knowing C# syntax does not automatically explain allocation, cancellation, dependency lifetimes, query behavior, HTTP boundaries, or what a service needs after deployment.

Curriculum architecture

flowchart LR Language[C# and type-system fundamentals] --> Runtime[Runtime, memory, and async] Runtime --> Web[ASP.NET Core and HTTP] Web --> Data[EF Core and data boundaries] Data --> Architecture[Architecture and security] Architecture --> Operations[Testing, observability, and Azure delivery] Operations --> Projects[Integrated backend projects] Projects -. feedback .-> Language

The path is sequential enough to expose prerequisites and cyclical enough to revisit them. A production exercise often reveals that a language or runtime model was incomplete.

The learning loop

Each topic moves through understanding, implementation, explanation, and application. The goal is not to remember an API for an interview; it is to form mental models that survive framework changes.

Question -> prediction -> minimal experiment -> test -> explanation
         -> project integration -> review

The experiment isolates behavior; the project exposes interactions. A minimal async sample can explain suspension, while an API exercise reveals cancellation propagation, dependency limits, and telemetry.

Project ladder

StagePrimary evidence
Language exercisepredicted and tested behavior
Focused librarydeliberate API and error model
HTTP APItransport and application boundaries
Persistent servicequeries, transactions, migrations, concurrency
Operated workloadidentity, telemetry, deployment, recovery

Each stage introduces a constraint while keeping earlier decisions visible.

Important decisions

  • Prefer executable examples over disconnected notes.
  • Record why an abstraction exists, not only how its API is called.
  • Treat failure, cancellation, and observability as part of the exercise.
  • Keep Azure as an operational environment, not a decorative final chapter.
  • Revisit material as the supported .NET platform changes.

Boundaries and evidence

Learn .NET is an evolving repository, not a certification curriculum or a claim that every area is complete. Modules vary in maturity. Evidence is the public source, exercises, notes, and tests. Version-sensitive recommendations must be checked against the target SDK before they become current guidance.

Current direction

The repository grows toward complete backend systems: ASP.NET Core services, EF Core persistence, authentication and authorization, maintainable architecture, automated testing, and Azure delivery. The goal is one vertical slice that can be reasoned about from C# semantics through production operation.