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
  • Deep Dive: Modular Monoliths in .NET

    Explore advanced techniques in Modular Monoliths with this in-depth course. Learn module communication patterns, event-driven design, and architectural upgrades, all applied to real-world projects.

    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 Smith

    Steve 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 Smith

    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#