What's inside

Everything you need to build production-ready applications

.NET 8

Latest features for modern apps

PostgreSQL

Reliable, scalable persistence

Redis

Distributed caching for speed

Docker

Containerized dev environment

01Fundamental

Clean Architecture: Introduction

Start with the fundamentals. Clean Architecture rests on sound architectural principles — you will learn how to apply them to design applications that stand the test of time.

12m4 lessons
Watch a free preview
02Fundamental

Domain Layer and Domain-Driven Design

Build a rich domain model with Domain-Driven Design. We cover domain modeling best practices and introduce the application we will build throughout the course.

43m15 lessons
Domain Layer and Domain-Driven Design
03Intermediate

Application Layer and CQRS

How do you implement CQRS and solve cross-cutting concerns with ease? Here you will learn how to design your application use cases cleanly.

45m10 lessons
Application Layer and CQRS
04Intermediate

Infrastructure Layer

Implement a blazing-fast persistence layer using the most advanced EF Core features. We also tackle concurrency problems and their solutions.

27m12 lessons
Infrastructure Layer
05Intermediate

Presentation Layer

How do you add API endpoints efficiently and set up dependency injection the right way? You will find all the answers (and more) here.

26m10 lessons
Presentation Layer
06Intermediate

Authentication and API Security

Robust JWT authentication is a must to secure your API. You will learn how to integrate an external identity provider with Keycloak.

26m15 lessons
Authentication and API Security
07Intermediate

Authorization, Roles and Permissions

Authentication is nothing without fine-grained access control. Implement role-based authorization paired with custom permission-based policies.

41m5 lessons
Authorization, Roles and Permissions
08Advanced

Outbox, Structured Logging, Redis

Reliably publish messages with the Outbox pattern, and implement cross-cutting concerns like structured logging, health checks, and distributed caching with Redis.

1h 26m8 lessons
Outbox, Structured Logging, Redis
09Intermediate

Testing Clean Architecture

Get maximum confidence in your system. We cover unit, integration, and functional testing, plus enforcing your architecture with architecture tests.

1h 15m7 lessons
Testing Clean Architecture
Get instant access

More than just theory

Pragmatic Clean Architecture includes more than video lessons. I built it with bonus resources so you actually apply what you learn.

Clean Architecture Template
Bonus resource #1

Clean Architecture Template

A Clean Architecture template that gives you a great starting point to start delivering value to your users faster.

Code Quality Shortcut
Bonus resource #2

Code Quality Shortcut

Write quality code with the Code Quality Shortcut to easily enforce standards across your team.

CI/CD Blueprint
Bonus resource #3

CI/CD Blueprint

New to CI/CD? Plug this blueprint into your project to start consistently and confidently releasing software.

After completing this course you will

  • Confidently use Clean Architecture on real projects at work
  • Build a rich domain model with Domain-Driven Design fundamentals
  • Set up production-ready applications with industry best practices
  • Understand the most important architectural principles

Start building better applications today

One-time payment. Lifetime access, including every future update.

PCA

$247
  • 10 in-depth chapters
  • Bonus: CA Template
  • Bonus: Code Quality Shortcut
  • Bonus: CI/CD Blueprint
  • Lifetime access
  • Email support
MOST POPULAR

PCA + Community

$397
  • 10 in-depth chapters
  • Bonus: Advanced CA Template
  • Bonus: Code Quality Shortcut
  • Bonus: CI/CD Blueprint
  • Lifetime access
  • Priority support
  • Community access

Not sure yet? Preview the free lessons before you buy.

Paying with company money? You'll get a receipt you can submit for reimbursement.

Oh, this material is gold for modern .NET engineers. Every chapter offers real practical solutions with no fluff, including design patterns and principles.
Roman Fairushyn
Roman Fairushyn
Senior Software Engineer

Loved by developers

What students are saying about PCA

Join them today
Course student
Course student
Course student
Course student
Course student
Course student

5,000+ engineers shipping better code

The full curriculum

10 chapters of in-depth, production-focused training.

Introduction
01Clean Architecture Fundamentals
  • Architectural principles & Design principles
  • Clean Architecture layers
  • What we are building & why
  • Chapter recap
02Domain Layer and Domain-Driven Design
  • Introduction
  • Creating the Domain project
  • Defining our first domain entity
  • What is an Entity in Domain-Driven Design?
  • Introducing Value Objects for solving primitive obsession
  • The importance of private setters and encapsulation
  • Using the Static Factory pattern in the domain
  • Introducing the Domain Events patternFree preview
  • Adding Repositories and the Unit of Work
  • Creating the Booking entity
  • Implementing a Domain service
  • Using Double Dispatch for a better domain model
  • Introducing the Result class to the project
  • Defining a dictionary of domain errors
  • Chapter recap
03Application Layer and CQRS
  • Introduction
  • Creating the Application project
  • Configuring dependency injection and installing MediatR
  • Adding the required abstractions for CQRSFree preview
  • Implementing Commands with the rich domain model
  • Defining a domain event handler
  • Implementing Queries with Dapper for blazing performance
  • Solving logging as a cross-cutting concern
  • Creating a Validation pipeline for commands
  • Chapter recap
