# Known **Repository Path**: known/Known ## Basic Information - **Project Name**: Known - **Description**: Known 是基于 Blazor 的轻量级、跨平台、极易扩展的插件式开发框架——一套元数据驱动的组件库 + 后台管理骨架 + 运行时 Schema 渲染 + 内建智能体 + 全栈装配约定,零第三方 UI 依赖。默认路径下你不写一行前端代码、也不生成任何 .razor:一份 *.schema.json 就是页面、菜单与增删改查的完整来源。 - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://known.org.cn - **GVP Project**: No ## Statistics - **Stars**: 613 - **Forks**: 179 - **Created**: 2018-07-30 - **Last Updated**: 2026-11-10 ## Categories & Tags **Categories**: backend **Tags**: blazor, Ant-Design, dotNET ## README # Known

NuGet .NET Blazor license docs

基于 Blazor 的**元数据驱动全栈框架**:一份 Schema 描述业务,框架现挂现渲染成页面;一份接口既是前后端契约;后台、审批流、报表、智能体都是可插拔模块。同一份代码跑 Web、WebAssembly 与 Windows 桌面,**零第三方 UI 依赖**。 ![Known 后台首页](.github/assets/dashboard.jpg) ## 少写的就是省下的 | 你本来要写 | Known 里 | | --- | --- | | 一百个 CRUD 页面(列表 / 表单 / 详情 / 导出) | 一份 `*.schema.json` → 页面、菜单、建表全出来,**不生成任何 `.razor`**;要定制就挂 `[Hook]` | | 实体两套模型 + 手写 HttpClient | 一份接口两端用:服务端 `[WebApi]`,客户端 `ServiceProxy` 直接 `@inject` | | 后台从零搭(账号 / 角色 / 组织 / 字典 / 审计 / 附件) | `Known.Admin` 开箱:菜单即权限,细到列级 / 按钮级显隐;多租户下可用「功能套餐」按子公司账套收口功能范围 | | 审批流、报表、定时任务、消息通道 | 四个独立插件,装上就有;也可以只取一个 | 另外几条: - **120+ 个组件 / 9 大分类**,全部自研,明暗主题与中英文双语内置。 - **插件即工程**:`Config.AddModule()` 一行接入;Web 端整包懒加载,首屏只下核心壳。 - **设计即运行**:实体 / 页面 / 表单 / 流程四个设计器,改完即时生效;要脱离 Schema 长期维护再 Eject 成代码。 - **内建智能体**:顶栏抽屉自带技能、页面上下文、流式与会话;只定义 `IAgentService`,不绑任何模型厂商。 ## 看一眼 | | | | --- | --- | | ![组件示例](.github/assets/components.jpg)
**组件示例** · Table 的合计行、列显示配置、行内编辑,一页看全 124 个组件 | ![表单设计器](.github/assets/designer-form.jpg)
**表单设计器** · 毫米网格拖拽,屏幕上排的版就是打印出来的版,存下来的是运行时 Schema | | ![流程设计器](.github/assets/designer-flow.jpg)
**流程设计器** · 会签 / 或签、并行网关扇出汇聚、子流程派生唤醒、条件分支 | ![AI 组件](.github/assets/ai.jpg)
**AI 组件** · 对话气泡、思维链、来源引用、结果卡片等 17 个 | ## 三步跑起来 要求 `net10.0` 及以上,无需任何额外 NuGet 源。 ```bash dotnet add package Known ``` ```csharp // Program.cs —— 核心服务 + 客户端接口代理 builder.Services.AddKnown(o => { o.Id = "MyApp"; o.Name = "我的应用"; }); builder.Services.AddKnownClient(o => o.BaseAddress = builder.HostEnvironment.BaseAddress + "api"); ``` ```razor @* _Imports.razor 里加 @using Known / @using Known.Components *@ ``` 到这里 `