Framework.core底层库

我要开发同款
chenss2024年03月30日
118阅读
所属分类作品

作品详情

项目背景:由于公司没有共用的底层框架,各个项目缺乏统一的逻辑规范及一堆重复的组件;使得项目因框架出现问题时及需要升级时,多个项目要同步修改,不利于程序扩展性开发;因此提出统一底层框架的开发。
目标:解决项目的扩展性、逻辑规范性、公用函数统一使用入口
概述:框架封装了事件总线、ORM 、分布式缓存、定时任务 BackgroundService、Mongo 、工具类(Utility)、依赖注入扩展类(DI )、权限认证等
1.使用.NET Standard 2.1和.NET 6.0 做为底层开发
2. 涉及开发的功能如下
1)RH.Framework.ORM(orm 框架):定义仓储、工作单元及基类;基类提供主键、时间、是否删除等基础信息;仓储内部实现包含三大项:数据代理接口、参数化配置、数据上下文;数据代理接口用于记录日志或内容补充;参数化配置用于从 appsettings 种获取配置或者其他配置文件中读取信息;数据上下文主要是对 sqlsugar 框架的包装以及加入了一些自定义扩展,如条件过滤,用户信息赋值,多租户切换等;仓储的实现同时还公开了原生 sql 的编写方式,以满足复杂业务;最后为仓储提供了扩展类,以补充一些特殊的不常用的需求;如分表查询、树型查询等。令说代理接口及数据上下文都是通过接口注入,所以可以自定义实现去替换默认实现。工作单元这里主要处理数据的统一提交。
2)RH.Framework.EventBus (事件总线):统一发布消息源,接口内部定义多模式消息发送、延迟消息发送、参数配置发送消息机制;默认实现使用的是 EasyNetQ ,针对 rabbitmq 进行消息处理。内部的参数配置提供单条消息确认、批量确认、持久化、事务等操作;该组件还实现了消息的自动订阅,底层通过扫描尾部继承了 IConsume 的接口进行自动订阅。
3)分布式缓存:使用 Redis 作为内存载体,定义通用接口包含 string、hash、list、set、zset及 lua 脚本封装和分布式锁;使用 ServiceStack.Redis 来实现具体接口,同时提供自定义 Mapper 映射,使对象可以很方便的转换 hash 需要的格式。底层实现类提供两种实现方式供选择,一种是哨兵一种是单个服务的实现,通过指定的 Options 参数配置进行选择。
4)B
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论