EquinoxProject:一个适合学习DDD、CQRS、Event Sourcing等技术.Net Web框架搭建开源项目

124 阅读2分钟

大家好,我是编程乐趣。

对于很多.Net同学来说,想要学习Clean Architecture、DDD(领域驱动设计)、CQRS(命令查询责任分离)、Event Sourcing(事件溯源)等先进架构模式。

想通过开源项目来学习,但往往很多开源项目过于庞大,导致学习困难。

下面推荐一个集成了 .NET现代软件开发实践的开源项目。

01 项目简介

EquinoxProject 是由 GitHub 上的开源项目,通过该项目,我们可以学习如何利用最新的 .NET 技术构建高质量的应用程序。

它基于 ASP.NET 8.0 构建,采用了 Clean Architecture(清晰架构)、DDD(领域驱动设计)、CQRS(命令查询职责分离)和 Event Sourcing(事件溯源)等多种现代软件开发实践。

该项目功能比较简单,非常适合用来学习。

02 架构设计

项目采用了以下架构模式和设计原则:

  • **Clean Architecture:**通过分层架构实现关注点分离,确保代码的可维护性和可扩展性。

  • **DDD(领域驱动设计):**通过分层架构和领域模型模式,将业务逻辑与技术实现分离。

  • **CQRS:**命令查询责任分离,确保系统的高性能和一致性。

  • **Event Sourcing:**通过事件溯源记录系统状态变化,便于数据恢复和审计。

  • **Domain Events:**领域事件用于处理业务逻辑中的异步操作。

  • **Domain Notifications:**领域通知用于处理业务逻辑中的错误和警告。

  • **Unit of Work:**工作单元模式,确保数据库操作的原子性。

  • **Repository:**仓库模式,用于封装数据访问逻辑。

03 技术栈

使用了技术包括:

  • ASP.NET 8.0:用于构建 Web 应用程序。

  • ASP.NET MVC Core:用于构建 Web 前端。

  • ASP.NET WebApi Core:提供 RESTful API 接口,支持 JWT Bearer 认证。

  • ASP.NET Identity Core:用于用户身份验证和授权。

  • Entity Framework Core 8.0:作为 ORM 工具,用于数据库操作。

  • .NET Core Native DI:依赖注入框架。

  • AutoMapper:用于对象映射。

  • FluentValidator:用于数据验证。

  • MediatR:用于实现 CQRS 模式。

  • Swagger UI:提供 API 文档和测试界面,支持 JWT 认证。

  • .NET DevPack:用于简化开发流程。

图片

04 前端截图

1、首页

图片

2、用户列表

图片

3、登录

图片

05 项目地址

github.com/EduardoPire…

- End -

更多开源项目: github.com/bianchengle…