×

一套覆盖8大业务场景的 .NET 企业级快速开发框架

独孤求败 独孤求败 发表于2026-07-13 10:01:16 浏览16 评论0

抢沙发发表评论

做过企业信息化的人都知道:每个新项目都要重新搭权限、写登录、搞审批流、接消息队列……重复造轮子,乏味且耗时。

有没有一套开箱即用的框架,把这些基础设施全部封装好,让你专注业务逻辑?

Scm.Net 就是为此而生。

笔者多年从事供应链系统及企业信息化系统的产品与研发,在梳理多种项目经验的过程中,开发了这套企业级中后台管理系统的快速开发框架。它采用前后端分离架构,内置权限管理、代码生成、工作流引擎、实时消息、数据可视化等企业级核心能力,目前已支撑 8 款产品落地运行。

01 项目背景与定位

在企业信息化领域,供应链管理系统(SCM)是覆盖面最广、复杂度最高的场景之一。一个完整的供应链体系涉及订单、仓储、运输、配送、计费、园区管理、资产管理和物联网等多个子系统。每个子系统都需要认证授权、权限管控、工作流审批、消息推送、定时任务、数据可视化等基础能力。

Scm.Net 的作者将这些年在多个项目中反复使用的基础设施提炼为一套通用框架,目标只有一个:让开发者不再重复搭建基础设施,专注于业务实现。

🎯 核心定位

企业级中后台管理系统快速开发框架 | 前后端分离架构 | 开箱即用 | 可扩展插件机制

Scm.Net 框架全景

02 已落地产品矩阵

框架的价值不在 PPT 里,而在实际产品中。目前基于 Scm.Net 已开发并运行的产品包括:

简称
产品全称
业务领域
OMS
订单管理系统
订单全生命周期管理
WMS
仓储管理系统
入库/出库/盘点/库存
TMS
运输管理系统
运单调度/路线优化
DMS
配送管理系统
最后一公里配送
BMS
计费管理系统
费用计算/账单生成
YMS
园区管理系统
园区资源/出入管控
EAM
资产管理系统
资产全生命周期
IOT
物联网管理系统
设备接入/数据采集

从订单到仓储,从运输到计费,从园区到物联网——一套框架,8 个产品,覆盖供应链全链路。这足以证明框架的通用性和可扩展性。

03 核心特性全景

Scm.Net 的特性覆盖面非常广,我们按四个维度逐一拆解。

🔐 认证与安全

多维度安全体系

账号登录 手机号登录 邮箱登录 OAuth OIDC SAML 面部识别 指纹识别 声纹识别 TOTP 双因素 AES/DES 加密 JWT Bearer

  • 多种登录方式

     — 支持账号、手机号、邮箱,以及 OAuth、OIDC、SAML 等第三方联合登录,满足企业内外部多种接入场景
  • 生物识别

     — 面部识别、指纹识别、声纹识别接口预留,未来可无缝接入
  • 双因素认证

     — 基于 TOTP 的 OTP 动态口令,为高安全场景提供第二道防线
  • 数据加密

     — 前后端传输参数支持 AES/DES 加密签名,防止中间人攻击
  • JWT 鉴权

     — Bearer Token 认证,支持自动刷新,无需频繁登录
  • 六级权限体系

     — 公司 / 部门 / 岗位 / 分组 / 用户 / 角色,精细到按钮级别

⚙️ 系统与框架

基础设施全覆盖

多数据库 多缓存 代码生成器 工作流引擎 动态API 定时任务 实时通信 MQTT物联

  • 多数据库支持

     — SQLite、MySQL、MariaDB、PostgreSQL、SQL Server、Oracle、Firebird、MongoDB,8 种数据库一个框架全覆盖
  • 多种缓存机制

     — MemoryCache、Dictionary、Redis 三种方案灵活切换
  • 代码生成器

     — 自动生成实体、DAO、DTO/VO,支持自定义模板,彻底告别手写 CRUD
  • 工作流引擎

     — 可视化流程设计、节点配置、表单绑定、在线审批,开箱即用
  • 动态 API

     — 自动注册服务为 Web API,无需手动编写 Controller,大幅减少样板代码
  • API 文档

     — Scalar + Swagger UI 双引擎生成,支持自定义注释
  • 定时任务

     — Quartz.NET 集成,支持动态任务增删改查
  • 实时通信

     — SignalR WebSocket 实时推送与在线聊天
  • 设备物联

     — MQTT 协议支持,内置 Broker,直连物联网设备

💼 业务能力

能力
说明
MQTT 通信
轻量级物联网通信协议,支持内置 Broker
RabbitMQ
消息队列,发布者/消费者模式集成
AI 大模型
集成 7+ 主流大语言模型
图像处理
条码生成识别、图片水印、图形验证码、头像裁剪
数据可视化
ECharts 图表集成,Dashboard 看板布局
文件管理
文件上传、导入导出、在线预览
ID 生成器
雪花 ID、序列 ID、格式 ID 等多种方式
插件扩展
Plugin/Addon 动态加载机制

