Skip to content

框架对比:MyBack(CQApi) vs VOL Pro ​

对象:D:\VOL源码\MyBack(用户在用)vs D:\VOL源码\api_sqlsugar(VOL Pro 3.5.8)。 两侧均为源码实证。MyBack 分析基于 101 次源码探查,VOL 侧结论出自《后端源码分析.md》。


1. 一句话画像 ​

MyBack (CQApi)VOL Pro 3.5.8
本质Blog.Core 模板 + 深度行业化改造的分层单体 ERP(销售/采购/生产/品质/仓储/财务/模具,业务重资产)商用低代码 CRUD 框架(代码生成器 + 前后端闭环)
架构形态微服务全家桶"接线完毕、电闸全关"(网关/Nacos/Consul/MQ/APM/限流均有代码、默认禁用),实际单体分层运行纯单体分层,无微服务组件
.NET6.0(JwtBearer 等包还停在 5.x)8.0
ORMSqlSugar(多库模式:ERP/ERPPic/ERPLog 三 SqlServer 库启用,支持 CQRS 读写分离配置)SqlSugar(查询真身)+ EF(壳),支持动态分库 ConfigId
规模~1500 .cs,Model 551 文件(手工 Entity+DTO 双份)9 项目,代码生成器产出,体量均匀

2. 技术栈对照 ​

维度MyBack (CQApi)VOL Pro
DIAutofac + DynamicProxy(AOP 就绪)原生 DI 程序集扫描
认证JWT HS256 自签 + 可切 Ids4(关);网关二次鉴权JWT HS256 + 无感置换(vol_exp 头)
权限实际仅登录级 [Authorize] + 角色 Policy;菜单/按钮权限表保留但 PermissionHandler 已删三级完整:认证 → 接口[ApiActionPermission] → 数据(字段级/UserAuth/租户),与前端框架打通
事务[UseTran] 特性 + UnitOfWorkFilter,人工标注(TranAOP 默认关)ServiceBase 内部封装,钩子内 return Error 即回滚
缓存Memory+Redis 双实现;缓存 AOP 存在但未注册、零使用CacheContext 门面 + 菜单/字典/权限三件套版本号联动失效
日志/观测强项:log4net(文件+入库+Mongo) + Serilog→ES/ELK + OPLog/请求/IP 日志中间件 + MiniProfiler + SkyAPM + SignalR 实时日志推送请求日志落库(Sys_Log)为主,无 APM
消息队列自研 EventBus 三实现(RabbitMQ/Kafka/RedisMQ)+ protobuf,默认全关,仅 1 演示事件无外置 MQ
定时任务Quartz + 配置入库 + 管理 API(默认关)Quartz HTTP 回调型,开箱可用
报表/导出FastReport.Core 2024(服务端报表+打印);无 Excel 导出包EPPlus/NPOI Excel 导入导出、下载模板
外部集成重行业:钉钉审批流、企业微信、飞书、建行支付、富勒 MES、京东、阿里云 OSS框架为主,无行业集成
前端契约通用 BindGrid/BindGridPager/FindByID/RSubmit;前端可传 SQL where 片段固定 getPageData/Add/... API + SaveModel 约定
软删除/审计无全局软删;无统一审计基类(AOP 未启用),单据自带 MakeOP/CheckOP 业务字段LogicDelField 全局逻辑删;CreateID/Creator/CreateDate 框架级自动审计
模型验证无显式验证(无 ModelState/FluentValidation)ObjectActionValidator + 前后端统一校验
代码生成无(Entity/DTO 手工双份同构)核心卖点:Sys_TableInfo 配置 → 四层代码+Vue 页面+菜单
部署Dockerfile/Linux 目标,网关可独立部署IIS/Kestrel 常规
数据库SqlServer 三库(RYERPNew/Pic/Log,www.szry.online:58900)多库支持(演示库与 MyBack 同一台服务器)

3. 架构风格对比 ​

