ASPNET Core SOLID and Clean Architecture

Create a SOLID and testable ASP.NET Core Application using CQRS, Mediator Pattern and clean architecture.
ASPNET Core SOLID and Clean Architecture
File Size :
6.55 GB
Total length :
10h 3m



Trevoir Williams


Last update




ASPNET Core SOLID and Clean Architecture

What you’ll learn

Implement SOLID Principles
ASP .NET Core Blazor and API Development
Advanced Tools – MediatR, Automapper, Fluent API and Validation
Custom Exceptions and Global Error Handling
Custom .NET Core Middleware
Using NSwag and NSwag Studio
Use Swagger for API Documentation
Implement CQRS Pattern
Use Identity and JWT To Secure Application API
Build API Client Secure Application
Moq and Shouldly Frameworks
Unit Testing

ASPNET Core SOLID and Clean Architecture


At least three months of C# Development
A Computer
A Willingness to Learn


Overview Creating a modular, testable, and maintainable application in .NET Core requires a solid foundation. Setting up an application architecture requires foresight and much consideration, as early decisions will impact how easily the application is extended and maintained. In the long run, though, applications need to be maintained and, in this case, extended. Between its design and the way the code was written, neither is possible, so the application needs to be redesigned and future-proofed. Why SOLID Architecture?When we talk about SOLID architecture, what we refer to isn’t a straightforward task. Decisions made early in the process can have a large impact later on, and maintainability and testability play an important role. Adopting these practices can also contribute to avoiding code smells, refactoring code, and facilitating more efficient agile development.SOLID stands for:S – Single-Responsibility PrincipleO – Open-closed PrincipleL – Liskov Substitution PrincipleI – Interface Segregation PrincipleD – Dependency Inversion PrincipleIn this course, you explore foundational architectural principles which help with the creation of maintainable code. You will discover how to set up a real-world application architecture with ASP.NET Core. Then, you’ll learn how to plug in different, common blocks such as email and authentication and have a foundation to plug-in other third-party services as needed. Everything in this course is .NET 6 / .NET 7 compatible. When you finish this course, you’ll have the skills and knowledge to create a testable and maintainable ASP.NET Core application to architect real-world enterprise .NET Core apps.N.B. – The project in this course is based on the deliverables in Complete ASP.NET Core and Entity Framework Development. While it is not mandatory to do this course, much of the existing code will be reused from this course’s content. Build A Strong Foundation in .NET Clean Architecture: Learn Clean or Onion Architecture and Best Practices Learn Command Query Responsibility Segregation (CQRS)Implement Mediatr PatternAdd Email Service using SendGridEfficient Exception Handling and Routing Implementing Unit TestingMoq and ShouldyGlobal Error Handling with Custom Middleware and ExceptionsAdding Validation Using Fluent ValidationBuild a .NET Core API and Blazor UI ApplicationImplement JWT(JSON Web Token)  AuthenticationContent and OverviewTo take this course, you must have some knowledge of .NET Core development and C#. This is a huge course. Over 10 hours of premium content, but smartly broken up to highlight related activities based on each module in the application being built. We will also look at troubleshooting and debugging errors as we go along; implementing best practices; writing efficient logic, and understanding why developers do things the way they do. Your knowledge will grow, step by step, throughout the course, and you will be challenged to be the best you can be.We don’t do things the perfect way the first time; that is different from the reality of writing code. We make mistakes and point them out and fix them around them. By doing this, we develop proficiency in using debugging tools and techniques. By the time you have finished the course, you will have moved around in Visual Studio and examined logic and syntax errors so much that it will be second nature for you when working in the .NET environment. This will put your newly learned skills into practical use and impress your boss and coworkers.The course is complete with working files hosted on GitHub, including some files to make it easier for you to replicate the demonstrated code. You will be able to work alongside the author as you work through each lecture and will receive a verifiable certificate of completion upon finishing the course.Clicking the Take This Course button could be the best step you could take towards quickly increasing your income and marketability! Also, remember that if you don’t think the course is worth what you spent, you have a full 30 days to get a no questions asked refund!It’s time to take action! See you in the course!


Section 1: Introduction

Lecture 1 Introduction

Lecture 2 *IMPORTANT* – Course Updates

Section 2: Preliminary Concepts

Lecture 3 Review of S.O.L.I.D Principles

Lecture 4 Single Responsibility Principle

