Clean Architecture is one of the most popular software architecture and solution
organization approaches out there, and that's for a good reason. It provides a
clear path to a robust solution structure with clear guidelines and rules that
help you fall into the pit of success immediately. It can, however, be confusing
and complicated at first, especially if you don't have an experienced developer
explaining the concept and principles to you. That's where Dometrain comes in.
In this course, Amichai Mantinband, a Software Engineer at Microsoft, will help
you start with Clean Architecture and teach you all the principles and rules in
easy-to-digest clips and understandable examples. Start your Clean Architecture
journey today on Dometrain!
Course Curriculum
3h 10m 13 sections
Welcome
01:04Free preview
What will you learn in this course?
01:37Free preview
Who is the course for and prerequisites
01:49Free preview
What is Software Architecture?
01:42
What are Architectural Patterns?
01:01
Layered Architecture
04:42
Domain-Centric Architecture
01:35
What is Clean Architecture?
03:28
Section Recap
01:14
The Domain We'll Explore in this Course
04:29
The Project We Will Build & How this Course is Built
02:22
Project Setup Following Clean Architecture
03:09
Sending Requests Using .http Files
02:01
Section Recap
00:43
Presentation Layer Overview
02:50
Implementing Presentation Layer Contracts
05:15
Implementing Controllers in the Presentation Layer
01:50
Presentation Layer Frameworks in .NET
01:09
Section Recap
00:53
Application Layer Overview
02:57
Implementing Services in our Application Layer
04:44
Clean Architecture and Dependency Injection
07:36
Section Recap
00:34
What is the CQRS Pattern?
03:48
Implementing the CQRS Pattern
00:31
What is the Mediator Pattern?
01:41
Implementing the Mediator Pattern Using the MediatR NuGet Package
07:47
Splitting by Feature vs. Splitting by Type
02:43
Section Recap
00:54
What is the Result Pattern?
02:08
Implementing the Result Pattern
04:09
Section Recap
00:36
What is the Repository Pattern?
03:52
Implementing the Repository Pattern in the Application Layer
03:46
What is the Unit of Work Pattern?
02:13
Implementing the Unit of Work pattern in the Application Layer
01:56
Section Recap
00:46
Infrastructure Layer Overview
01:32
Implementing the Repository Pattern in the Infrastructure Layer
04:45
Implementing the Repository Pattern Using EF Core in the Infrastructure Layer
05:52
Implementing the Unit of Work Pattern in the Infrastructure Layer
02:31
EF Core and the Repository Pattern
03:47
Section Recap
00:38
Domain-Driven Design vs. Clean Architecture
01:50
What is Domain-Driven Design?
02:15
Domain Models
00:38
Rich vs. Anemic Domain Models
03:23
Always Valid Domain Models
01:49
Persistence Ignorance
01:33
Section Recap
01:40
Domain Layer Overview
03:18
Implementing Strongly Typed Enums
02:11
Implementing Domain Models
05:58
Implementing Domain Model EF Core Configurations
05:55
Final Project Overview
02:15
Final Project Code Walkthrough
05:07
Section Recap
01:10
Domain Layer Errors vs. Application Layer Errors vs. Presentation Layer Errors
09:07
Error Handling Approaches in Clean Architecture
06:16
Implementing Domain Layer Errors
04:22
Implementing Application Layer Errors
03:01
Converting Domain and Application Layer Errors to Presentation Errors
Amichai Mantinband is a Software Engineer at Microsoft and a .NET content creator. He works on large-scale, distributed systems within Microsoft Office, serving over 100 million daily users. He is a speaker at official .NET conferences, and within Microsoft, he authors and teaches software architecture courses. Amichai is the author of NuGet packages ErrorOr & Throw and has a .NET programming YouTube channel covering advanced topics such as design patterns, architecture, and best practices.