• This repository has been archived on 08/Dec/2022
  • Stars
    star
    666
  • Rank 67,706 (Top 2 %)
  • Language
    C#
  • License
    MIT License
  • Created over 7 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An easy-to-use rapid development framework developed on the basis of.NET Core 2.0, following the constraints of domain Driven Design (DDD) specifications, combined with the CQRS architecture to provide the infrastructure for event-driven, event backtracking, responsiveness, and more. Let developers enjoy the true meaning of object-oriented design patterns brought by the aesthetic.

ShriekFx

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 ORM
    • EF Core
    • Dapper
      • 接口标注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 拦截器
    • 跟踪监控
    • 日志
      • NLog
      • Log4net
      • Exceptionless
      • Kafka + ELK
    • 序列化器
    • 服务定位器
    • 加密
    • 爬虫
  • 单元测试
    • CQRS
    • ServiceProxy
  • 示例 (Samples)
    • 内存事件仓储
    • EFCore事件仓储
    • NoSQL事件仓储
    • InfluxDB事件仓储
    • Redis事件仓储
    • RabbitMQ总线
    • WebApi代理
    • CQRS 整体示例

More Repositories

1

vue-router-storage

A vue router storage solution. -If your vue application needs to jump to a third party page, and then jump back, want to restore to the original history and continue to operate, the use of this plug-in is the best solution.如果你的vue应用需要跳转到第三方页面,再跳转回来时,想恢复到原来的历史记录并继续操作,使用本插件是最好的解决方案。
JavaScript
94
star
2

NCaptcha

Captcha in .NET Core
C#
47
star
3

CoreProxy

Implement a simple Aop using .Net Core library System.Reflection.DispatchProxy
C#
42
star
4

aspnetcore-vuetify-universal

Hosting vuetify docs project with aspnetcore, which support server-side-prerendering(ssr)
Vue
23
star
5

aspnetcore-material-universal

ASP.NET Core 2.1 & Angular 6(+) & Material2 6(+) Advanced Starter - with Server-side prerendering
JavaScript
22
star
6

GrpcChat

A chat room sample with grpc and blazor in .net core
C#
17
star
7

naa4e

Microsoft .NET 企业级应用架构设计(第二版)源码
C#
14
star
8

MyDiary.CQRS

DDD-CQRS练习
C#
7
star
9

YouBlog.Mvc

一个利用asp.net mvc开发的博客系统,名为小悠。
JavaScript
7
star
10

Vue-ChinaAreaPicker

vue+muse-ui 实现中国地区选择器
Vue
6
star
11

GenericHostWindowsServiceWithTopshelf

a demo for running .NET Core Generic Host as Windows Service using Topshelf
C#
6
star
12

Floo

🧙‍♂️ 🧙‍♀️ Floo network in the Muggle world - A community site.
C#
6
star
13

iview-aspnetcore

IView-Admin with ASP.NET Core 2.0
JavaScript
5
star
14

dotnetconf-website

The website of .NET Conf China 2020
HTML
5
star
15

wizard-cinema

巫师电影院 哈迷有求必应屋观影报名助手
C#
4
star
16

AspNetCoreGrpcWeb

A sample for ASP.NET Core gRPC-Web
JavaScript
4
star
17

nlog-kafka-elk

[WIP] nlog-kafka-elk
C#
4
star
18

Angular2AspNetCore

AspNet Core project with Covalent - An Angular2 and Materail Style CRM Template Solution。 Asp.Net Core+Angular2+Material2 最全面的解决方案
TypeScript
3
star
19

abp-vnext-pro-blazor

An Ant Design Blazor dasboard for abp vnext
2
star
20

elderjames.github.io

welcome to my blog !
HTML
2
star
21

vue-sync-form

Post formdata using a synchronous way for Vue.js
JavaScript
1
star
22

Erechtheion

基于Asp.net core的论坛、Q&A
C#
1
star
23

fansof.net

Source code of fansof.net
C#
1
star
24

semver-release-test

1
star
25

iGdou.HttpClient

使用.NET 4.5 HttpClient实现的通用网页爬虫类,广泛应用在爱海大项目中
C#
1
star
26

YouBlog.Core

A Blog base on ASP.NET Core
C#
1
star
27

aspnetcore-ng-alain

Simple Integration of ng-alain 0.4.0 and ASP.NET Core 2.0
C#
1
star
28

Sigma

Enterprise intelligence platform based on LLM and GenAI
C#
1
star
29

igdou-weapp

爱海大小程序
CSS
1
star