30% OFF - Use code HANDSON30 for 30% off any course or Dometrain Pro! Browse courses →
  • Courses
  • Learning Paths
  • Blogs
  • Authors
  • Leaderboard
  • Dometrain Pro
  • Shopping Basket

    Your basket is empty

  • Business Portal
  • Getting Started: Clean Architecture in .NET

    Learn the principles of Clean Architecture in .NET with real-world examples. This course teaches you to build scalable, maintainable systems using proven architectural patterns.

    About This Course

    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:04 Free preview
    What will you learn in this course?
    01:37 Free preview
    Who is the course for and prerequisites
    01:49 Free 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
    10:54
    Section Recap
    01:49
    Conclusion
    00:43

    Meet Your Instructor

    Amichai Mantinband

    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.

    View all courses by Amichai Mantinband

    What's New

    Getting Started: Model Context Protocol (MCP)
    course

    Getting Started: Model Context Protocol (MCP)

    Learn how to get started with the Model Context Protocol (MCP) and integrate it into your applications.

    Learn more about Getting Started: Model Context Protocol (MCP)
    Hands-On: Learn TypeScript
    course

    Hands-On: Learn TypeScript

    Learn TypeScript through hands-on coding exercises. Practice what you learn with interactive challenges designed for every level.

    Learn more about Hands-On: Learn TypeScript
    Hands-On: Learn JavaScript
    course

    Hands-On: Learn JavaScript

    Learn JavaScript through hands-on coding exercises. Practice what you learn with interactive challenges designed for every level.

    Learn more about Hands-On: Learn JavaScript
    Hands-On: Data Structures & Algorithms in C#
    course

    Hands-On: Data Structures & Algorithms in C#

    Master data structures and algorithms through hands-on coding exercises in C#. Free to enroll for 7 days!

    Learn more about Hands-On: Data Structures & Algorithms in C#
    Blogsmith.ai
    feature

    Blogsmith.ai

    Turn your videos into blogs and newsletters with AI. Check out our new product at blogsmith.ai.

    Learn more about Blogsmith.ai
    Leaderboard
    feature

    Leaderboard

    See how you stack up against other learners. Track your progress, climb the ranks, and compete with the Dometrain community.

    Learn more about Leaderboard
    Hands-On: Learn PostgreSQL
    course

    Hands-On: Learn PostgreSQL

    Learn PostgreSQL through hands-on coding exercises. Practice what you learn with interactive challenges designed for every level.

    Learn more about Hands-On: Learn PostgreSQL
    Free Hands-On: C# for Beginners
    course

    Free Hands-On: C# for Beginners

    Learn C# through hands-on coding exercises. Practice what you learn with interactive challenges designed for everyone, from beginners to experts.

    Learn more about Free Hands-On: C# for Beginners
    Getting Started: AI for .NET Developers
    course

    Getting Started: AI for .NET Developers

    Get started with integrating AI into your .NET applications effectively using the latest LLM best practices.

    Learn more about Getting Started: AI for .NET Developers
    Getting Started: Building .NET Applications on AWS
    course

    Getting Started: Building .NET Applications on AWS

    Learn how to build and deploy .NET applications on AWS using CDK, Lambda, DynamoDB, S3, and more.

    Learn more about Getting Started: Building .NET Applications on AWS
    What's new in C# 14
    blog

    What's new in C# 14

    This guide covers every new C# 14 feature, explains its benefits, and provides practical code examples to help you navigate how you can use them.

    Learn more about What's new in C# 14
    Let's Build It: AI Chatbot with RAG in .NET Using Your Data
    course

    Let's Build It: AI Chatbot with RAG in .NET Using Your Data

    Build a Retrieval-Augmented Generation (RAG) chatbot that can answer questions using your data.

    Learn more about Let's Build It: AI Chatbot with RAG in .NET Using Your Data
    From Zero to Hero: SignalR in .NET
    course

    From Zero to Hero: SignalR in .NET

    Enable enterprise-grade real-time communication for your web apps with SignalR.

    Learn more about From Zero to Hero: SignalR in .NET
    Deep Dive: Solution Architecture
    course

    Deep Dive: Solution Architecture

    Master solution architecture and turn business needs into scalable, maintainable systems.

    Learn more about Deep Dive: Solution Architecture
    Migrating: ASP.NET Web APIs to ASP.NET Core
    course

    Migrating: ASP.NET Web APIs to ASP.NET Core

    A step-by-step process to migrate ASP.NET Web APIs from .NET Framework to ASP.NET Core.

    Learn more about Migrating: ASP.NET Web APIs to ASP.NET Core
    Getting Started: Caching in .NET
    course

    Getting Started: Caching in .NET

    Let's make the hardest thing in programming easy for .NET software engineers.

    Learn more about Getting Started: Caching in .NET
    From Zero to Hero: Testing with xUnit in C#
    course

    From Zero to Hero: Testing with xUnit in C#

    Learn how to test any codebase in .NET with the latest version of xUnit, the industry-standard testing library.

    Learn more about From Zero to Hero: Testing with xUnit in C#
    Create a ChatGPT Console AI Chatbot in C#
    blog

    Create a ChatGPT Console AI Chatbot in C#

    This walkthrough is your hands-on entry point to create a basic C# console application that talks to ChatGPT using the OpenAI API.

    Learn more about Create a ChatGPT Console AI Chatbot in C#