一个简单易用的领域驱动框架,宗旨是让小型应用也能用DDD的思想去开发

网友投稿 744 2022-10-22 15:49:00

一个简单易用的领域驱动框架,宗旨是让小型应用也能用DDD的思想去开发

ShriekFx ⚡

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

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

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

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

特性:

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

设计规范

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

文档

中文

安装Nuget包

目前开发版本已发布到MyGet,从Nuget安装时需要添加MyGet的源地址,或者在解决方案根目录添加NuGet.config文件,内容如下:

开发环境

Visual Studio 15.3+.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 ORM EF CoreDapper 接口标注Sql特性动态创建仓储 Linq 扩展 特性指定事务范围 SmartSql扩展(实现Xml Sql模板) TiDB 查询基类 应用服务层 接口即服务 Http / MVC TCP / RPC Dotnetty GraphQL UI层 权限管理 OAuth 2.0 ASP.NET Core 扩展 WebApi JS客户端生成 Swagger 动态表单 Angular Vue (Vuetify) 定时任务 Hangfire 基础设施 Aop 拦截器 AspectCore 跟踪监控 SkyWalking Butterfly 日志 NLog Log4net Exceptionless Kafka + ELK 序列化器 服务定位器 加密 爬虫 单元测试 CQRS ServiceProxy 示例 (Samples) 内存事件仓储 EFCore事件仓储 NoSQL事件仓储 InfluxDB事件仓储 Redis事件仓储 RabbitMQ总线 WebApi代理 CQRS 整体示例

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:IDEA Eval Reset 使用方法
下一篇:mybatis定义sql语句标签之delete标签解析
相关文章