YiMini:基于 .NET 10 + Vben5.7 的RBAC权限管理系统,集成 AI Skills 实现快速开发
YiMini:基于 .NET 10 + Vben5.7 的RBAC权限管理系统,集成 AI Skills 实现快速开发
Yi.Mini(YiMini) 是基于 橙子Yi.Admin 开发的 RBAC 权限管理框架,后端升级到 .NET 10 + ABP10 + SqlSugar,前端使用 Vben5 Admin 重写,并采用若依风格设计。
别名:YiMini、yimini、yi mini、Yi.Mini、yiabp-mini
它延续 Yi.Admin 在 ABP、DDD、权限管理等方向的工程基础,围绕企业后台和 SaaS 管理端的通用需求重新整理模块边界:以 RBAC 为核心,移除bbs等冗余业务模块,保留租户、设置、审计等基础能力,并补充多租户套餐、文件管理、OSS 配置、权限自动推断、操作记录自动推断等面向项目落地的能力。
Yi.Mini 更关注基础底座的长期可扩展性:后端模块按 ABP 五层结构组织,前端统一到 Vben5.7 + Ant Design Vue 技术栈,
本框架集成AI 开发流程:通过 Superpowers、Module Generator、CRUD Generator Plus、Field Sync 等Skill 固化为明确工作流,用于支撑模块设计、脚手架生成、字段同步和人工审查。
项目地址:https://gitee.com/vichen2021/yiabp-mini
演示地址:https://yi.wjys.top
项目定位
Yi.Mini 的定位不是完整业务生态杂糅,而是后台基础能力框架。
它主要保留后台系统最常用的一批基础能力:
- RBAC 权限管理
- 租户管理
- 参数配置
- 审计日志
- 文件管理
- OSS 配置
- 多租户套餐
- 权限与操作记录自动推断
- AI 辅助模块生成、CRUD 生成、字段同步
核心目标是:沉淀后台系统高频基础能力,并将业务开发流程规范化、生成化、可维护化。
界面预览




