逸城 发表于 3 天前

.NET8后端开发训练营 模块化单体, 垂直切片架构, 领域驱动设计, CQRS和事务发件箱模式(英文)

.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后端技术充满好奇,那么这个路径非常适合您。


下载地址:
**** Hidden Message *****

szukodf 发表于 3 天前

这个帖一般般,还可以哦。

chewel611 发表于 前天 00:08

啥也不说了,感谢楼主分享哇!

rsfon 发表于 前天 00:34

啥也不说了,感谢楼主分享哇!

leonardshen 发表于 前天 07:37

啥也不说了,感谢楼主分享哇!

sakura_dmz 发表于 前天 08:26

啥也不说了,感谢楼主分享哇!

djwb1982 发表于 前天 08:30

啥也不说了,感谢楼主分享哇!

baobeisuper 发表于 前天 09:35

单体架构(Mod

halfh2o 发表于 前天 13:08

啥也不说了,感谢楼主分享哇!

AliceClosn 发表于 前天 13:52

啥也不说了,感谢楼主分享哇!
页: [1] 2
查看完整版本: .NET8后端开发训练营 模块化单体, 垂直切片架构, 领域驱动设计, CQRS和事务发件箱模式(英文)