.NET 8 后端开发训练营: 模块化单体, 垂直切片架构, 领域驱动设计, CQRS和事务发件箱模式 | .NET 8 Backend Bootcamp: Modulith, VSA, DDD, CQRS and Outbox

感谢网友分享,暂时只对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下载,请先
支付后点击下载按钮即可查看网盘链接,如果链接失效,可联系本站客服
下载价格:VIP专享
此资源仅对VIP开放下载
下载说明:支付后点击下载按钮即可查看网盘链接,如果链接失效,可联系本站客服
0
分享到:
低调求发展,潜心习技术
没有账号? 忘记密码?