Domain Roadmap

.NET Developer

.NET is Microsoft's free, open-source, cross-platform runtime and framework for building web, desktop, mobile, cloud, and gaming applications in C#. This roadmap walks you from C# fundamentals and the .NET platform through data access, picking an application type, APIs, testing, and the cloud/DevOps skills needed to ship and run a .NET application in production.

What skills does a .NET developer need?

It's one language, C#, spread across several very different application types

Every .NET developer starts with C# and a working understanding of the .NET platform itself — the runtime, the class library, and how NuGet packages and project files fit together. From there, data access (usually via Entity Framework Core) is close to universal, since almost every real application talks to a database.

What comes next depends on what you're building: ASP.NET Core for web apps and APIs, WPF, WinForms, or .NET MAUI for desktop and cross-platform apps, or Worker Services and Azure Functions for background and serverless workloads. Most of these converge on the same underlying skills — dependency injection, testing, and clean architecture.

Production-ready .NET developers round this out with logging, caching, and resilience patterns, and increasingly need to be comfortable with Docker, CI/CD, and Azure (or another cloud) to actually deploy and operate what they build.

The .NET Developer Roadmap

Work through the shared foundation first, then branch into the application type you're building

STEP 1
C# logo

Programming Fundamentals & C#

The language every .NET application is written in, plus the tools you'll use daily.

C# Syntax & Types Object-Oriented Programming .NET CLI Git — Version Control Visual Studio VS Code Rider
STEP 2
.NET logo

The .NET Platform

What .NET actually is under the hood, and how projects and dependencies are organized.

What is .NET? .NET vs .NET Framework vs Mono CLR & Base Class Library NuGet & Packages Project Structure (.csproj, .sln) SDKs & Runtimes
STEP 3

Advanced C#

The language features that separate "knows C#" from "writes idiomatic C#."

LINQ Generics Delegates & Events Async / Await Pattern Matching Records Nullable Reference Types Reflection & Attributes
STEP 4

Databases & Data Access

Almost every real .NET application needs to read and write persistent data.

SQL Basics Entity Framework Core Dapper ADO.NET SQL Server PostgreSQL Migrations
STEP 5

Choosing Your Application Type

This is where paths diverge — pick the one that matches what you actually want to build.

Web
ASP.NET Core Blazor
Desktop & Cross-Platform
WPF WinForms .NET MAUI Avalonia
Background & Serverless
Worker Services Azure Functions
STEP 6

Building APIs & Web Services

Expose data and functionality to clients, whether that's a browser, mobile app, or another service.

REST Minimal APIs gRPC GraphQL SignalR OpenAPI / Swagger
STEP 7

Dependency Injection & Application Architecture

Structure a codebase so it stays maintainable as it grows past a handful of files.

Built-in DI Container SOLID Principles Clean Architecture Design Patterns MVVM
STEP 8

Testing

Prove the application behaves correctly before it reaches production.

xUnit NUnit MSTest Moq Integration Testing Test-Driven Development
STEP 9

Logging, Caching & Resilience

The production-grade concerns that turn a working app into a reliable one.

Serilog NLog Memory Cache Distributed Cache Redis Polly (Retries, Circuit Breakers)
STEP 10
Docker logo

Containerization, CI/CD & Deployment

Package and ship .NET applications the way they're run in production.

Docker Kubernetes GitHub Actions Azure Pipelines IIS / Kestrel
STEP 11

Cloud & Ecosystem Tooling

Where most .NET applications actually run, and the tools that keep them healthy.

Azure App Service Azure SQL Azure Storage AWS SDK for .NET Application Insights Debugging & Profiling

GitHub Projects

Real, buildable projects to put on your own GitHub

Frequently Asked Questions

Common questions from people starting out as .NET developers

What's the difference between .NET and .NET Framework?

.NET Framework is the original, Windows-only version. Modern ".NET" (5 and later, unifying what used to be called .NET Core) is free, open source, and cross-platform, and is where all new development and Microsoft's investment goes. New projects should target modern .NET.

Is C# a good first programming language?

Yes — it's statically typed, which catches many mistakes early, has excellent tooling and error messages, and is used across web, desktop, mobile, and game development, so the fundamentals you learn transfer widely.

Should I learn ASP.NET Core or a desktop framework first?

It depends on your goal: web and API development (ASP.NET Core) has the most job openings and is the most common starting point, while WPF, WinForms, or .NET MAUI make sense if you specifically want to build desktop or mobile applications.

How does .NET compare to Java?

Both are mature, statically-typed, garbage-collected platforms with strong enterprise adoption, extensive libraries, and similar architectural patterns. The core difference is ecosystem: .NET runs on the CLR and centers on C#, while Java runs on the JVM and centers on Java or Kotlin.

Do I need to know Azure to be a .NET developer?

Not to start, but it's a strong asset. Because .NET is a Microsoft technology, many .NET jobs — especially at larger companies — expect at least basic familiarity with Azure App Service, Azure SQL, and CI/CD through Azure Pipelines or GitHub Actions.

How do I prepare for a .NET developer interview?

Be comfortable explaining async/await, dependency injection lifetimes, and value vs. reference types, know your way around EF Core migrations and LINQ, and have a project you can walk through — architecture, trade-offs, and how you tested it.

Track complete

From C# fundamentals to a tested, deployed application — that's the core of what employers expect from a .NET developer. Keep building, and let the application type you enjoy most — web, desktop, or cloud — pull you toward deeper specialization next.

Where next?

Keep exploring by domain or drill into a single skill