技术栈
后端主要技术栈:
| 项目 | 技术 |
|---|---|
| 框架 | .NET 10 + ABP Framework 10 |
| ORM | SqlSugar |
| 认证 | JWT Bearer |
| 日志 | Serilog |
| 后台任务 | Hangfire |
| 缓存 | FreeRedis / Memory Cache |
| 实时通信 | SignalR |
| 对象映射 | Mapster |
前端主要技术栈:
| 项目 | 技术 |
|---|---|
| 框架 | Vue 3 + TypeScript |
| 管理模板 | Vben Admin v5.7 |
| UI | Ant Design Vue |
| 构建 | Vite |
| 包管理 | pnpm |
| 表格 | VXE Table |
整体上,后端采用 ABP + DDD + SqlSugar,前端采用 Vben5 + Ant Design Vue,并在交互与页面组织上采用若依风格设计。目标是在保持后端边界清晰的同时,提供符合国内后台使用习惯的管理端体验。
DDD 分层和模块边界
后端每个业务模块遵循 5 层结构:
module/{Module}/
├── Yi.Module.{Module}.Domain.Shared
├── Yi.Module.{Module}.Domain
├── Yi.Module.{Module}.Application.Contracts
├── Yi.Module.{Module}.Application
└── Yi.Module.{Module}.SqlSugarCore
各层职责比较清楚:
Domain.Shared:枚举、常量、共享模型Domain:实体、聚合根、领域服务、仓储接口Application.Contracts:DTO、服务接口Application:应用服务实现SqlSugarCore:ORM 配置、仓储实现、数据种子
项目里还有一个重要规则:禁止跨模块直接引用 Domain 层。
跨模块协作优先使用:
Application.Contracts服务接口- 防腐层适配器
- 集成事件
这条规则是限界上下文边界的核心约束。否则系统规模上来以后,模块之间直接引用实体、仓储和领域服务,边界会很快失效。
权限控制:减少手动声明
权限系统的难点不只是校验本身,而是权限码需要同时出现在后端服务、菜单种子、按钮权限和前端页面中。只要命名不统一,就会引入长期维护成本。
Yi.Mini 里采用统一权限码格式:
{module}:{entity}:{action}
例如:
system:user:query
system:user:add
system:user:edit
system:user:remove
monitor:operlog:query
标准动作包括:
| 动作 | 含义 |
|---|---|
query |
查询、详情、下拉、树等读操作 |
add |
新增、上传、创建等写入操作 |
edit |
编辑、状态变更、同步等更新操作 |
remove |
删除、清空等移除操作 |
export |
导出操作 |
import |
导入操作 |
对于标准 CRUD 服务,业务服务只需要声明资源:
[PermissionResource("system", "tenantPackage")]
[OperLogEntity("租户套餐")]
public class TenantPackageService : YiCrudAppService<...>
{
}
标准 CRUD 方法会带有统一动作语义,不需要每个方法都重复写一遍权限码。非标准动作再通过 PermissionAction 或显式 Permission 声明。
这样常规 CRUD 的权限语义可以自动推断,显式权限只保留给非标准业务动作和兼容历史权限码的场景。
操作记录:和权限语义复用
操作记录同样不应散落在各个方法里临时声明。Yi.Mini 让操作记录复用 Service Action 元数据,使权限动作与操作日志保持同一套语义。
Yi.Mini 的操作记录复用 Service Action 元数据:
[OperLogEntity("文件")]
public class FileService : ApplicationService
{
}
如果没有显式声明 [OperLog],系统会根据 action 和 [OperLogEntity] 推断日志类型和标题。特殊业务动作再显式声明:
[PermissionAction(PermissionActionEnum.Edit)]
[OperLog("同步租户套餐", OperEnum.Update)]
public async Task SyncPackageAsync(Guid tenantId, Guid packageId)
{
}
这样权限和操作记录共享动作语义,减少重复声明,也降低日志标题和操作类型不一致的概率。
多租户套餐:让租户菜单范围可控
Yi.Mini 的多租户能力以宿主机为管理入口。
宿主机负责:
- 租户管理
- 租户套餐
- 菜单范围
- 租户数据库初始化
- 套餐菜单同步
租户侧只使用分配后的菜单和角色权限。
其中关键设计是 租户套餐。
租户套餐用于定义租户可用的菜单范围。创建或编辑套餐时,可以选择该套餐允许同步到租户的菜单。租户初始化时,系统会:
- 切换到目标租户上下文
- 执行租户数据库 CodeFirst
- 执行租户侧数据种子
- 创建或更新租户管理员账号
- 根据租户绑定的套餐同步菜单
- 将套餐菜单授权给租户管理员角色
租户最终能看到哪些菜单,来自:
租户套餐菜单范围
+ 租户内角色菜单授权
+ /api/account/router 返回的路由树
套餐控制租户可用菜单上限,角色授权控制租户内实际可见范围。
这使平台治理能力保留在宿主机侧,租户侧只接收套餐范围内的菜单与按钮权限,更适合 SaaS 管理场景。
文件管理和 OSS 配置
文件能力在后台系统里通常会从简单上传逐步演进到以下需求:
- 文件元数据管理
- 图片 / 文件上传
- 本地文件和对象存储切换
- OSS 访问域名
- 租户之间文件隔离
- 租户级配置覆盖
- 本地文件迁移到 OSS
Yi.Mini 新增了独立的文件管理模块,文件存储基于 ABP Blob Storing,业务代码统一通过 Blob Container 读写文件。
当前支持两种 Provider:
| Provider | 说明 |
|---|---|
FileSystem |
本地文件系统存储 |
Aliyun |
阿里云 OSS 存储 |
配置结构类似:
{
"BlobStoring": {
"Provider": "FileSystem",
"PathPrefix": "default",
"FileSystem": {
"BasePath": "wwwroot/FileStorage"
},
"Aliyun": {
"AccessKeyId": "",
"AccessKeySecret": "",
"Endpoint": "oss-cn-hangzhou.aliyuncs.com",
"ContainerName": "",
"CreateContainerIfNotExists": false
}
}
}
更关键的是,它支持租户级 OSS 配置。
宿主机可以提供全局默认文件存储配置;租户也可以在自己的上下文中覆盖文件存储配置。租户未配置时,使用默认配置;租户配置后,上传、下载 URL 解析和删除会按当前租户配置执行。
这使文件模块可以进入多租户场景,而不只是停留在单机本地上传。
AI Skills:把生成式开发纳入工程约束
Yi.Mini 的 AI 开发流程不是“让 AI 直接写业务代码”,而是把需求澄清、设计文档、模块生成、CRUD 生成、字段同步和人工审查拆成固定阶段。
项目文档中明确建议:正式开发前,先使用 superpowers skill 与 AI 沟通需求,并输出开发文档。开发文档用于记录:
- 业务目标
- 模块边界
- 实体设计
- 菜单权限
- 字典枚举
- 接口约定
- 前后端范围
- 验收标准
随后再进入代码生成阶段:
- 新增模块必须使用
module-generator - 生成 CRUD 必须使用
crud-generator-plus - 实体字段变更必须使用
field-sync - 不允许绕过 Skill 手写基础 CRUD 脚手架
- 生成后再人工审查和补充业务逻辑
项目当前可用的 Skills 包括:
- Superpowers:沟通需求、梳理方案、建立开发文档
- Module Generator:自动生成完整的 ABP 模块结构
- CRUD Generator Plus:基于实体生成基础业务模块脚手架,覆盖后端、前端、菜单和系统字典种子数据
- Field Sync:同步实体字段变更到 DTO、服务、前端 API、视图和字典种子数据
- Skill Creator:创建自定义技能的指南
这套流程的重点不是让 AI 替代开发者,而是把重复、机械、容易遗漏的脚手架工作交给可复用 Skill,把业务判断、边界控制和质量审查保留给开发者。
VibeCoding 正确开发姿势
以 Product 产品管理模块为例,文档推荐的流程是先沟通、再建文档、再生成模块、最后补业务逻辑。
第一步:使用 Superpowers 建立开发文档
先向 AI 描述产品管理需求,让 superpowers 帮助追问并形成开发文档。开发文档至少包含:
- 业务目标:产品管理要解决什么问题
- 模块名称:例如
Product - 实体设计:产品名称、编码、分类、状态、价格、库存等字段
- 字典/枚举:产品状态、产品类型等
- 菜单权限:菜单、按钮、权限码范围
- 前端页面:列表、表单、详情、导入导出等
- 后端服务:CRUD、校验规则、特殊业务动作
- 验收标准:构建通过、菜单可见、CRUD 可用、权限生效
第二步:使用 Module Generator 创建 Product 模块
开发文档确认后,使用 module-generator skill 创建 Product 模块。它会生成完整的 ABP 模块结构:
- Domain.Shared:共享领域模型、枚举、常量
- Domain:领域实体、领域服务
- Application.Contracts:应用服务接口和 DTO
- Application:应用服务实现
- SqlSugarCore:数据库上下文、种子数据、模块数据库配置
生成后先运行后端构建,确保模块结构正确。
第三步:使用 CRUD Generator Plus 生成基础业务脚手架
模块结构创建完成后,定义产品实体类,再使用 crud-generator-plus skill 生成基础业务代码。它会根据实体生成:
- 后端代码:实体、DTO、应用服务、接口、查询条件、映射关系
- 前端代码:API、类型定义、列表页、表单配置、操作按钮
- 菜单种子数据:模块菜单、列表菜单、按钮权限
- 系统字典种子数据:枚举或字典字段对应的数据项
第四步:补充业务逻辑并验证
脚手架生成后,再补充产品管理的业务逻辑,例如:
- 产品编码唯一性校验
- 产品上下架状态变更
- 库存和价格校验
- 导入导出
- 权限动作和操作记录细化
完成后执行后端构建、前端类型检查和页面功能测试。
适合什么场景
Yi.Mini 更适合这些场景:
- 企业内部管理后台
- SaaS 平台基础后台
- 权限系统快速搭建
- 偏好若依风格管理端交互的后台项目
- 需要多租户菜单隔离的管理系统
- 想用 ABP + SqlSugar + Vue/Vben 的 .NET 项目
- 想把 AI 辅助开发流程纳入工程规范的团队
如果你要的是完整业务生态演示,或者想看大量业务模块案例,建议优先看 Yi.Admin 原项目。
如果你需要的是以 RBAC、多租户、文件管理、OSS 配置和 AI 生成流程为核心的基础底座,Yi.Mini 会比较合适。
快速开始
后端启动:
dotnet run --project Yi.Abp\src\Yi.Abp.Web\Yi.Abp.Web.csproj
前端启动:
cd Yi.Vben5
pnpm install
pnpm run dev:antd
文档和预览:
- Gitee 地址:https://gitee.com/vichen2021/yiabp-mini
- 文档站:https://docs.wjys.top/
- 在线预览:https://yi.wjys.top/
- AI 快速开发指南:https://docs.wjys.top/guide/introduction/ai-development.html
写在最后
Yi.Mini 的核心目标是提供一套适合真实项目落地的权限管理基础底座。
它关注几个实际问题:
- 基础模块边界清晰
- 权限与操作记录语义统一
- 多租户菜单范围可控
- 文件与 OSS 配置能覆盖多租户场景
- AI 生成代码有流程、有边界、有验证
如果你也在做 .NET 企业后台、SaaS 管理端,或者正在探索 AI 全栈开发,希望 Yi.Mini 能给你一些参考。
欢迎 Star、试用、提 issue,也欢迎一起交流改进。
项目地址:https://gitee.com/vichen2021/yiabp-mini
最后也再次感谢 Yi.Admin 原作者橙子老哥和相关开源项目的基础沉淀。Yi.Mini 能够站在这些项目之上继续做基础能力聚焦和 AI 开发流程探索,这是开源生态带来的价值。
更多推荐


所有评论(0)