Tags
Language
Tags
May 2025
Su Mo Tu We Th Fr Sa
27 28 29 30 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
    Attention❗ To save your time, in order to download anything on this site, you must be registered 👉 HERE. If you do not have a registration yet, it is better to do it right away. ✌

    ( • )( • ) ( ͡⚆ ͜ʖ ͡⚆ ) (‿ˠ‿)
    SpicyMags.xyz

    .Net Backend Bootcamp: Modulith, Vsa, Ddd, Cqrs And Outbox

    Posted By: ELK1nG
    .Net Backend Bootcamp: Modulith, Vsa, Ddd, Cqrs And Outbox

    .Net Backend Bootcamp: Modulith, Vsa, Ddd, Cqrs And Outbox
    Published 8/2024
    MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
    Language: English | Size: 10.33 GB | Duration: 20h 12m

    Develop EShop Modulith on .NET used Asp.Net Web API, PostgreSQL, Redis, RabbitMQ, Keycloak, Seq, Docker, MassTransit

    What you'll learn

    Modular Monoliths (Modulith) Architecture

    Vertical Slice Architecture (VSA)

    Domain-Driven Design (DDD)

    Command Query Responsibility Segregation (CQRS)

    Outbox Pattern for Reliable Messaging

    CQRS (Command Query Responsibility Segregation) and Vertical Slice architectures for module development

    Communicate over In-process method calls-public APIs and use RabbitMQ for event-driven communication

    Secure APIs with Keycloak, using OpenID Connect and Bearer Tokens

    ASPNET Core Minimal APIs and latest features of .Net8 and C# 12

    Vertical Slice Architecture implementation with Feature folders

    DDD, CQRS Patterns using MediatR library w/ following Best Practices

    Use Domain Events & Integration Events when UpdatePriceChanged event

    Use Entity Framework Core Code-First Approach and Migrations on PostgreSQL Database

    Cross-cutting Concerns including Logging with Serilog, Validation with MediatR Pipeline Behaviors, Exceptions, Pagination

    Using Redis as a Distributed Cache over PostgreSQL database

    Develop Proxy, Decorator and Cache-aside patterns

    Sync Communications between Catalog and Basket Modules w/ In-process Method Calls (Public APIs)

    Async Communications between Modules w/ RabbitMQ & MassTransit

    Develop User Identity Module with Keycloak Authentication

    OAuth2 + OpenID Connect Flows with Keycloak

    Outbox Pattern For Reliable Messaging w/ BasketCheckout Use Case

    Publish BasketCheckoutEvent to RabbitMQ via MassTransit library, Consume from Ordering Module

    Migrating to Microservices: EShop Modules to Microservices w/ Stranger Fig Pattern

    Requirements

    Basics of C# and programming

    Description

    In this bootcamp, you'll learn how to build robust, scalable, and maintainable applications using cutting-edge technologies and architectural patterns.We will develop;Modular Monoliths (Modulith) ArchitectureVertical Slice Architecture (VSA)Domain-Driven Design (DDD)Command Query Responsibility Segregation (CQRS)Outbox Pattern for Reliable MessagingWe start with the basics and progressively dive deeper into each topic. You'll get hands-on experience building a complete EShop Modular Monolith application, implementing features like CQRS and the Outbox pattern.We'll follow CQRS (Command Query Responsibility Segregation) and Vertical Slice architectures for module development.Modules will communicate over In-process method calls-public APIs and use RabbitMQ for event-driven communication.We'll secure our APIs with Keycloak, using OpenID Connect and Bearer Tokens.We'll implement the Outbox Pattern for reliable messaging between modules.Along with this you’ll develop following modules and items:Catalog module which;Using Asp.Net Core Minimal APIs and latest features of .Net8 and C# 12Develop Vertical Slice Architecture implementation with Feature folders  Develop DDD, CQRS Patterns using MediatR library w/ following Best Practices   Use Domain Events & Integration Events when UpdatePriceChanged eventUse Entity Framework Core Code-First Approach and Migrations on PostgreSQL DatabaseUse Carter for expose Minimal Api endpointsCross-cutting Concerns including Logging with Serilog, Validation with MediatR Pipeline Behaviors, Exceptions, PaginationBasket module which includes;Similar to Catalog Module; Develop DDD, CQRS, Vertical Slice Architecture implementationAdditionally;Using Redis as a Distributed Cache over PostgreSQL database Develop and Implements Proxy, Decorator and Cache-aside patternsPublish BasketCheckoutEvent to RabbitMQ via MassTransit libraryImplement Outbox Pattern For Reliable Messaging w/ BasketCheckout Use CaseModule Communications;Sync Communications between Catalog and Basket Modules with In-process Method Calls (Public APIs)Async Communications between Modules w/ RabbitMQ & MassTransit for UpdatePrice Between Catalog-Basket ModulesIdentity Module which includes;    Develop User Identity Module with Keycloak AuthenticationOAuth2 + OpenID Connect Flows with KeycloakSetup Keycloak into Docker-compose file for Identity Provider as a Backing ServiceSecure EShop Modules with Keycloak OpenId Connect in AspNetJwtBearer token for OpenID Connect with Keycloak Identity Ordering Module which includes;Similar to the Catalog and Basket Module; Develop DDD, CQRS, Vertical Slice Architecture implementationImplement Outbox Pattern For Reliable Messaging w/ BasketCheckout Use CaseLastly, we will discussMigrating to Microservices: EShop Modules to Microservices w/ Stranger Fig PatternThis course is more than just learning .NET, it's a deep dive into the world of Modular Monoliths with Vertical-Slice Architecture, Domain-Driven Design (DDD), CQRS, and advanced architectural patterns for Backend Development.

    Overview

    Section 1: Introduction

    Lecture 1 Introduction

    Lecture 2 Prerequisites, Source Code and Course Slides

    Lecture 3 Run the Final Application

    Lecture 4 Project Code Structure

    Lecture 5 Modular Monoliths Architectures, Patterns, Libraries and Best Practices

    Lecture 6 How to Follow the Course (The Course Flow and Way of Learning)

    Section 2: Monolithic Architecture - What's wrong with Traditional Monoliths ?

    Lecture 7 What is Traditional Monoliths (Monolithic Architecture) ?

    Lecture 8 When to use Monolithic Architecture

    Lecture 9 What's wrong with Traditional Monolithic Architecture ?

    Lecture 10 Technology Lock-In and Fear Cycle in Traditional Monolithic Architecture

    Lecture 11 Big Ball of Mud

    Section 3: Microservices Architectures - Why it is not fit projects ?

    Lecture 12 What are Microservices and Microservices Architecture ?

    Lecture 13 When to Use Microservices Architecture

    Lecture 14 What's wrong with Microservices Architecture ?

    Lecture 15 Fallacies of Distributed Computing

    Lecture 16 Microservices Antipattern: The Distributed Monolith

    Lecture 17 Amazon Case: Rearchitecting from a Distributed Microservices to a Monolith

    Section 4: The Bridge: Modular Monolith Architectures - Gateway between Monolithic and MS

    Lecture 18 What is Modular Monolithic (Modulith) Architecture ?

    Lecture 19 Why Modular Monoliths ? Advantages over Microservices ?

    Lecture 20 Monolith First Approaches from Martin Fowler and Sam Newman

    Lecture 21 Starting Point for Microservices: Gradually Transition with Incremental Refactor

    Lecture 22 Compare of Monolith, Microservices, Modular Monolith: Communications and Data

    Lecture 23 Compare of Monolith, Microservices, Modular Monolith: Development and Deployment

    Lecture 24 Shopify Modular Monolithic Architecture

    Lecture 25 Decomposition of EShop Modules: Catalog, Basket, Identity and Ordering Modules

    Section 5: Create EShop Modular Monolith Project Solution Structure

    Lecture 26 Introduction - Create EShop Modular Monolith Project Solution Structure

    Lecture 27 Create GitHub Repository for EShop Modular Monolithic Architecture

    Lecture 28 Create New Blank Solution: eshop-modular-monoliths

    Lecture 29 Modular Monolith Folder Structure: Bootstrapper, Modules, Shared

    Lecture 30 Create Bootstrapper Api Project

    Lecture 31 Configure Empty Web Project to Bootstrapper Api of Modular Monolith

    Lecture 32 Create Modules Folders according to DDD Bounded Context Analysis

    Lecture 33 External vs Internal Architecture of Modular Monoliths Architecture

    Lecture 34 Vertical Slice Architecture

    Lecture 35 Clean Architecture

    Lecture 36 Vertical Slice versus Clean Architecture

    Lecture 37 Create Module Projects as a Class Library

    Lecture 38 Shared Kernel Pattern in DDD

    Lecture 39 Created Shared Kernel Class Library Project for All Modules

    Lecture 40 Shared Project Dependencies to Modules Projects

    Lecture 41 Module Dependencies to Bootstrapper Asp.Net Api Project

    Section 6: Wire-up Dependencies Between Modules (DI Management of Modules)

    Lecture 42 Introduction - Wire-up Dependencies Between Modules (DI Management of Modules)

    Lecture 43 Asp.net Dependency Injection Management and Program.cs

    Lecture 44 Wiring up dependencies between modules

    Lecture 45 Develop AddCatalogModule extention method in CatalogModule.cs

    Lecture 46 Registering Catalog Dependencies into Program.cs

    Lecture 47 Develop AddBasketModule, AddOrderingModule extention methods

    Lecture 48 Registering Basket and Ordering Dependencies into Program.cs

    Lecture 49 Asp.net Middlewares and Http Request Pipeline

    Lecture 50 Configure Http Request Pipelines for Modules in Program.cs

    Lecture 51 Examine WebApplication Class Use Abstractions and Install Required Packages

    Lecture 52 Develop UseCatalogModule extention method for Module Configure the HTTP request

    Lecture 53 Integrating UseCatalogModule in Program.cs

    Lecture 54 Develop UseBasketModule and UseOrderingModule extention method for Module Config

    Lecture 55 Integrating UseBasketModule and UseOrderingModule extention method in Program.cs

    Lecture 56 Add GlobalUsings.cs for Each Project to Avoid Redundant Using Statements

    Section 7: First Module: Catalog Module with Vertical Slice Architecture and CQRS

    Lecture 57 Introduction - First Module: Catalog Module with Vertical Slice Architecture

    Lecture 58 Domain Analysis of Catalog Module: Models, UCs, Rest Apis, Databases

    Lecture 59 Technical Analysis of Catalog Module: Architectures, Patterns, Libraries, Folder

    Lecture 60 Way of Development: Shared -> Modules -> API

    Section 8: Develop Shared Domain for Tactical DDD Abstraction (Entity, Aggreagate, Events)

    Lecture 61 Introduction - Develop Shared Domain for Tactical DDD Abstraction

    Lecture 62 Domain Driven Design - DDD

    Lecture 63 Tactical Domain-Driven Design: Entities, Value Objects, Aggregates, A. Rooots

    Lecture 64 Develop DDD Abstractions (Entity, Aggregate, DomainEvent) in Shared Library

    Lecture 65 Develop IDomainEvent interface in Tactical DDD Abstraction using MediatR

    Lecture 66 Develop Aggregate classes in Tactical DDD Abstraction

    Section 9: Develop Catalog Domain with Product Domain Entity Models

    Lecture 67 Introduction - Develop Catalog Domain with Product Domain Entity Models

    Lecture 68 Develop Product Domain Entity Models in Catalog Module Domain Models

    Lecture 69 Anemic-domain vs Rich-domain Model Entities Entities in DDD

    Lecture 70 Develop DDD Rich-domain model Entity for Product Entity

    Lecture 71 Domain Events in DDD and Domain vs Integration Events

    Lecture 72 Develop Product Created and Updated Domain Event in Catalog Module

    Lecture 73 Raise ProductCreated and ProductPriceChanged Domain Event in Catalog Module

    Section 10: Data Management of Modular Monolith: Setup Postgres as a Main Database

    Lecture 74 Introduction - Data Management of Modular Monolith: Setup Postgres DB

    Lecture 75 Data Management of Modular Monoliths: 4 Data Isolation Strategies

    Lecture 76 Best Practice: DB Schema separation of Modules in Modular Monoliths apps

    Lecture 77 Multi-context EF DB Context object for DB Separate Schema for Data Isolation

    Lecture 78 Backing Services for Cloud-Native Architectures

    Lecture 79 EShop Modular Monolith Deployment Strategy

    Lecture 80 Setup PostgreSQL DB using Docker-compose file for Multi-container Docker env

    Lecture 81 Add PostgreSQL DB image into Docker-compose file for Multi-container Docker env

    Lecture 82 Run Docker-Compose on Visual Studio to setup PostgreSQL DB on Docker

    Lecture 83 Connect and Browse PostgreSQL DB using pgAdmin

    Section 11: Develop Shared and Catalog Data-Infrastructure with EF Core Code First

    Lecture 84 Introduction - Develop Shared and Catalog Data-Infrastructure Layer with EF Core

    Lecture 85 EF Core 8 Features, Code First Approach, Migrations and PostgreSQL Connection

    Lecture 86 Steps of EF Core Developments for Shared and Catalog Data-Infrastructure

    Lecture 87 Install EF Core Nuget Packages in Shared Library

    Lecture 88 Develop EF Core DBContext Object for Storing Entities in Catalog Module

    Lecture 89 Mapping DDD Objects to EF Entities - Develop EF Core Entity Configurations

    Lecture 90 EF Core PostgreSQL Connection String in appsettings.json file

    Lecture 91 Register EF Core DbContext in Asp.Net DependencyInjection Tool for PostgreSQL

    Lecture 92 Create EF Core Migrations for CatalogDbContext - Part 1

    Lecture 93 Create EF Core Migrations for CatalogDbContext - Part 2

    Lecture 94 Review and Run Docker-Compose on Visual Studio to setup PostgreSQL DB on Docker

    Lecture 95 Apply EF Core Migrations to PostgreSQL DB with Update-Database Command

    Lecture 96 Auto Migrate EF Core Entities to PostgreSQL DB when Application Startup

    Lecture 97 Develop Generic UseMigration extention method for DB Migration and Seed

    Lecture 98 Using UseMigration extention method on Module DependencyInjection classes

    Lecture 99 Test Auto-Migrations with UseMigration extention method on WebApplication

    Lecture 100 Seed EShopDb Product Data When Application Startup Just After UseMigration

    Lecture 101 Run Catalog Module to Migrate and Seed EShopDb with UseMigration method

    Lecture 102 EF Core Interceptors: SaveChangesInterceptor for Auditing Entities

    Lecture 103 Develop SaveChangesInterceptor to Auditing Entities for Order Entities

    Lecture 104 Run&Test Catalog Module for Audit with EF Save Changes Interceptor

    Lecture 105 Dispatch Domain Events w/ EF Core SaveChangesInterceptor

    Lecture 106 Develop DispatchDomainEventsInterceptor to Trigger Domain Event Handlers

    Lecture 107 Run&Test Catalog Module for Dispatch DomainEvents w/ EF SaveChanges Interceptor

    Section 12: Application Use Case Development with CQRS and MediatR

    Lecture 108 Introduction - Application Use Case development with CQRS and MediatR

    Lecture 109 CQRS (Command Query Responsibility Segregation) Pattern

    Lecture 110 Logical and Physical Implementation of CQRS Pattern

    Lecture 111 CQRS Design Pattern With MediatR Library (Logical CQRS Implementation)

    Lecture 112 Develop Feature Handler class with CQRS and MediatR

    Lecture 113 Create Abstraction on MediatR for CQRS - Command and Query Separation

    Lecture 114 Create Abstraction on MediatR for CQRS - Command and Query Separation - 2

    Section 13: Catalog Application Use Case Development with CQRS and MediatR

    Lecture 115 Introduction - Catalog Application Use Case Development with CQRS and MediatR

    Lecture 116 Quick Remember Catalog Module Application Use Cases Analysis

    Lecture 117 Develop Catalog Module Folder Structure for CQRS

    Lecture 118 Develop Dto Classes for Product in Catalog Module

    Lecture 119 Develop Products CreateProductCommand and Handler in Catalog Modules Application

    Lecture 120 Develop Products CreateProductCommandHandler using CatalogDbContext in Catalog

    Lecture 121 Develop Products UpdateProductCommand and Handler using CatalogDbContext

    Lecture 122 Develop Products DeleteProductCommand and Handler using CatalogDbContext

    Lecture 123 Develop Product Queries with CQRS and MediatR in Catalog Module

    Lecture 124 Mapping with Mapster

    Lecture 125 Develop Product Queries with CQRS and MediatR in Catalog Module w/ Mapster

    Lecture 126 Develop GetProductByCategory Queries with CQRS and MediatR in Catalog Module

    Lecture 127 Develop GetProductById Queries with CQRS and MediatR in Catalog Module

    Lecture 128 Develop Domain Event Handlers with MediatR INotificationHandler in Catalog

    Lecture 129 Develop Domain Event Handlers with MediatR INotificationHandler - Part 2

    Section 14: Develop Catalog API Endpoints Expose Minimal Api Endpoints with Carter and REPR

    Lecture 130 Introduction - Develop Catalog API Endpoints Exposing Minimal Api Endpoints

    Lecture 131 REPR Design Pattern and CQRS MediatR Request LifeCycle

    Lecture 132 Minimal Apis and Install Carter Library to Expose Minimal Apis

    Lecture 133 Quick Remember Catalog Module Endpoints Analysis

    Lecture 134 Develop CreateProduct POST Endpoint with Carter implements ICarterModule

    Lecture 135 Develop CreateProduct POST Endpoint with Carter implements ICarterModule- Part 2

    Lecture 136 Developing UpdateProduct Endpoint for REST APIs in Catalog Module

    Lecture 137 Developing DeleteProduct Endpoint for REST APIs in Catalog Module

    Lecture 138 Developing GetProducts Endpoint for REST APIs in Catalog Module

    Lecture 139 Developing GetProductById Endpoint for REST APIs in Catalog Module

    Lecture 140 Developing GetProductByCategory Endpoint for REST APIs in Catalog Module

    Lecture 141 Register Carter libraries into Asp.Net Dependency Injection Service and Request

    Lecture 142 Create Extention Method for Carter Assembly Registrations

    Lecture 143 Create Postman Collection for EShopModules

    Lecture 144 Test Catalog Module - CreateProduct POST Request - Debug Carter Minimal API

    Lecture 145 Test UpdateProduct Endpoint with CQRS and VSA in Catalog Module

    Lecture 146 Test Get Product Endpoints with CQRS and VSA in Catalog Module

    Lecture 147 Test DeleteProduct Endpoint with CQRS and VSA in Catalog Module

    Section 15: Develop Cross-cutting Concerns for Catalog and Each Module in EShop Modules

    Lecture 148 Introduction - Develop Cross-cutting Concerns for Catalog and Each Module

    Lecture 149 MediatR Pipeline Behaviours and Fluent Validation Library

    Lecture 150 Add Cross-cutting Concerns into Shared Class Library to use in all modules

    Lecture 151 Apply Validation with AbstractValidator using Fluent Validation Library

    Lecture 152 Apply Validation with AbstractValidator using Fluent Validation Library - Part 2

    Lecture 153 Validation Pipeline Behaviour with MediatR using Fluent Validation Library

    Lecture 154 Remove Manual Validator and Test Validation Pipeline Behaviour with MediatR usin

    Lecture 155 Develop CRUD Command Validators with Fluent Validation

    Lecture 156 Global Handling Exceptions in ASP.NET Core with app.UseExceptionHandler

    Lecture 157 Shared Handle Exceptions Generic Way in ASP.NET Core w/ app.UseExceptionHandler

    Lecture 158 Global Exception Handling with IExceptionHandler interface in Asp.Net Core

    Lecture 159 Register Custom Exception Handling into Asp.net with AddExceptionHandler method

    Lecture 160 Logging Behavior in MediatR Pipeline for Cross-cutting concerns

    Lecture 161 Test Logging Behaviour for all MediatR Requests on Catalog Module

    Lecture 162 Structured Logging Using Serilog in .NET 8.0 Minimal APIs

    Lecture 163 Serilog WriteTo Seq for Structured Logging in .NET

    Lecture 164 Develop Pagination Class for Query GetProducts using CQRS and MediatR

    Lecture 165 Develop GetProducts Query apply Pagination using CQRS and MediatR

    Section 16: Develop Basket Module with Vertical Slice Architecture and CQRS

    Lecture 166 Introduction - Develop Basket Module with Vertical Slice Architecture and CQRS

    Lecture 167 Domain Analysis of Basket Module: Models, UCs, Rest Apis, Databases

    Lecture 168 Technical Analysis of Basket Module: Architectures, Patterns, Libraries, Folders

    Lecture 169 Develop ShoppingCart Domain Entity Models in Basket Domain Entities

    Lecture 170 Develop DDD Rich-domain model Entity for ShoppingCart Entities

    Section 17: Develop Basket Data-Infrastructure with EF Core Code First and PostgreSQL

    Lecture 171 Introduction - Develop Basket Data-Infrastructure with EF Core Code First

    Lecture 172 Steps of Infrastructure EF Core Developments for Basket Module

    Lecture 173 Develop EF Core DBContext Object for Storing Entities in Basket Infrastructure

    Lecture 174 Mapping DDD Objects to EF Entities - Develop EF Core Entity Configurations

    Lecture 175 EF Core 8 Relations and DDD ValueObject Mapping with ComplexType and Property

    Lecture 176 Develop SC and SC Items Relations Entity Configurations

    Lecture 177 EF Core SQL Server Connection String in appsettings.json file

    Lecture 178 Register EF Core DbContext in Asp.Net Dependency Injection Tool for PostgreSQL

    Lecture 179 Create EF Core Migrations for BasketDbContext in Basket Infrastructure

    Lecture 180 Run Docker-Compose on Visual Studio to setup PostgreSQL on Docker

    Lecture 181 Apply EF Core Migrations to PostgreSQL DB with Update-Database Command

    Lecture 182 Auto Migrate EF Core Entities to PostgreSQL when Application Startup with Coding

    Lecture 183 Test Auto-Migrations with UseMigration Extention Method on WebApplication

    Section 18: Develop Basket Application Use Case Development with CQRS and MediatR

    Lecture 184 Introduction - Basket Application Use Case Development with CQRS and MediatR

    Lecture 185 Develop Basket Folder Structure for CQRS

    Lecture 186 Develop Dto Classes for ShoppingCart in Basket Module

    Lecture 187 Develop Basket CreateBasketCommand and Handler in Basket Application Use Cases

    Lecture 188 Develop Basket CreateBasketCommandHandler using BasketDbContext in Basket Module

    Lecture 189 Develop Basket DeleteBasketCommand and Handler using BasketDbContext in Basket

    Lecture 190 Develop Basket Queries with CQRS and MediatR in Basket Module

    Lecture 191 Develop Basket AddItemIntoBasketHandler with CQRS and MediatR

    Lecture 192 Develop Basket RemoveItemFromBasketHandler with CQRS and MediatR

    Section 19: Develop Basket API Endpoints Exposing Minimal Api Endpoints with Carter and REPR

    Lecture 193 Introduction - Develop Basket API Endpoints Exposing Minimal Api Endpoints

    Lecture 194 Develop CreateBasket POST Endpoint with Carter implements ICarterModule

    Lecture 195 Develop DeleteBasket Endpoint with Carter implements ICarterModule

    Lecture 196 Develop GetBasket Endpoint with Carter implements ICarterModule for Minimal Apis

    Lecture 197 Develop AddItemIntoBasket Endpoint with Carter implements ICarterModule

    Lecture 198 Develop RemoveItemFromBasket Endpoint with Carter implements ICarterModule

    Lecture 199 Register MediatR and Carter libraries into Asp.Net Dependency Injection Service

    Lecture 200 Register MediatR libraries into Asp.Net Dependency Injection Service and Request

    Lecture 201 Develop MediatR Extention Method for Custom Registration With Assemblies

    Lecture 202 Test Basket API - CreateBasket POST Request - Debug Carter Minimal API

    Lecture 203 Test Get Basket Endpoints with CQRS and VSA in Basket Module

    Lecture 204 Test DeleteBasket Endpoint with CQRS and VSA in Basket Module

    Lecture 205 Test AddItemIntoBasket Endpoint with CQRS and VSA in Basket Module

    Lecture 206 Test RemoveItemFromBasket Endpoint with CQRS and VSA in Basket Module

    Section 20: Develop Distributed Caching with Redis in Basket Module

    Lecture 207 Introduction - Develop Distributed Caching with Redis in Basket Module

    Lecture 208 Develop BasketRepository Class using EF Core DbContext object

    Lecture 209 Implement IBasketRepository Class using EF Core DbContext object

    Lecture 210 Register IBasketRepository into DI of Basket Module

    Lecture 211 Inject and Use IBasketRepository into Handler classes in Basket Module

    Lecture 212 Inject and Use IBasketRepository into AddItem and RemoveItem Handler classes

    Lecture 213 Quick Test Basket Endpoint with CQRS and VSA in Basket Module

    Lecture 214 Cache-aside Pattern and Cache Invalidation

    Lecture 215 Proxy Pattern, Decorator Pattern and Scrutor Library

    Lecture 216 Develop CachedBasketRepository with Proxy Pattern, Decorator Pattern and Scrutor

    Lecture 217 Develop CachedBasketRepository with Proxy Pattern, Decorator Pattern - Part 2

    Lecture 218 Develop CachedBasketRepository with Proxy Pattern, Decorator Pattern - Part 3

    Lecture 219 Register Decorated CachedBasketRepository and StackExchangeRedis with Scrutor

    Lecture 220 Register StackExchangeRedis into Common DI in Api Project Program.cs

    Lecture 221 Setup Redis as a Distributed Cache using Docker-compose file for Multi-container

    Lecture 222 Run Docker-Compose on Visual Studio to setup Redis Distributed Cache on Docker

    Lecture 223 Connect Redis Cache from Local Basket Module and send GET request Basket Cache

    Lecture 224 Develop Custom JsonConverter for ShoppingCart and Items When Reading to Redis

    Lecture 225 Develop Custom JsonConverter for ShoppingCart and Items - Part 2

    Lecture 226 Use Custom JsonSerializerOptions with JsonConverter for ShoppingCart and Items

    Lecture 227 Quick Test Basket Endpoint with CachedBasket Repository and Custom JsonConverter

    Section 21: Sync Communications between Modules with In-process Method Calls (Public APIs)

    Lecture 228 Introduction - Sync Communications between Modules with In-process Method Calls

    Lecture 229 How Modular Monolithic Architecture Handle Communications Between Modules

    Lecture 230 Basket Module Synchronous Use Cases - Adding an Item to the Basket Communication

    Lecture 231 Examine AddItemIntoBasketHandler Class: Get Product Price from Catalog Module

    Lecture 232 Sync Communication Between Modules Using Contracts Class Libraries

    Lecture 233 Step 1: Create Catalog.Contracts Class Library

    Lecture 234 Step 2: Move exposing MediatR method Query or Commands into Catalog.Contracts

    Lecture 235 Spliting CQRS Contract related common operations into Shared.Contracts Class lib

    Lecture 236 Step 3: Modify Catalog Module getting reference from Catalog.Contracts Class Lib

    Lecture 237 Step 4: Basket Get Reference from Catalog.Contracts Class Library

    Lecture 238 Step 6: Get Product entity values into AddItemIntoBasketHandler and set Price

    Lecture 239 Test Basket AddItemIntoBasket Sync Call to Catalog Module to Get Product Data

    Lecture 240 Step 7: Migrating Microservices: Evolving Contracts Sync Communication

    Section 22: Async Communications between Modules w/ RabbitMQ & MassTransit for UpdatePrice

    Lecture 241 Introduction - Async Communications between Modules w/ RabbitMQ & MassTransit

    Lecture 242 How Modular Monolithic Architecture Handle Async Communications Between Modules

    Lecture 243 Fan-Out Publish/Subscribe Messaging Pattern

    Lecture 244 Quick Remember: Domain vs Integration Events - Domain leads to Integration Event

    Lecture 245 Domain Analysis of Async Communication between Catalog and Basket Modules

    Lecture 246 Technical Analysis of Async Communication between Catalog and Basket Modules

    Lecture 247 Steps of Developing Async Communication between Catalog and Basket Modules

    Lecture 248 Step1: Examine Catalog Module Domain and Integration Events

    Lecture 249 Step2: Create Shared.Messaging Class Library

    Lecture 250 Develop ProductPriceChangedIntegration Event in Shared.Messaging Class Library

    Lecture 251 Develop MassTransit Extention Methods to Register RabbitMQ connection into DI

    Lecture 252 Develop MassTransit Extention Methods to Register connection into DI of Catalog

    Lecture 253 Add Project Reference to Shared.Messaging in Catalog and Basket Modules

    Lecture 254 Register MassTransit Packages into Bootstrapper Api DI in Program.cs file

    Lecture 255 ProductPriceChanged Integration Event: How Domain leads to Integration Event

    Lecture 256 Step3: Catalog Publish UpdatePrice Integration Event

    Lecture 257 Step4: Basket Subscribe and consume ProductPriceChanged Integration Event

    Lecture 258 Develop UpdateItemPriceInBasket Feature in Basket Module

    Lecture 259 Develop UpdateItemPriceInBasket Feature in Basket Module - Part 2

    Lecture 260 Call UpdateItemPriceInBasketCommand in ProductPriceChangedIntegrationEventHander

    Lecture 261 TEST - ProductPriceChangedIntegrationEvent w/ In-memory MassTransit

    Lecture 262 What is RabbitMQ and Main Components of RabbitMQ (Producer, Queue, Consumer)

    Lecture 263 Shifting In-memory Bus to RabbitMQ Message broker in Masstransit

    Lecture 264 Develop MassTransit Extention Methods to Register RabbitMQ connection into DI

    Lecture 265 Setup RabbitMQ for Async Communication using Docker-compose file

    Lecture 266 Run Docker-Compose on Visual Studio to setup RabbitMQ on Docker

    Lecture 267 TEST - ProductPriceChangedIntegrationEvent w/ RabbitMQ MassTransit

    Beginner .NET Developers who is curious about .NET Backend technologies with Modular Monolith Architectures