🌐 平台兼容

  • 跨平台运行

     — Windows、macOS、Linux、HarmonyOS 全覆盖
  • 响应式布局

     — 电脑、平板、手机多种终端自适应
  • 多租户架构

     — 可扩展为多租户、多组织架构应用

04 技术栈深度解析

后端核心依赖

Scm.Net 后端基于 .NET 10.0,兼容 .NET 6/7/8/9/10 多个版本。以下是核心依赖一览:

技术
版本
用途
.NET
10.0
跨平台运行时
SqlSugarCore
-
ORM 数据访问框架
ImageSharp
^3.1.12
跨平台图像处理
MQTTnet
-
MQTT 通讯(客户端 + Broker)
RabbitMQ.Client
-
消息队列
Quartz.NET
-
定时任务调度
SignalR
-
实时 Web 通信
Mapster
10.0.7
对象映射(比 AutoMapper 更快)
Serilog
4.3.1
结构化日志
Newtonsoft.Json
-
JSON 序列化
JWT Bearer
10.0.8
认证授权
Scalar
2.16.6
API 文档可视化(新)
Swagger UI
10.2.3
API 文档可视化

💡 技术选型亮点

ORM 选用 SqlSugar 而非 Entity Framework Core,是因为 SqlSugar 对多数据库支持更友好,且 API 更简洁。对象映射选用 Mapster 而非 AutoMapper,性能高出数倍。API 文档同时集成 Scalar 和 Swagger,给开发者更多选择。

前端技术栈(Scm.Vue)

前端独立仓库 Scm.Vue,基于 Vue 3 + Vite 8 + Element Plus 构建:

技术
版本
用途
Vue
^3.5.32
渐进式 JS 框架
Vite
^8.0.3
构建工具(Rolldown 打包)
Element Plus
^2.13.6
Vue 3 桌面端组件库
Pinia
^3.0.0
状态管理
ECharts
^6.0.0
数据可视化
Axios
^1.7.0
HTTP 客户端
SignalR
^10.0.0
实时通信客户端
Vue I18n
^11.0.0
国际化

前端还内置了 40+ 业务组件(scTable、scSearch、scUpload、scDynamicForm 等),支持 三种界面模式

  • 工作台模式

    (Console)— 支持default/header/menu/dock四种风格
  • 云桌面模式

    (Desktop)— 类 Windows 桌面体验
  • 大屏模式

    (Monitor)— 数据可视化大屏展示

05 架构设计与项目结构

Scm.Net 采用了清晰的分层架构,各模块职责明确:

Scm.Net/
├── Scm.Net/                     # Web API 主入口
│   ├── Controllers/             #   API 控制器
│   ├── Resources/               #   资源文件
│   ├── data/                    #   数据文件(SQLite、上传文件)
│   ├── Program.cs               #   应用入口与启动配置
│   └── appsettings.json         #   应用配置
├── Scm.Core/                    # 核心业务逻辑层
├── Scm.Dao/                     # 数据访问层(DAO)
├── Scm.Dto/                     # 数据传输对象层(DTO)
├── Scm.Common/                  # 公共枚举、工具类
├── Scm.Common.Dto/              # 公共 DTO 定义
├── Scm.Common.Excel/            # Excel 导入导出
├── Scm.Common.Log/              # 日志记录
├── Scm.Common.Os/               # 操作系统工具
├── Scm.Dsa.Dba.Sugar/           # SqlSugar 仓储基类
├── Scm.Dsa.Dfa.Json/            # JSON 数据格式转换
├── Scm.Server/                  # 服务端核心(接口+基础服务)
├── Scm.Server.Api/              # 动态 API 注册
├── Scm.Server.Bearer/           # JWT Bearer 认证
├── Scm.Server.Cache/            # 缓存扩展
├── Scm.Server.Dao/              # 服务端 DAO 扩展
├── Scm.Server.Dvo/              # DTO/VO 映射
├── Scm.Server.MQTT/             # MQTT 通讯
├── Scm.Server.RabbitMQ/         # RabbitMQ 集成
├── Scm.Server.SignalR/          # SignalR 实时通讯
├── Scm.Server.Quartz/           # Quartz 定时任务
├── Scm.Server.Swagger/          # Swagger 文档
├── Scm.Server.Scalar/           # Scalar 文档
├── Scm.Server.Aiml/             # AI 大模型集成
├── Scm.Server.Service/          # 业务服务扩展
├── Scm.Email/                   # 邮件服务
├── Scm.Phone/                   # 短信服务
├── Scm.Generator/               # 代码生成器
├── Samples.*/                   # 示例项目
├── Libs/                        # 预编译库
├── Test/                        # 测试项目
└── Scm.Net.sln                  # 解决方案文件

架构设计上有几个值得关注的点:

模块化拆分策略