04Infrastructure Layer
  • Introduction
  • Creating the Infrastructure project
  • Configuring infrastructure services with DI
  • Adding Entity Framework Core to the solution
  • Configuring Entity Framework Core with DIFree preview
  • Creating the Domain entity configurations
  • Automatically applying entity configurations
  • Implementing repositories with a generic repository
  • Implementing the SQL connection factory
  • Publishing domain events inside the Unit of Work
  • Solving race conditions with optimistic concurrency
  • Chapter recap
05Presentation Layer
  • Introduction
  • Creating the Presentation project
  • Configuring services with dependency injection
  • Adding Controllers and endpoints
  • Setting up Docker Compose and running the API
  • Creating EF migrations and applying them
  • Seeding initial data
  • Adding Middleware - Global exception handler
  • Demo: Presentation layer & API
  • Chapter recap
06Authentication and API Security
  • Introduction
  • Keycloak identity provider setup
  • Keycloak admin panel overview
  • Demo: Obtaining JWTs using Keycloak
  • Configuring authentication middleware & servicesFree preview
  • Configuring JWT authentication options
  • Demo: Authentication in action
  • Implementing the user registration feature
  • Adding an API endpoint for registering a user
  • Implementing the authentication service
  • Configuring the authentication service as a typed HTTP client
  • Demo: User registration with Keycloak
  • Implementing the user login feature
  • Demo: User login with Keycloak
  • Chapter recap
07Authorization, Roles and Permissions
  • Introduction
  • Implementing Role-based Authorization
  • Implementing Permission-based Authorization
  • Implementing Resource-based Authorization
  • Chapter recap
08Advanced Topics: Serilog, Redis, Outbox
  • Introduction
  • Structured Logging with Serilog and Seq
  • Distributed Caching with Redis
  • Health Checks in Clean Architecture
  • Implementing API Versioning
  • Transactional Outbox Pattern
  • Minimal APIs
  • Chapter recap
09Testing Clean Architecture
  • Introduction
  • Domain Layer Unit Testing
  • Application Layer Unit Testing
  • Integration Testing
  • Functional Testing
  • Architecture Testing
  • Chapter recap
BONUS — Get Started Faster
  • Clean Architecture Template
  • Code Quality Shortcut
  • CI/CD Blueprint
Get the full course
Course student
Course student
Course student
Course student
Course student
Course student

5,000+ engineers shipping better code

Milan Jovanović

Who's behind this

Hi — I'm Milan Jovanović. I help engineers level up their .NET and software architecture skills.

I'm a Software Architect and Microsoft MVP for Developer Technologies with years of experience building large-scale systems.

I've helped thousands of engineers improve through my practical tips on social media, The .NET Weekly newsletter, and YouTube channel.

My goal is to teach you everything I learned building and maintaining production-ready applications with Clean Architecture.

Microsoft MVP Badge

Got questions?

Frequently asked questions

  • Who is this course for?

    This course is for anyone who wants to learn how to apply Clean Architecture in the real world — and use it to create testable, maintainable, large-scale systems.

    It's also for anyone who wants to learn the principles of Domain-Driven Design. The course focuses on tactical DDD patterns and how to apply them in practice.

  • What will I learn in this course?

    The best practices for building production-ready applications using Clean Architecture — the same core principles I've used to build many large-scale systems.

    • Clean Architecture fundamentals
    • Domain-Driven Design
    • CQRS
    • Authentication & authorization
    • Testing

    All course content is updated to .NET 8.

  • How long is the course?

    The course is 6 hours and 21 minutes of video, packed with value and designed to be easy to follow.

  • What does Community Access mean?

    With the PCA + Community Access plan you gain access to the Community section — a great way to enhance your learning if you don't want to go through the course alone. It's where like-minded engineers collaborate and get help, and I'll be there to answer questions too.

  • What is the Advanced CA template?

    A bonus for students who enroll in the PCA + Community Access course. It's a Clean Architecture template that helps you quickly start new projects.

    What makes it advanced? It comes with more features built in — like messaging over a message broker, telemetry, Minimal APIs setup, and more.

  • Got it. This must be expensive, right?

    No. It's $247 on the basic plan.

    And if you want Community access with like-minded engineers, it's $397.

  • Can my company pay for the course?

    Absolutely — many students expense the course through their employer. You'll receive a receipt after checkout that you can submit for reimbursement. If you need anything else, like a quote for multiple team seats, contact me.

  • Do I get lifetime access?

    Absolutely, yes! You can access the course forever, including any future updates, with no extra payment.

  • What are the prerequisites for taking this course?

    You should have at least 1 year of experience with ASP.NET Core and (preferably) Entity Framework Core. Beginners will still improve, but it'll be slightly harder to follow. You should also be familiar with Docker, which we use for running external services.

  • What if I get stuck during the course?

    The course is carefully designed to build knowledge progressively, so the chances of getting stuck are minimal.

    If you do need help, the Community Access edition gives you direct access to me and other participants.

  • What should I do next if I want to enroll?

    Click any enroll button on this page and get started today.

Enroll now

Ready to level up?

Unlock Pragmatic Clean Architecture today

Join thousands of developers who have already transformed their software architecture skills with this course.

Course student
Course student
Course student
Course student
Course student
Course student

5,000+ engineers shipping better code

Lifetime access
6+ hours of content
Real-world examples