Known 是一个由国内开发者 KnownChen 开发的基于 Blazor 的全栈业务开发框架,采用 Apache-2.0 开源协议。它的核心设计哲学很直接:用 C# 写一切——前端页面、后端服务、实体模型、验证逻辑、工作流回调、导入导出,全部用 C#。不需要写 JavaScript/TypeScript,也不需要前后端分离的接口联调。
https://github.com/known/Known
一套代码,五种宿主
Known 最直观的亮点是多端统一开发。同一套业务代码可以通过不同的宿主程序运行:
Blazor Server
服务端渲染,适合内网部署 Blazor WebAssembly
纯前端运行,后端提供 API WinForm (WebView2)
Windows 桌面应用 .NET MAUI
跨平台移动/桌面应用(iOS/Android/Windows/Mac) Photino
轻量级跨平台桌面宿主
通过 AddKnown、AddKnownCore、AddKnownWeb、AddKnownDesktop 不同的装配方法切换运行模式。桌面模式会自动关闭 SignalR Hub,因为本地调用不需要 WebSocket 通信。
对于只需要维护一套代码的中小型团队来说,这个能力是实打实的减负。
自研轻量 ORM,不依赖 EF Core
大多数 .NET 业务框架会选 EF Core 做数据访问,Known 反其道而行,自研了一个轻量 Database 类。
它提供 QueryAsync<T>、QueryPageAsync<T>、InsertAsync<T>、UpdateAsync<T>、DeleteAsync<T> 等简洁 API,每种数据库有独立的 DbProvider 实现,目前已支持 7 种数据库:
不依赖 EF Core 的好处是启动速度快、内存占用低、SQL 行为可预期。对于后台管理系统这个体量的应用来说,轻量 ORM 通常比 EF Core 更合适——不需要复杂的变更追踪、导航属性、级联删除,就是简单的 CRUD 加分页。
约定优于配置的插件架构
Known 的架构是三层结构:核心层 → 插件层 → 宿主层。
核心层提供基础能力(实体模型、数据访问、页面组件、权限菜单、工作流引擎);插件层按业务模块组织(系统管理、开发中心、Excel 导入导出、示例模块);宿主层决定运行在 Web、桌面还是移动端。
新增一个业务模块的过程几乎不需要修改任何中心化注册表。框架依赖特性(Attribute)进行自动发现和元数据注册:
[Service] -> 自动注册依赖注入
[Client] -> 自动注册客户端代理
[WebApi] -> 自动生成动态 API 端点
[Menu] -> 自动生成导航菜单
[Action] -> 自动注册按钮权限
[Import] -> 自动注册数据导入器
[Task] -> 自动注册后台任务
继承 EntityBase -> 自动注册实体模型
继承 FlowBase -> 自动注册流程处理类
调用一次 Config.AddModule(assembly) 之后,框架扫描程序集,自动完成所有注册。"约定优于配置"让新增模块变成了纯粹的"写代码、编译、刷新"三步。
全栈 C# 页面构建
Known 的页面开发采用代码式构建(RenderTreeBuilder + 组件模型),而非 Razor 标记。基类体系包括 BasePage、BaseTablePage<T>、BaseForm<T>、BaseTabPage、BaseStepPage。
页面配置通过 TableModel<T> 和 FormModel 在代码中声明,结合 [Column] 和 [Form] 特性实现元数据驱动。一个带查询、分页、批量操作的列表页面,大概只需要这样:
定义实体类,加 [Column]标注列标题和宽度继承 BaseTablePage<T>,配置表格模型框架自动生成表格、查询栏、分页器、操作按钮
UI 组件库基于 Ant Design Blazor,已内置 70+ 组件:KTable(表格)、KForm(表单)、KUpload(上传)、KChart(ECharts 图表)、KPdfView(PDF 查看器)、KBarcode(条码)、KQRCode(二维码)、KScanner(PDA 扫码)、KConsole(控制台日志)、KTreeTable(树表格)、KTimer(定时器)等。
主题系统支持亮色/暗色切换,通过 CSS 变量控制,框架还新增了 Semi 设计风格模板。
低代码开发中心
Known 内置了一个开发中心(Known.Admin),提供了半低代码的业务模块搭建能力:
在线表单配置
动态表单设计、多种字段类型、数据绑定、验证规则 在线页面配置
表格配置、查询条件、列排序/汇总/导出 代码生成
基于实体自动生成实体类、DTO、服务接口/实现、页面组件、表单组件 WebApi 测试
在线 API 调试、GET/POST、请求历史 流程设计器
可视化流程设计
页面支持 8 种区块类型:模块、表格、表单、详情、列表、图表、模板、AI。区块参数通过 JSON 持久化到数据库。开发者可以在设计器中拖拽配置一个基本的 CRUD 页面,不需要写任何代码。
工作流引擎与 AI 助手
工作流引擎内置审批流,提供 10 个生命周期钩子(OnCommiting、OnCommited、OnRevoking、OnVerified、OnStopping 等),适合请假、采购、工单、报销等单据审批场景。
AI 智能助手是 Known 的一个有意思的功能。内置三种模型接入方式:
支持流式输出(IAsyncEnumerable<string>),会话持久化到数据库,内置聊天组件(ChatView.razor)可以直接嵌入业务页面。
实体扩展属性:NoSQL 式的灵活性
EntityBase 有一个 Extension JSON 字符串字段,支持在运行时动态添加扩展属性而不需要修改数据库表结构。
entity.SetExtension("customField", "some value");
varvalue = entity.GetExtension<string>("customField");
这在业务字段频繁变化、又不想每次加字段都跑一次迁移的场景下非常实用。实体同时具备了关系型数据库的结构化优势和 NoSQL 式的灵活性。
内置系统管理模块
开箱即用是 Known 的一个重要特点。框架自带完整的系统管理模块:
用户管理(CRUD、密码重置、批量导入导出、角色分配) 角色管理(权限分配、角色继承、URL 级别权限检查) 组织机构(树形结构、拖拽调整) 菜单管理(动态菜单、按钮权限、超链接菜单) 数据字典(字典类别、扩展字段、子字典、多语言) 系统日志(操作日志、登录日志、错误日志) 定时任务(Cron 表达式、执行监控、暂停/恢复) 编码规则(业务编码自动生成) 多租户管理
这些模块不是 Demo,而是可以直接用于生产系统的完整功能。
适用场景
Known 适合以下几类团队和项目:
C# 为主的全栈团队
不想学 JavaScript/TypeScript,希望前后端统一用 C# 中后台管理系统
ERP/OA/CRM/MES/WMS,需要快速交付 平台化 SaaS 后台
需要多租户、权限分级、动态菜单 低代码/半低代码业务平台
希望内置开发中心,让业务人员参与页面搭建 需要多端部署的系统
同一套代码同时运行在 Web 和桌面端
客观评价
优势:
真正的全栈 C#,不需要写前端代码 自研轻量 ORM,启动快、内存低、行为可预期 插件架构设计干净,新增模块几乎零配置 内置系统管理 + 开发中心,开箱即用 支持 7 种数据库,含达梦信创方案 Apache-2.0 协议,商业友好
需要注意的点:
Blazor 生态相比 React/Vue 社区规模仍较小,第三方组件需要自己封装 代码式页面构建(RenderTreeBuilder)的学习曲线比 Razor 标记略陡 适合后台管理场景,不适合需要极致图形性能的 C 端产品
整体来看,Known 在国内 .NET 开源生态里是一个定位清晰、完成度高的产品。对于 C# 团队来说,如果目标就是快速交付一套可定制的企业级后台系统,Known 是一个值得认真评估的选择。
项目信息:
官网:https://known.org.cn Gitee:https://gitee.com/known/Known GitHub:https://github.com/known/Known NuGet:Known(当前版本 3.5.5) 协议:Apache-2.0(商业友好) 框架:.NET 8/9/10 + Blazor QQ 社区:865982686