Lecture 5 DRY Principle

Lecture 6 Dependency Inversion

Lecture 7 Understanding Clean Architecture

Lecture 8 What We Will Be Building

Section 3: Setup Clean Architecture Solution

Lecture 9 Development Environment

Lecture 10 Get Latest Visual Studio

Lecture 11 Setting Up Solution

Lecture 12 Overview of Solution Parts

Section 4: Setting up the Application Core

Lecture 13 Section Overview

Lecture 14 Create the Domain Project

Lecture 15 Create Application Core Project

Lecture 16 Understanding CQRS, Mediator and Automapper

Lecture 17 Add Automapper and MediatR

Lecture 18 *IMPORTANT* – Fix MediatR Registration Error

Lecture 19 Setup Features Folder Structure (Vertical Slice Architecture)

Lecture 20 Creating CQRS Query Request and Handler – Part 1

Lecture 21 Creating CQRS Query Request and Handler – Part 2

Lecture 22 Creating CQRS Command Request and Handler – Part 1

Lecture 23 Creating CQRS Command Request and Handler – Part 2

Lecture 24 Adding Custom Exceptions

Lecture 25 Adding FluentValidation

Lecture 26 *IMPORTANT* – Validation Rule Correction

Lecture 27 Section Review

Lecture 28 Section Source Code

Section 5: Setting up Infrastructure Projects

Lecture 29 Section Overview

Lecture 30 Create the Persistence Project

Lecture 31 Add Entity Framework and Database Context

Lecture 32 Add Repository Implementations

Lecture 33 EF Core – No Tracking

Lecture 34 Completing Repositories

Lecture 35 Create Infrastructure Project

Lecture 36 Add Third-Party Email Service

Lecture 37 Add Logging and Wrapper

Lecture 38 Section Review

Lecture 39 Section Source Code

Section 6: Creating the API project

Lecture 40 Section Overview

Lecture 41 Create the API Project

Lecture 42 Scaffolding Database

Lecture 43 Implementing Controller with MediatR – Part 1

Lecture 44 Implementing Controller with MediatR – Part 2

Lecture 45 Complete Leave Allocation Feature

Lecture 46 Complete Leave Request Feature – Part 1

Lecture 47 Global Error Handling

Lecture 48 Section Review

Lecture 49 Section Source Code

Section 7: Testing

Lecture 50 Section Overview

Lecture 51 Creating Application Unit Project

Lecture 52 Unit Testing the Application Code – Setup Mocks

Lecture 53 Unit Testing the Application Code – Testing Handlers

Lecture 54 Integration Testing – Entity Framework

Lecture 55 Section Review

Lecture 56 Section Source Code

Section 8: Adding the UI

Lecture 57 Section Overview

Lecture 58 Creating UI Project – Blazor WebAssembly

Lecture 59 Using NSwag and NSwagStudio to Consume API

Lecture 60 Configure App for API

Lecture 61 Setup Leave Type Management Service

Lecture 62 Setup Leave Type Management UI

Section 9: Securing API and UI

Lecture 63 Add Security using Identity

Lecture 64 IMPORTANT – Identity Core Package Change

Lecture 65 Add Json Web Token (JWT) Authentication to API

Lecture 66 Add Authentication Services to Blazor

Lecture 67 Add UI Changes for Security

Lecture 68 Section Review

Lecture 69 Section Source Code

Section 10: Complete Application Features

Lecture 70 Setup Leave Allocation Management

Lecture 71 Setup Leave Request Management – Part 1 – Employee Request

Lecture 72 Setup Leave Request Management – Part 2 – Admin View

Lecture 73 Setup Leave Request Management – Part 3 – Approval

Lecture 74 Setup Leave Request Management – Part 3 – Cancel Request

Lecture 75 Section Review

Lecture 76 Section Source Code

Section 11: Value Added Features

Lecture 77 Add Third-Party Logging (SeriLog)

Lecture 78 Improve Data Auditing

Lecture 79 Add Notifications

Lecture 80 Section Source Code

Section 12: Conclusion

Lecture 81 Conclusion

Section 13: Bonus Section

Lecture 82 Bonus Lecture

Late Beginner to Intermediate Programmers

Course Information:

Udemy | English | 10h 3m | 6.55 GB
Created by: Trevoir Williams

You Can See More Courses in the Developer >> Greetings from

New Courses

Scroll to Top