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!
What is Software Architecture?
What are Architectural Patterns?
What is Clean Architecture?
The Domain We'll Explore in this Course
The Project We Will Build & How this Course is Built
Project Setup Following Clean Architecture
Sending Requests Using .http Files
Presentation Layer Overview
Implementing Presentation Layer Contracts
Implementing Controllers in the Presentation Layer
Presentation Layer Frameworks in .NET
Application Layer Overview
Implementing Services in our Application Layer
Clean Architecture and Dependency Injection
What is the CQRS Pattern?
Implementing the CQRS Pattern
What is the Mediator Pattern?
Implementing the Mediator Pattern Using the MediatR NuGet Package
Splitting by Feature vs. Splitting by Type
What is the Result Pattern?
Implementing the Result Pattern
What is the Repository Pattern?
Implementing the Repository Pattern in the Application Layer
What is the Unit of Work Pattern?
Implementing the Unit of Work pattern in the Application Layer
Infrastructure Layer Overview
Implementing the Repository Pattern in the Infrastructure Layer
Implementing the Repository Pattern Using EF Core in the Infrastructure Layer
Implementing the Unit of Work Pattern in the Infrastructure Layer
EF Core and the Repository Pattern
Domain-Driven Design vs. Clean Architecture
What is Domain-Driven Design?
Rich vs. Anemic Domain Models
Always Valid Domain Models
Domain Layer Overview
Implementing Strongly Typed Enums
Implementing Domain Models
Implementing Domain Model EF Core Configurations
Final Project Overview
Final Project Code Walkthrough
Domain Layer Errors vs. Application Layer Errors vs. Presentation Layer Errors
Error Handling Approaches in Clean Architecture
Implementing Domain Layer Errors
Implementing Application Layer Errors
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.