dmz社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 563|回复: 23

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

[复制链接]
  • TA的每日心情

    2025-7-2 15:14
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    47

    主题

    59

    帖子

    271

    积分

    荣誉会员

    积分
    271

    发表于 2025-6-29 22:00:00 | 显示全部楼层 |阅读模式
    程序人生
    课程方向: C#/.Net 
    课程类型: 优化/进阶 

    本站资源全部免费,回复即可查看下载地址!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

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


    下载地址:

    游客,如果您要查看本帖隐藏内容请回复

    温馨提示:
    1、本站所有内容均为互联网收集或网友分享或网络购买,本站不破解、不翻录任何视频!
    2、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意!
    3、本站资源仅供本站会员学习参考,不得传播及用于其他用途,学习完后请在24小时内自行删除.
    4、本站资源质量虽均经精心审查,但也难保万无一失,若发现资源有问题影响学习请一定及时点此进行问题反馈,我们会第一时间改正!
    5、若发现链接失效了请联系管理员,管理员会在2小时内修复
    6、如果有任何疑问,请加客服QQ:1300822626 2小时内回复你!
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2025-7-10 00:01
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    0

    主题

    91

    帖子

    248

    积分

    心领神会

    Rank: 3Rank: 3

    积分
    248

    发表于 2025-6-29 22:43:53 | 显示全部楼层
    这个帖一般般,还可以哦。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 21:45
  • 签到天数: 94 天

    [LV.6]常住居民II

    0

    主题

    161

    帖子

    647

    积分

    技冠群雄

    Rank: 6Rank: 6

    积分
    647

    发表于 2025-6-30 00:08:32 | 显示全部楼层
    啥也不说了,感谢楼主分享哇!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 800 天

    [LV.10]以坛为家III

    1

    主题

    895

    帖子

    4292

    积分

    傲视群雄

    Rank: 8Rank: 8

    积分
    4292

    发表于 2025-6-30 00:34:47 | 显示全部楼层
    啥也不说了,感谢楼主分享哇!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    昨天 05:58
  • 签到天数: 458 天

    [LV.9]以坛为家II

    0

    主题

    1088

    帖子

    3562

    积分

    傲视群雄

    Rank: 8Rank: 8

    积分
    3562

    发表于 2025-6-30 07:37:14 | 显示全部楼层
    啥也不说了,感谢楼主分享哇!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:50
  • 签到天数: 653 天

    [LV.9]以坛为家II

    4

    主题

    4819

    帖子

    1万

    积分

    超凡入圣

    Rank: 10Rank: 10Rank: 10

    积分
    11725

    发表于 2025-6-30 08:26:48 | 显示全部楼层
    啥也不说了,感谢楼主分享哇!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2025-7-25 09:24
  • 签到天数: 293 天

    [LV.8]以坛为家I

    1

    主题

    779

    帖子

    2542

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    2542

    发表于 2025-6-30 08:30:59 | 显示全部楼层
    啥也不说了,感谢楼主分享哇!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    昨天 09:11
  • 签到天数: 963 天

    [LV.10]以坛为家III

    0

    主题

    1841

    帖子

    6747

    积分

    深不可测

    Rank: 9Rank: 9Rank: 9

    积分
    6747

    发表于 2025-6-30 09:35:26 | 显示全部楼层
    单体架构(Mod
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    昨天 10:28
  • 签到天数: 757 天

    [LV.10]以坛为家III

    0

    主题

    1046

    帖子

    4431

    积分

    傲视群雄

    Rank: 8Rank: 8

    积分
    4431

    发表于 2025-6-30 13:08:14 | 显示全部楼层
    啥也不说了,感谢楼主分享哇!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    昨天 13:17
  • 签到天数: 201 天

    [LV.7]常住居民III

    1

    主题

    240

    帖子

    1088

    积分

    技冠群雄

    Rank: 6Rank: 6

    积分
    1088

    发表于 2025-6-30 13:52:04 | 显示全部楼层
    啥也不说了,感谢楼主分享哇!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|小黑屋|本站代理|dmz社区

    GMT+8, 2025-8-9 01:28 , Processed in 0.103826 second(s), 11 queries , Redis On.

    Powered by Discuz! X3.4 Licensed

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表