.NET 8 后端开发训练营: 模块化单体, 垂直切片架构, 领域驱动设计, CQRS和事务发件箱模式 | .NET 8 Backend Bootcamp: Modulith, VSA, DDD, CQRS and Outbox
- 网盘分类:百度 
- 资源分类:学习区 
- 资源标签:.NET  后端  开发  训练 
- 资源链接:https://wpfx.eu.org/ziyuan/8179.html
- 资源详情:
感谢网友分享,暂时只对VIP会员开放!
.NET 8 后端开发训练营: 模块化单体, 垂直切片架构, 领域驱动设计, CQRS和事务发件箱模式 | .NET 8 Backend Bootcamp: Modulith, VSA, DDD, CQRS and Outbox
开发基于 .NET 的 EShop Modulith,使用的技术栈包括 Asp.Net Web API、PostgreSQL、Redis、RabbitMQ、Keycloak、Seq、Docker 和 MassTransit。
您将会学到
模块化单体架构(Modulith)和垂直切片架构(VSA)
领域驱动设计(DDD)
命令查询职责分离(CQRS)
用于可靠消息传递的出箱模式(Outbox Pattern)
CQRS(命令查询职责分离)和垂直切片架构用于模块开发
通过进程内方法调用进行通信——公共API,并使用RabbitMQ进行事件驱动通信
使用Keycloak安全API,采用OpenID Connect和承载令牌(Bearer Tokens)
ASPNET Core最小API以及.NET 8和C# 12的最新特性
带有功能文件夹的垂直切片架构实现
使用MediatR库的DDD、CQRS模式并遵循最佳实践
在UpdatePriceChanged事件中使用领域事件(Domain Events)与集成事件(Integration Events)
对PostgreSQL数据库使用Entity Framework Core代码优先(Code-First)方法和迁移
包括使用Serilog记录日志、使用MediatR管道行为进行验证等横切关注点(Cross-cutting Concerns),还有异常处理、分页
在PostgreSQL数据库之上使用Redis作为分布式缓存
开发代理模式、装饰器模式和缓存旁置模式(Cache-aside pattern)
通过进程内方法调用(公共API)同步Catalog和Basket模块之间的通讯
通过RabbitMQ和MassTransit异步模块间通信
使用Keycloak认证开发用户身份模块
OAuth2 + OpenID Connect流程与Keycloak
用于可靠消息传递的出箱模式(Outbox Pattern)与购物篮结账(BasketCheckout)用例
通过MassTransit库将BasketCheckoutEvent发布到RabbitMQ,并由订单模块消费
迁移到微服务:EShop模块到微服务的迁移,采用Stranger Fig模式
要求
C# 和编程基础知识
描述
在这个训练营中,您将学习如何使用最前沿的技术和架构模式构建稳健、可扩展且易于维护的应用程序。
我们将开发以下内容:
模块化单体架构(Modulith)
垂直切片架构(VSA)
领域驱动设计(DDD)
命令查询职责分离(CQRS)
用于可靠消息传递的出箱模式(Outbox Pattern)
我们将从基础开始,并逐步深入每个主题。您将通过构建一个完整的EShop模块化单体应用程序获得实际操作经验,实现诸如CQRS和出箱模式等功能。
在本课程中,我们将遵循CQRS(命令查询职责分离)和垂直切片架构进行模块开发。
各模块之间将通过进程内方法调用——公共API通信,并使用RabbitMQ进行事件驱动通信。
我们将使用Keycloak通过OpenID Connect和承载令牌(Bearer Tokens)来保护我们的API。
我们将为模块间可靠的消息传递实现出箱模式。
此外,您还将开发以下模块和项目:
商品目录模块(Catalog module),其中包括:
使用ASP.NET Core最小API以及.NET 8和C# 12的最新特性。
使用功能文件夹实现垂直切片架构。
使用MediatR库开发DDD、CQRS模式并遵循最佳实践。
在价格更新事件(UpdatePriceChanged event)中使用领域事件(Domain Events)与集成事件(Integration Events)。
对PostgreSQL数据库使用Entity Framework Core代码优先(Code-First)方法和迁移。
使用Carter暴露最小API端点。
横切关注点包括使用Serilog记录日志、使用MediatR管道行为进行验证、异常处理、分页等。
购物篮模块(Basket module),其中包括:
类似于商品目录模块;开发DDD、CQRS、垂直切片架构实现。
另外:
在PostgreSQL数据库之上使用Redis作为分布式缓存。
开发和实现代理模式、装饰器模式和缓存旁置模式(Cache-aside pattern)。
通过MassTransit库将BasketCheckoutEvent发布到RabbitMQ。
实现出箱模式以确保购物篮结账(BasketCheckout Use Case)时消息传递的可靠性。
身份模块(Identity Module),其中包括:
使用Keycloak认证开发用户身份模块。
使用Keycloak进行OAuth2 + OpenID Connect流程。
在Docker-compose文件中设置Keycloak作为支持服务的身份提供商。
使用Keycloak OpenId Connect在AspNet中保护EShop模块。
使用Keycloak身份的JwtBearer令牌进行OpenID Connect。
订单模块(Ordering Module),其中包括:
类似于商品目录和购物篮模块;开发DDD、CQRS、垂直切片架构实现。
实现出箱模式以确保购物篮结账(BasketCheckout Use Case)时消息传递的可靠性。
最后,我们将讨论
迁移到微服务:使用Stranger Fig模式将EShop模块转换为微服务
本课程不仅仅是学习.NET,它是一次深入探索模块化单体与垂直切片架构、领域驱动设计(DDD)、CQRS及后端开发高级架构模式的世界之旅。
此课程面向哪些人:
从初学者到高级的.NET开发者,如果您对带有模块化单体架构(Modular Monolith Architectures)的.NET后端技术充满好奇,那么这个路径非常适合您。
资源链接: 本站最新使用说明! 如何升级VIP会员? 链接失效请发表评论反馈!
发表评论(审核通过后显示) 取消回复