注意看项目命名规律:Scm.Server.* 是服务端扩展模块,每个模块负责一个独立能力(MQTT、RabbitMQ、SignalR、Quartz、Swagger、Scalar、AI等)。这种设计让你可以按需引用——如果你的项目不需要 MQTT,就不引用 Scm.Server.MQTT,保持项目轻量。

动态 API 机制

Scm.Server.Api 实现了动态 Web API 注册——你只需要写 Service,框架自动将其注册为 Web API,无需手写 Controller。这借鉴了 Panda.DynamicWebApi 的思路,大幅减少样板代码。

三层分离

  • Scm.Dao

     — 数据访问层,封装数据库操作
  • Scm.Dto

     — 数据传输对象,接口数据契约
  • Scm.Core

     — 核心业务逻辑,真正的业务代码

06 四大设计原则

好的框架背后一定有清晰的设计哲学。Scm.Net 有四条核心设计原则,值得每个使用者理解:

原则一:数据库仅用于存储数据

除 CRUD 外不使用任何依赖特定数据库的特性(如存储过程、触发器、视图等),可平滑迁移到任何支持标准 SQL 的数据引擎。这意味着你今天用 SQLite 开发,明天切到 Oracle,几乎零成本。

原则二:单表操作为主

原则上仅允许单表操作(最多不超过两张表),通过数据冗余设计提升查询效率。这看似"反范式",实则是用空间换时间——在高并发场景下,避免 JOIN 带来的性能问题。

原则三:JSON 数据交互

多端数据交互基于 JSON 格式,保证低噪音的同时提升可扩展性。新字段加上去不需要改接口签名,前后端解耦更彻底。

原则四:蛇形命名 DTO

DTO 统一使用 snake_case 命名,适配多场景异构应用需求。Python、Java、Go 等语言默认蛇形命名,这样可以无缝对接多语言生态。

07 五分钟快速启动

Step 1:获取代码

# 克隆后端
git clone https://gitee.com/leadiot/scm.net.git

# 克隆前端
git clone https://gitee.com/leadiot/scm.vue.git

Step 2:配置数据库

编辑 Scm.Net/appsettings.json,修改数据库连接串:

{
  "Sql": {
    "Type": "Sqlite",
    "Text": "Data Source=data/scm.db;"
  }
}

💡 零配置启动

默认使用 SQLite,系统启动时自动初始化数据库和种子数据,无需手动建表。开箱即用,拉下来就能跑。

Step 3:启动后端

cd Scm.Net
dotnet run

访问 http://localhost:5000/scalar 确认后端接口正常。

Step 4:启动前端

cd Scm.Vue
npm install
npm run dev

访问 http://localhost:2800 进入前端页面。

演示账号

角色
用户名
密码
管理员
admin123456

在线演示地址:http://www.c-scm.net

08 AI 大模型集成

在 AI 蓬勃发展的当下,Scm.Net 也没有缺席。Scm.Server.Aiml 模块集成了 7+ 主流大语言模型

7+大模型接入,1统一接口

大模型
厂商
DeepSeek
深度求索
华为盘古
华为
通义千问
阿里云
腾讯元宝
腾讯
文心一言
百度
豆包
字节跳动
ChatGPT
OpenAI

这意味着你可以在企业系统中直接集成 AI 能力——智能客服、文档摘要、数据分析、代码辅助等场景,一个接口切换不同模型,无需为每个模型单独适配。

09 核心配置一览

appsettings.json 是整个系统的配置中枢,以下是核心配置节点说明:

配置节点
说明
Kestrel
HTTP 监听端点(默认 9999 端口)
Cache
缓存配置(MemoryCache / Dictionary / Redis)
Uid
ID 生成器配置
Sql
数据库连接(8种数据库可选)
Jwt
JWT 认证配置
Cors
跨域访问配置
Quartz
定时任务调度
Email
邮件服务(SMTP)
Oidc
第三方联合登录
Otp
动态口令(TOTP)
Generator
代码生成器
Serilog
结构化日志
Scalar
API 文档可视化
Swagger
API 文档可视化

10 内置 API 接口

框架自带以下基础控制器,无需额外开发:

控制器
功能
CaptchaController
图形验证码生成
UploadController
文件上传
DownloadController
文件下载
GeneratorController
代码生成
QuartzController
定时任务管理
HbController
心跳检测
OnLineController
在线用户管理

启动后访问 http://localhost:5000/scalar 查看完整 API 文档,所有接口均可在线调试。

11 界面预览

工作台模式

功能
截图
控制台首页
后台首页
用户管理
用户管理
文件管理
文件管理
日程管理
日程管理
电子邮件
电子邮件
系统监控
系统监控
在线文档
在线文档

云桌面模式

功能
截图
桌面首页
图片
云文件管理
图片
记事本
图片
图片查看
图片
音频播放
图片
待办事项
图片
终端管理
图片



群贤毕至

访客