# SingleAbpFramework **Repository Path**: zhcnlei/single-abp-framework ## Basic Information - **Project Name**: SingleAbpFramework - **Description**: No description available - **Primary Language**: C# - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-12-26 - **Last Updated**: 2026-01-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SingleAbpFramework 软件项目介绍 ## 一、框架定位与迭代背景 SingleAbpFramework 是基于 Volo.Abp 框架深度定制开发的 Single 系列框架迭代版本,是上一代 Single 框架的自然延续与核心升级。本次迭代并非简单的功能叠加,而是基于当前技术发展趋势的战略性调整,核心驱动因素源于 AI Coding 技术的爆发式发展。 在 AI Coding 普及之前,T4 模板模式是代码生成的主流方案之一,但随着自动代码生成技术的快速迭代与成熟,传统 T4 模板模式的适配性、灵活性短板逐渐凸显,已难以匹配高效开发需求。基于此,新框架在继承原有 Single 框架核心能力与业务适配经验的前提下,核心方向转向原生常规开发规范的全面适配——这一调整不仅能大幅提升 AI IDE(如 Copilot、Cursor 等)的代码识别与生成精度,更能降低不同技术背景开发者的二次开发门槛,提升团队协作效率。 ## 二、核心架构设计 新框架采用前后端分离的经典架构模式,该设计选型既契合当前行业技术主流,更深度适配 AI Coding 技术特性:一方面,原生前端代码(如 Vue、React 等)的结构化程度更高,AI 工具可更精准地理解业务逻辑并生成符合规范的代码,减少前端开发的重复工作量;另一方面,前后端分离架构支持前后端团队独立并行开发,后续可根据业务规模灵活扩展人力资源,打破传统单体架构的人员协作瓶颈。 开发理念层面,框架延续上一代 Single 框架的核心思路,以“提升开发效率、适配人员配置”为核心目标:通过 Application 层 Service 自动创建 OpenAPI,简化接口开发流程;同时采用“单业务模块对应单 Application”的设计,不进行过度拆分,降低开发与维护成本。 ## 三、技术栈与核心依赖 ### 后端技术栈 - **核心框架**:Volo.Abp 框架 - **ORM**:SqlSugar - **API**:ASP.NET Core Web API - **IoC容器**:Autofac - **文档**:Swagger/OpenAPI ### 核心依赖 - `Saf.Framework.Service`:基础服务层框架 - `Saf.Framework.SqlSugar`:数据库访问层框架 - `Saf.Framework.Util`:通用工具类库 - `Saf.Framework.Web`:Web层扩展功能 ## 四、项目结构 ``` src/ ├── application/ # 应用服务层 │ ├── Saf.Demo.Application/ # 示例应用模块 │ └── Saf.Sys.Application/ # 系统应用模块 ├── framework/ # 框架核心层 │ ├── Saf.Framework.Service/ # 服务层框架 │ ├── Saf.Framework.SqlSugar/ # 数据库访问框架 │ ├── Saf.Framework.Util/ # 工具类库 │ └── Saf.Framework.Web/ # Web层扩展 └── webapi/ # Web API层 └── Saf.Web/ # API入口应用 ``` ### 模块职责说明 #### 1. 应用服务层(application/) - **Saf.Demo.Application**:示例应用模块,演示框架使用方式 - **Saf.Sys.Application**:系统核心应用模块,包含用户管理等基础功能 #### 2. 框架核心层(framework/) - **Saf.Framework.Service**:定义基础服务类和实体服务类 - **Saf.Framework.SqlSugar**:数据库访问层,封装SqlSugar操作 - **Saf.Framework.Util**:提供通用工具方法(如JsonHelper、YitterHelper) - **Saf.Framework.Web**:Web层扩展,提供控制器和Swagger配置 #### 3. Web API层(webapi/) - **Saf.Web**:API应用入口,配置服务和中间件 ## 五、核心功能特性 ### 1. 自动API生成 - Application层Service自动映射为OpenAPI接口 - 支持RESTful风格路由 - 集成Swagger文档自动生成 ### 2. 数据访问层 - 基于SqlSugar的ORM封装 - 支持多数据库配置 - 提供BaseEntity基类,自动维护创建/更新信息 - 内置分页、查询等常用数据操作方法 ### 3. 服务层架构 - 分层服务设计(BaseService → EntityBaseService → 业务Service) - 支持事务管理 - 统一的ServiceResultModel返回格式 ### 4. 实体映射 - 自动支持实体名和列名的下划线转换 - 基于正则表达式的表名自动生成规则 ## 六、开发理念与设计原则 框架延续上一代 Single 框架“轻量化、高效率、易维护”的核心思路,在设计上兼顾团队配置与开发效率的平衡:未采用 DDD(领域驱动设计)模式,核心考量在于 DDD 模式虽适用于超大型复杂业务系统,但会增加架构复杂度与人员学习成本,对于多数常规业务场景而言存在“过度设计”问题。 为进一步提升开发效率,框架采用“Application 层 Service 自动生成 OpenAPI”的设计:开发者无需手动编写接口文档与接口适配代码,通过 Service 层逻辑自动映射生成标准化 OpenAPI,大幅简化前后端对接流程。同时,框架坚持“单业务模块对应单 Application”的拆分原则,不进行过度细化的模块拆分,既保证业务模块的独立性,又降低跨模块协作与后期维护的成本。 (图1 自动生成的 Swagger 接口文档) ![图1 自动生成的 Swagger 接口文档](./doc/images/swagger.png)