.Net Core 清晰架构:CQRS与事件源的完美融合

.Net Core 清晰架构:CQRS与事件源的完美融合

项目简介

.Net Core Clean Architecture 是一个用于构建清晰架构和微服务的 .Net Core 开源启动项目,它演示了如何使用 CQRS 模式,MediatR 和自定义中间件处理横切关注点,以及如何通过 gRPC 和 REST API 使用 OpenAPI/Swagger 进行服务通信。此外,它还集成了 FluentValidation,AutoMapper,CosmosDB 数据存储以及 Serilog 日志记录和表存储以实现混合事件源模式。

该项目的灵感来源于 Jason Taylor 关于“Clean Architecture”的演讲和 Eric Evans 的经典著作《领域驱动设计》(DDD),以及 Jimmy Board 的出色工作——MediatR 项目。

项目技术分析

项目的核心是将业务逻辑集中在 领域层应用层基础设施层 中。无头实施允许您在控制台、测试、WebAPI 和 Web 应用之间互换接口。

  • 领域层 面向非技术人员的领域专家共享,包括易于阅读的领域模型/实体和作为策略编写的重要的业务逻辑。
  • 应用层 包括命令和查询逻辑,较低级别的业务逻辑,视图模型,并作为领域层和基础设施层之间的桥梁。
  • 基础设施层 包括持久化层、配置、MediatR 管道、MediatR 通知、诊断、日志记录和第三方集成。

技术应用场景

核心服务可以通过 REST API 和 Webhooks 以 Docker 容器的形式部署到 Linux 或 Windows 上,支持各种平台,如:

  • Azure、AWS、Google 或其他主要云提供商
  • 虚拟机或集群
  • Azure Web Apps、Amazon EC2 或 Google AppEngine
  • Azure Service Fabric
  • Azure Service Fabric Mesh
  • Kubernetes 或者任何你选择的容器编排系统。

项目特点

  1. 基于 Domain-Driven Design 设计,强调与非技术人员的早期合作,确保软件能够准确反映现实世界的问题。
  2. 使用 MediatR 支持 CQRS 模式,简化命令和查询对象的创建和发送,提高代码可读性和可维护性。
  3. 实现事件源,提供业务操作的不可变历史记录,便于调试和审计,且具有未来扩展潜力。
  4. 自定义中间件处理横切关注点,例如日志记录、性能监控和通知。
  5. 提供对 REST、Webhooks 和 gRPC 服务间通信的支持。

项目的核心服务提供了主入口点,用于访问客户端。依赖注入由默认的 .Net Core 服务提供者处理。提供的工具和 API 示例可以在相应文件夹中找到。此外,项目鼓励开发人员将客户端分离到单独的仓库和构建系统,以便独立管理。

通过 .Net Core Clean Architecture,你可以构建出灵活、可扩展的解决方案,满足复杂业务需求,同时保持代码整洁,易于理解和维护。现在就加入我们,探索这个项目,体验领域驱动设计和事件源的强大魅力吧!

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咎旗盼Jewel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值