Our Black Friday discount is now LIVE! Use code BLACKFRIDAY24 to get 40% off any Course, Bundle or your first year of Dometrain Pro!

Deep Dive: Clean Architecture in .NET

Dive deep into the advanced practices of Clean Architecture in .NET

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 immediately fall into the pit of success. 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. In this course, Amichai Mantinband, a Software Engineer at Microsoft, will help you dive deeper into Clean Architecture and teach you all the advanced principles and rules you need to know in easy-to-digest clips and understandable examples. Continue your Clean Architecture journey today on Dometrain!

Curriculum

Welcome (0:42)

What will you learn in this course? (0:49)

Who is the course for and prerequisites (2:18)

Domain Overview (6:24)

Project Structure Overview (2:53)

1000 ft. Project Walkthrough (7:47)

Section Recap (0:31)

Validation Types (4:25)

Model Validation (4:49)

Model Validation using Fluent Validation (3:01)

Implementing a Fluent Validation Command Validator (4:18)

MediatR Pipeline Behaviors (3:04)

Implementing a MediatR Pipeline Behavior (3:14)

Application Layer Cross-Cutting Concerns via Open Generic Pipeline Behaviors (1:44)

Implementing Application Layer Cross-Cutting Concerns via Open Generic Pipeline Behaviors (7:44)

Domain Layer Validations (2:28)

Validating Business Rules in the Domain Layer (1:32)

Section Recap (1:01)

What are Domain Events? (2:17)

The Domain Events Pattern (2:22)

Implementing a Domain Event (4:33)

Domain Events vs. Orchestration (6:21)

Implementing Domain Event Handlers (5:37)

Section Recap (0:50)

Eventual Consistency vs. Transactional Consistency (5:26)

Eventual Consistency Most Common Implementation and Why it is Wrong (5:28)

A better approach for handling Eventual Consistency (4:18)

Implementing Extracting Domain Events For Offline Processing (7:59)

Implementing Eventual Consistency via an Eventual Consistency Middleware (13:24)

Section Recap (1:03)

Testing in Clean Architecture (7:36)

Domain Layer Unit Testing (1:38)

Implementing Domain Layer Unit Tests (11:47)

Application Layer Unit Testing (1:48)

Implementing Application Layer Unit Tests Part 1 (10:18)

Implementing Application Layer Unit Tests Part 2 (1:01)

Implementing Application Layer Unit Tests Part 3 (4:16)

Subcutaneous Testing (1:14)

Implementing Subcutaneous Testing Part 1 (9:12)

Implementing Subcutaneous Testing Part 2 (3:07)

Implementing Subcutaneous Testing Part 3 (4:40)

Integration Testing (1:19)

Implementing Integration Testing (7:56)

Section Recap (1:50)

Authentication and Authorization in Clean Architecture (4:50)

Register, Login, and Create Profile Endpoints Overview (8:19)

Accessing the Requesting User's Details From the Domain and Application Layers Part 1 (4:27)

Accessing the Requesting User's Details From the Domain and Application Layers Part 2 (6:13)

The 3 Types of Permission-Based Authorization (1:45)

Implementing Permission-Based Authorization (11:43)

Implementing Role-Based Authorization (4:42)

Section Recap (1:44)

Conclusion (0:52)

Course Info

Level:
Deep Dive
Duration:
3h 50m
Rating (2,6K+):
star

Lifetime access

Add to Cart

Part of the bundle

From Zero to Hero: Clean Architecture in .NET Bundle thumbnail Get it for 20% off
Dometrain Pro

Want access to all of our courses? Subscribe to Dometrain Pro!

Try it for free!

About the Author

author_img

Amichai Mantinband

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.

More courses by Amichai Mantinband