|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/net-backend-bootcamp-modulith-vsa-ddd-cqrs-and-outbox/
课程评论:没有评论
.NET 8 后端训练营:模块化整体、垂直切片、领域驱动设计、CQRS 与 Outbox 本训练营旨在教授学员如何使用前沿技术和架构模式构建健壮、可扩展且易于维护的应用程序。课程将涵盖以下核心内容: * **模块化整体 (Modulith) 架构** * **垂直切片架构 (VSA)** * **领域驱动设计 (DDD)** * **命令查询责任分离 (CQRS)** * **可靠消息传递的 Outbox 模式** 课程从基础知识开始,逐步深入探讨每个主题。学员将通过实际操作构建一个完整的 EShop 模块化整体应用程序,并实现 CQRS 和 Outbox 模式等功能。 **关键技术与实践:** * **开发环境:** Asp.Net Core Minimal APIs、.NET 8 和 C# 12 的最新特性。 * **架构实现:** 采用垂直切片架构(Feature 文件夹)和 DDD、CQRS 模式(使用 MediatR 库)。 * **模块通信:** * **同步通信:** 模块间通过进程内方法调用(公共 API)进行。 * **异步通信:** 使用 RabbitMQ 和 MassTransit 实现事件驱动通信(例如 Catalog 模块和 Basket 模块之间的价格更新事件)。 * **数据库:** 使用 Entity Framework Core Code-First 方法以及 PostgreSQL 数据库和迁移。 * **API 网关/路由:** 使用 Carter 暴露 Minimal API 端点。 * **安全性:** 使用 Keycloak 作为身份提供者,通过 OpenID Connect 和 Bearer Tokens 保护 API。 * **可靠消息传递:** 实现 Outbox 模式以确保模块间消息传递的可靠性。 **开发的模块与功能:** 1. **Catalog 模块:** * 实现 VSA、DDD、CQRS 模式。 * 使用 Domain Events & Integration Events 处理 `PriceChanged` 事件。 * 支持日志记录 (Serilog)、验证 (MediatR Pipeline Behaviors)、异常处理和分页等横切关注点。 2. **Basket 模块:** * 与 Catalog 模块类似,实现 VSA、DDD、CQRS 架构。 * 使用 Redis 作为分布式缓存,在 PostgreSQL 数据库之上。 * 实现 Proxy、Decorator 和 Cache-aside 等设计模式。 * 通过 MassTransit 库将 BasketCheckoutEvent 发布到 RabbitMQ。 * 为 BasketCheckout 用例实现 Outbox 模式。 3. **模块通信:** * Catalog 和 Basket 模块之间的同步通信(进程内方法调用)。 * Catalog 和 Basket 模块之间的异步通信(RabbitMQ & MassTransit)用于价格更新。 4. **Identity 模块:** * 构建用户身份模块,集成 Keycloak 进行身份验证。 * 实现 Keycloak 的 OAuth2 + OpenID Connect 流程。 * 通过 Docker-compose 设置 Keycloak 作为后端服务。 * 使用 AspNetJwtBearer token 和 Keycloak OpenId Connect 保护 EShop 模块。 5. **Ordering 模块:** * 与 Catalog 和 Basket 模块类似,实现 VSA、DDD、CQRS 架构。 * 为 BasketCheckout 用例实现 Outbox 模式。 **进阶主题:** * **迁移到微服务:** 探讨如何将 EShop 模块逐步迁移到微服务架构(使用 Stranger Fig Pattern)。 本课程不仅仅是关于.NET 学习,更是一次深入探索后端开发中模块化整体、垂直切片架构、领域驱动设计 (DDD)、CQRS 以及高级架构模式的实践之旅。
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.