guojianbin / shriek-fx

⚡️一个使用 .NET Core 2.0 开发的简单易用的领域驱动设计分层框架(DDD+CQRS),宗旨是让小型应用也能用DDD的**去开发,使开发者告别对领域驱动设计的复杂认识。

Home Page:https://yangshunjie.com/shriek-fx

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ShriekFx:zap:

Build Status Build status MyGet Pre Release Author GitHub license

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的**去开发,使开发者告别对领域驱动设计的复杂认识。

特性:

  1. 领域驱动设计(DDD)
  2. 命令查询职责分离(CQRS)
  3. 事件驱动架构 (EDA)
  4. 事件回溯 (ES)
  5. 最终一致性 (Eventually Consistent)
  6. Server/Client 动态代理 (提供接口自动实现客户端和服务端)
  7. 框架中每个组件都有基础实现,只需一个核心类库就能跑起来
  8. 遵循端口与适配器模式,框架组件适配多种第三方组件实现,从单体到面向服务按需扩展

安装Nuget包

目前开发版本已发布到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>

开发环境

  1. Visual Studio 15.3
  2. .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
  • UI层
    • 权限管理
    • OAuth 2.0
    • MVC Razor Helpers
    • Angular
  • 定时任务
    • Hangfire
  • 基础设施
    • 日志
      • NLog
      • Log4net
      • Exceptionless
    • 序列化器
    • 服务定位器
    • 加密
    • 爬虫
  • 示例 (Samples)
    • 内存事件仓储
    • EFCore事件仓储
    • NoSQL事件仓储
    • InfluxDB事件仓储
    • Redis事件仓储
    • RabbitMQ总线
    • WebApi代理
    • CQRS 整体示例

About

⚡️一个使用 .NET Core 2.0 开发的简单易用的领域驱动设计分层框架(DDD+CQRS),宗旨是让小型应用也能用DDD的**去开发,使开发者告别对领域驱动设计的复杂认识。

https://yangshunjie.com/shriek-fx

License:MIT License


Languages

Language:C# 100.0%