Deep Dive: Modular Monoliths in .NET

Take your Modular Monoliths journey to the next level

About This Course

A monolith refers to a software application that is deployed as a single physical deployment. Many monolithic applications lack sufficient structure and end up becoming Big Balls of Mud. By contrast, a modular monolith breaks up the application into logical modules which are largely independent from one another. This provides many of the benefits of more distributed approaches like microservices without the overhead of deploying and managing a distributed application. In this course, we will build on top of your existing knowledge of Modular Monoliths that you gained during the Getting Started course of the series and you�ll learn how to apply advanced Modular Monolith patterns and add more features to the RiverBooks ecommerce site.

Course Curriculum

4h 21m 8 sections
Welcome
01:22 Free preview
What will you learn in this course?
01:55 Free preview
Who is the course for and prerequisites
01:19 Free preview
Introducing the Sample App
11:30
New Requirements
01:38
High Level Design Considerations
02:24
Introducing the Shared Kernel
02:18
Key Takeaways
02:23
How can modules communicate?
05:46
Direct Synchronous Calls
04:47
The Mediator Pattern
04:30
Commands, Queries, and Events
04:14
Non-Blocking Communications
04:15
The Outbox Pattern
02:38
Materialized Views
03:02
Key Takeaways
02:26
Adding an OrderProcessing Module
24:44
Adding Addresses
07:39
Implementing a Materialized View
04:30
Updating the Materialized View
23:21
Key Takeaways
01:05
Refactoring to Clean Architecture
13:33
Enforcing Architecture Rules with ArchUnit.NET
08:06
Using Chain of Responsibility for Cross-Cutting Concerns
16:23
Key Takeaways
02:14
Introducing the EmailSending Module
04:38
Sending Registration Emails via MediatR
05:54
Sending Order Confirmation Emails via Domain Events
08:52
Implementing a Simple Outbox with MongoDB
21:03
Using Vertical Slice Architecture
06:41
Key Takeaways
01:26
Introducing the Reporting Module
03:45
The Top Selling Books Report
04:29
Reach-In Reporting Antipattern
06:01
Adding a Reporting Database with Updates
13:43
Key Takeaways
02:27
Key Concept Review
09:27
Full RiverBooks App Walkthrough
11:31
Next Steps
02:52

Meet Your Instructor

Steve "ardalis" Smith

Steve "ardalis" Smith

Steve "ardalis" Smith is an entrepreneur and software developer with a passion for building quality software as effectively as possible. He provides mentoring and training workshops for teams with the desire to improve. Steve has been recognized as a Microsoft MVP for over 10 consecutive years, and is a frequent speaker at software developer conferences and events. He is the top contributor to the official documentation on ASP.NET Core and enjoys helpings others write maintainable, testable applications using Microsoft's developer tools.

View all courses by Steve "ardalis" Smith

What's New

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
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
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
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
Deep Dive: Solution Architecture
course

Deep Dive: Solution Architecture

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

Learn More
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
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
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
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