介绍
本框架基于.NET 9版本(该版本在性能优化、功能扩展及稳定性方面均有显著提升,适用于各类生产环境),采用轻量封装模式,保留ASP.NET Core原生特性,具有学习成本低、扩展性强的优势,可快速适配小型项目与中型系统的开发需求
框架明确三大核心定位:
轻量精简:仅集成开发必备核心模块,剔除冗余功能,避免框架过度厚重,保障系统启动速度与运行性能;
可扩展性强:各模块采用独立设计模式,后续可灵活添加缓存、多租户、接口限流等扩展功能,无需对原有代码进行大面积修改;
开箱即用:整合.NET生态中成熟、稳定的技术方案,提前配置基础参数,开发者克隆项目后即可快速启动,无需从零进行基础配置。
结合上述定位,本框架最终确定实现七大核心模块:ORM数据访问、依赖注入、日志记录、权限控制、定时任务、任务队列、长连接协议,该七大模块可覆盖90%以上的日常业务开发场景,满足多数项目的基础开发需求。
ORM SqlSugar
在.NET领域,ORM框架种类繁多,常见的有EF Core、Dapper、SqlSugar等。经过综合对比,本框架选用SqlSugar作为ORM解决方案,其核心优势在于轻量高效、支持多数据库(包括SqlServer、MySql、PostgreSql等),语法简洁易懂,且内置自动建库建表、通用仓储等便捷功能,可有效减少重复的CRUD(增删改查)代码编写,降低开发者的学习成本与开发工作量。
本框架技术选型说明(基于.NET 9):核心框架采用ASP.NET Core 9 Web API,ORM框架选用SqlSugar,依赖注入采用原生DI结合Scrutor扩展(替代传统手动批量注入方式,配置更简洁、扩展性更强),日志框架选用Serilog(支持文件与控制台双输出模式),权限控制采用JWT认证授权+策略授权,定时任务选用Quartz.NET,任务队列选用Hangfire(支持异步任务与延时任务调度),长连接采用SignalR(基于WebSocket实现实时通信)。
此外,SqlSugar与ASP.NET Core 9的兼容性极佳,无需复杂配置即可快速集成,可灵活适配不同数据库场景,是通用开发框架的最优ORM选择之一
依赖注入 Scrutor
ASP.NET Core 9原生自带依赖注入容器,其功能已能满足多数项目的开发需求,无需额外引入Autofac等第三方依赖注入框架。为进一步优化注入体验、提升开发效率,本框架采用Scrutor扩展原生DI容器,通过程序集扫描机制,自动注册Service层的服务,替代了传统的手动批量注入方式。
该方案的优势在于配置简洁、扩展性强,后续新增业务服务时,只需遵循统一的命名规范,即可实现服务的自动注入,无需手动修改Program.cs中的配置,有效降低配置成本与人为失误概率。
日志记录 Serilog
日志系统是项目调试、线上问题排查与系统监控的核心组件,ASP.NET Core 9原生日志功能较为基础,无法满足生产环境下的日志管理需求。Serilog作为.NET生态中应用最广泛的日志框架之一,支持控制台输出、文件存储、数据库存储等多种日志持久化方式,配置灵活,可自定义日志格式与输出规则,便于后续日志分析与问题追溯。
本框架中,Serilog配置为控制台与文件双输出模式,日志文件按天滚动生成,既便于开发阶段实时查看日志信息,也能在系统上线后留存完整日志记录,为线上问题排查提供有力支撑
权限控制 JWT认证授权 + 策略授权
当前多数项目采用前后端分离架构,权限控制是保障系统安全的核心环节。JWT(JSON Web Token)作为一种无状态认证方案,无需在服务器端存储会话信息,仅需在客户端存储Token,即可实现跨域、多端的权限验证,适配前后端分离架构的开发需求。
本框架集成JWT认证授权机制,配置Token过期时间、密钥等核心参数,通过注解即可实现接口级别的权限控制。同时,结合策略授权模式,可灵活扩展角色权限、接口权限等精细化控制功能,满足不同项目的权限管理需求
定时任务 Quartz.NET
日常开发中,定时任务是常见需求,如定时生成业务报表、定时发送通知、定时清理系统冗余数据等。Quartz.NET作为.NET领域最成熟的定时任务框架,支持简单定时、Cron表达式定时等多种定时模式,可实现任务的暂停、恢复、动态添加等功能,稳定性与可靠性极高,适用于生产环境下的定时任务调度。
本框架已集成Quartz.NET,并配置基础测试任务,后续开发者只需新增任务类、配置定时规则,即可快速实现各类定时任务的开发与部署,无需重复搭建定时任务调度体系
长连接协议 SignalR
对于实时通信场景,如在线聊天、数据大屏、实时通知等,长连接技术是核心支撑。SignalR作为ASP.NET Core 9原生的实时通信框架,可自动适配WebSocket、Server-Sent Events等多种通信方式,无需开发者手动处理底层通信协议,极大提升实时通信功能的开发效率。
本框架已集成SignalR,实现基础的实时消息推送功能,后续可根据业务需求,扩展在线状态管理、群聊、点对点通信等功能,满足各类实时通信场景的开发需求。
任务队列 RabbitMQ
任务队列主要用于处理异步任务、延时任务,可有效解决高并发场景下的任务阻塞问题,提升系统响应速度与稳定性。本框架选用RabbitMQ作为任务队列解决方案,其核心优势在于具备企业级稳定性,支持消息持久化、ACK确认机制、公平分发等高级特性,可有效保障任务不丢失、不重复执行,同时支持跨服务通信、削峰填谷,适用于各类生产环境下的异步任务调度需求。
RabbitMQ作为成熟的企业级消息队列,虽需独立部署,但具备极强的可靠性与扩展性,本框架已对其进行封装,实现了生产者、消费者的统一管理,以及自动重连、异常处理等机制,简化了集成与使用流程。后续可根据业务需求,灵活扩展延时任务、死信队列等高级功能,适配各类复杂异步业务场景。









暂无评论内容