4. MyBack 优点 ​

  1. 真实业务沉淀:七大业务域(销售/采购/生产/品质/仓储/财务/模具)实打实落地,含出入库 384KB 级复杂服务——这是买不来的资产。
  2. 行业集成深度:钉钉审批流、企微、飞书、建行支付、富勒 MES、京东、FastReport 打印——VOL 侧全部为零。
  3. 观测体系:MiniProfiler + SkyAPM + ELK 通道 + Mongo 日志 + SignalR 实时日志——生产排障能力远超 VOL。
  4. 架构余地:网关/注册中心/MQ/限流/AOP 全部接线完毕,业务长大时"开闸"即可演进,不必推倒。
  5. SecretFile 外置密钥设计(cqapi.audience.secret.txt)思路比 VOL 硬编码进仓库好。

5. MyBack 缺点(多数为"有骨头没肉") ​

  1. 横切组件启用率低:缓存 AOP、TranAOP、EventBus、Quartz、限流、Nacos/Consul 全部有代码未启用——维护心智负担大(要理解 14 个项目),实际收益小。
  2. 事务靠人工自觉:[UseTran] 忘标就裸奔;VOL 是框架兜底。
  3. 权限体系残缺:PermissionHandler 已删,只剩登录级;按钮/接口级权限与前端未打通——多角色场景裸露。
  4. 无代码生成:Entity+DTO 手工双份同构(551 文件的来源),新表开发效率远低于 VOL 生成器。
  5. .NET 6 + 5.x 包:已脱离 LTS 支持窗口(.NET 6 于 2024-11 EOL),升级欠账。
  6. 安全风险实存:
    • 登录明文密码比对(LoginController.cs:78)
    • 前端可传 SQL where 片段(BindGrid 系契约)——注入面与越权面
    • 钉钉 appsecret、MES 测试账号明文入库
    • 限流未启用
  7. 无模型验证、无统一审计、无软删——数据治理三件套全缺。

6. VOL 优点 ​

  1. 开发效率碾压:配置生成四层+Vue 页面+菜单,新单据分钟级;Partial 生成/手写物理隔离,升级安全。
  2. 权限三级闭环(认证/接口/数据)与前端框架原生打通。
  3. 框架级兜底:事务、审计字段、逻辑删、模型验证、参数校验开箱即用。
  4. .NET 8 活跃演进(日期注释可追溯到 2025)。
  5. 双 ORM(EF 兼容壳)+ 多库 + 动态分库 + 国密/雪花/限流等现代件齐备。

7. VOL 缺点 ​

  1. 强约定锁定:路由/字段/信封/缓存模式全定死,逃生口只有 Dapper/原生 SQL;深度定制要动 Core。
  2. 观测缺失:无 APM/链路追踪,生产排障基本靠 Sys_Log。
  3. 业务空白:ERP/MES 是演示级,无行业集成(支付/钉钉/MES 全无)。
  4. CORS 全放行、Swagger 常开、密钥明文——安全基线同样要人工收紧(见《后端源码分析.md》§13)。
  5. 商用框架:内核 Core 尽量不改,与自研需求冲突时受限。

8. 结论与建议 ​

场景建议
继续运营现有 ERP(MyBack)不迁移。业务资产在 MyBack,迁移成本远大于收益。优先补短板:①开启 TranAOP/给关键链路补 [UseTran] ②恢复接口级权限 ③堵 SQL 片段入口 ④密码改哈希 ⑤开限流
新增管理后台/报表型 CRUD 页面用 VOL 做增量:开发效率高、权限/导出开箱即用,且两套后端同一台 DB 服务器,可共库共表(VOL 生成器直接指向 RYERPNew 建配置表即可,注意 VOL 需要 Sys_* 系统表)
长期演进MyBack 补测试+升 .NET 8 后,其"微服务电闸"才有开的价值;VOL 侧则把自定义业务全部圈在 Partial,避免深度依赖内核

一句话:MyBack 是"业务很重、框架半成品",VOL 是"框架很完整、业务空白"。两者不是替代关系——MyBack 管存量业务,VOL 管增量页面是当前性价比最高的组合。


2026-11-02 整理。MyBack 侧敏感信息(密码/密钥)仅描述位置,未在文档中复制。