一个使用 .NET Core 2.0 开发的简单易用的领域驱动设计分层框架(DDD+CQRS),宗旨是让小型应用也能用DDD的**去开发,使开发者告别对领域驱动设计的复杂认识。
- 领域驱动设计(DDD)
- 命令查询职责分离(CQRS)
- 事件驱动架构 (EDA)
- 事件回溯 (ES)
- 最终一致性 (Eventually Consistent)
- 契约即服务 (通过定义的接口自动获得客户端和服务端实现)
- 框架中每个组件都有基础实现,最简单时只需一个核心类库就能跑起来
- 遵循端口与适配器模式,框架组件适配多种第三方组件实现,可从单体架构到面向服务架构按需扩展
目前开发版本已发布到MyGet,从Nuget安装时需要添加MyGet的源地址,或者在解决方案根目录添加NuGet.config
文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="Shriek-Fx" value="https://www.myget.org/F/shriek-fx/api/v3/index.json" />
<add key="Nuget.org" value="https://api.nuget.org/v3/index.json" />
</packageSources>
</configuration>
ShriekFX.CMS 开发中
其他示例在Samples目录下
- C端
- 命令总线 CommandBus
- 事件总线 EventBus
- 进程内异步队列
- 内存事件缓存
- 接口实现自动注册
- 事件存储 + 聚合快照(备忘录模式)
- 内存模式 (聚合修改后立刻持久化)
- EF Core实现
- NoSQL实现
- LiteDB
- Cosmos DB (MongoDB API)
- InfluxDB (时序数据库)
- Redis
- Bus / 消息队列(MQ)
- RabbitMQ
- Actor 响应式架构
- Saga 流程管理
- Q端 + Real DB 适配器
- EF Core
- Dapper
- TiDB
- 查询基类
- 应用服务层
- 接口即服务
- Http / MVC
- TCP / RPC
- GraphQL
- 接口即服务
- UI层
- 权限管理
- OAuth 2.0
- ASP.NET Core 扩展
- Angular
- Vue (Vuetify)
- 定时任务
- Hangfire
- 基础设施
- Aop 拦截器
- 跟踪监控
- 日志
- NLog
- Log4net
- Exceptionless
- 序列化器
- 服务定位器
- 加密
- 爬虫
- 示例 (Samples)
- 内存事件仓储
- EFCore事件仓储
- NoSQL事件仓储
- InfluxDB事件仓储
- Redis事件仓储
- RabbitMQ总线
- WebApi代理
- CQRS 整体示例