A ddd-cqrs framework for .NET Core 2.0 that would make you shriek! For it's simple,elegant and useful!
一个使用 .NET Core 2.0 开发的简单易用的领域驱动设计分层框架(DDD+CQRS),宗旨是让小型应用也能用DDD的思想去开发,使开发者告别对领域驱动设计的复杂认识。
- 领域驱动设计(DDD)
- 命令查询职责分离(CQRS)
- 事件驱动架构 (EDA)
- 事件回溯 (ES)
- 最终一致性 (Eventually Consistent)
- Server/Client 动态代理 (提供接口自动实现客户端和服务端)
- 框架中每个组件都有基础实现,只需一个核心类库就能跑起来
- 遵循端口与适配器模式,框架组件适配多种第三方组件实现,从单体到面向服务按需扩展
目前开发版本已发布到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>
- Visual Studio 15.3
- .NET Core 2.0 SDK [ x64 | x86 ]
- C端
- 命令总线 CommandBus
- 事件总线 EventBus
- 进程内异步队列
- 内存事件缓存
- 接口实现自动注册
- 事件存储 + 聚合快照(备忘录模式)
- 内存模式 (聚合修改后立刻持久化)
- EF Core实现
- NoSQL实现
- LiteDB
- Cosmos DB (MongoDB API)
- InfluxDB (时序数据库)
- Redis
- Bus / 消息队列(MQ)
- RabbitMQ
- Orleans
- Actor
- Saga
- Q端 + Real DB
- EF Core
- Dapper
- 查询基类
- 应用服务层
- WebApi 接口动态代理
- Http / MVC
- TCP / RPC (DotNetty)
- GraphSQL
- WebApi 接口动态代理
- UI层
- 权限管理
- OAuth 2.0
- MVC Razor Helpers
- Angular
- 定时任务
- Hangfire
- 基础设施
- 日志
- NLog
- Log4net
- Exceptionless
- 序列化器
- 服务定位器
- 加密
- 爬虫
- 日志
- 示例 (Samples)
- 内存事件仓储
- EFCore事件仓储
- NoSQL事件仓储
- InfluxDB事件仓储
- Redis事件仓储
- RabbitMQ总线
- WebApi代理
- CQRS 整体示例