1 Star 0 Fork 37

不爱敲代码的程序员 / shriek-fx

forked from JamesYeung / shriek-fx 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

ShriekFx:zap:

Build status MyGet Pre Release Author GitHub license

shriek-fx 是一个基于 .NET Core 2.0 开发的简单易用的快速开发框架,遵循领域驱动设计规范约束,并结合CQRS架构提供实现事件驱动、事件回溯、响应式等特性的基础设施。内部调用对用户几乎无感知也无需自己实现,开箱即用。目标是协助小型应用使用DDD的思维去开发,最终让开发者告别对领域驱动设计的复杂认识,并且享受到正真意义的面向对象设计模式来带的美感。

除此之外,还包含为了增强核心框架功能和迎合通用业务系统快速开发需求的众多实用的、面向微服务的拓展组件。

PS. 领域驱动设计是一种软件系统设计方法理论,而本框架则提供了规范约束,是能够让这种设计理论真正落地实现的开发工具套件(SDK)。

本框架参考自《领域驱动设计》原著、《实现领域驱动设计》和ENode。

特性:

  1. 领域驱动设计(DDD)
  2. 命令查询职责分离(CQRS)
  3. 事件驱动架构 (EDA)
  4. 事件回溯 (ES)
  5. 最终一致性 (Eventually Consistent)
  6. 契约即服务 (通过定义的接口自动生成客户端和服务端实现,支持Http和Socket)
  7. 框架中每个组件都有基础实现,最简单时只需一个核心类库就能跑起来
  8. 遵循端口与适配器模式,框架组件适配多种第三方组件实现,可从单体架构到面向服务架构按需扩展

设计规范

  1. 尽量使用.NET Standard和官方提供的类库,第三方类库设计成组件利用DI来按需组合。

文档

安装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 SDK 2.0+

示例项目

认证授权系统 ShriekFX.Auth 开发中

内容管理系统 ShriekFX.CMS 开发中

其他示例在Samples目录下

任务列表(会不断调整):

  • C端
    • 命令总线 CommandBus
    • 事件总线 EventBus
    • 进程内异步队列
    • 内存事件缓存
    • 接口实现自动注册
    • Actor 响应式架构
    • Saga 流程管理
    • 事件存储 + 聚合快照(备忘录模式)
      • 内存模式 (聚合修改后立刻持久化)
      • EF Core实现
      • NoSQL实现
        • LiteDB
        • Cosmos DB (MongoDB API)
      • InfluxDB (时序数据库)
      • Redis
    • Bus / 消息队列(MQ)
      • RabbitMQ
  • Q端 + Real DB 适配器
    • EF Core
    • Dapper
      • 接口标注Sql特性动态创建仓储
      • SmartSql扩展(实现Xml Sql模板)
      • Linq 扩展
      • 特性指定事务范围
    • TiDB
    • 查询基类
  • 应用服务层
    • 接口即服务
      • Http / MVC
      • TCP / RPC
      • Dotnetty
    • GraphQL
  • UI层
    • 权限管理
    • OAuth 2.0
    • ASP.NET Core 扩展
      • WebApi JS客户端生成
    • Angular
    • Vue (Vuetify)
  • 定时任务
    • Hangfire
  • 基础设施
    • Aop 拦截器
    • 跟踪监控
    • 日志
      • NLog
      • Log4net
      • Exceptionless
    • 序列化器
    • 服务定位器
    • 加密
    • 爬虫
  • 单元测试
    • CQRS
    • ServiceProxy
  • 示例 (Samples)
    • 内存事件仓储
    • EFCore事件仓储
    • NoSQL事件仓储
    • InfluxDB事件仓储
    • Redis事件仓储
    • RabbitMQ总线
    • WebApi代理
    • CQRS 整体示例
The MIT License (MIT) Copyright (c) 2017-present, James Yeung Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

一个使用 .NET Core 2.0 开发的简单易用的领域驱动设计分层框架(DDD+CQRS),宗旨是让小型应用也能用DDD的思想去开发,使开发者告别对领域驱动设计的复杂认识。如果喜欢的话也请到Github多给我一个star谢谢! 展开 收起
C#
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C#
1
https://gitee.com/WQEQWEQE/shriek-fx.git
git@gitee.com:WQEQWEQE/shriek-fx.git
WQEQWEQE
shriek-fx
shriek-fx
master

搜索帮助

14c37bed 8189591 565d56ea 8189591