# Known **Repository Path**: known/Known ## Basic Information - **Project Name**: Known - **Description**: Known 是基于 Blazor 轻量级、跨平台、低代码、易扩展的插件开发框架。 - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://known.org.cn - **GVP Project**: No ## Statistics - **Stars**: 604 - **Forks**: 171 - **Created**: 2018-07-30 - **Last Updated**: 2026-10-11 ## Categories & Tags **Categories**: backend **Tags**: blazor, Ant-Design, dotNET ## README # Known

NuGet .NET Blazor license docs

> Known 是基于 Blazor 的**轻量级、跨平台、极易扩展**的插件式开发框架——一套元数据驱动的组件库 + 后台管理骨架 + 全栈装配约定,零第三方 UI 依赖。 Known 不是一个"组件集合包"那么简单。它以 **Razor 类库(RCL)** 的形态,把「100 个开箱即用组件 + 主题与国际化 + 全局交互服务 + 插件式模块 + 客户端/服务端同一份接口的 ServiceProxy + 元数据驱动的动态 CRUD 与建表」整合成一套**从前端到后端、从 Web 到桌面**都能复用的开发底座。同一份 `.razor` 可同时跑在 Blazor Server、WebAssembly 与桌面宿主(WinForms 内嵌)上。 --- ## ✨ 核心特性 - **100 个组件,9 大分类** — 覆盖布局、基础、表单、数据展示、反馈、媒体、设备、页面与 AI 组件,风格统一、可主题化,含对话气泡、思维链、来源引用等面向 AI 应用的原生组件。 - **统一组件约定** — 所有组件继承 `BaseComponent`,一致提供 `Class` / `Style` / `Disabled` / `Visible` / `UserAttributes`;双向绑定遵循 Blazor 官方 `Value` / `ValueChanged` 语义,学习成本极低。 - **主题 & 国际化** — 内置明 / 暗双主题,CSS 变量令牌驱动,切换无闪烁;文案通过 `LocalService` 词条化,`@Local["中文"]` 即可本地化,框架自带中英词表。 - **全局交互服务** — 消息条、确认框、Loading、通知统一由注入的 `UIService` 发起、由全局 `` 渲染,页面里不再散落弹窗代码。 - **插件式模块架构** — `Config.AddModule()` 扫描程序集,把整个业务模块(页面、菜单、服务、实体)自动接入框架,按领域水平切分、按需加载。 - **一份接口 = 前后端契约** — `ServiceProxy` 让客户端直接消费与 `[WebApi]` 服务端接口同签名的接口,无需手写 HttpClient 样板。 - **元数据驱动、低代码** — 以模型即数据的方式描述实体,动态渲染页面、自动建表 / 改表、接口同步生效,改配置即时反映。 - **多宿主** — `KnownWeb`(Server)、`KnownWasm`(WebAssembly)、`KnownWin`(桌面)三种运行形态共享同一套组件与业务代码。 - **PWA / 离线** 与 **同步包** 等工程化能力,便于分发与增量交付。 --- ## 🚀 快速开始 Known 是纯 Razor 类库,**不依赖任何第三方 UI 框架、也不需要额外 NuGet 源**。跑起来只需三步。 ### 1. 安装与引用 要求 `net10.0` 及以上。以 NuGet 包引入: ```bash dotnet add package Known ``` 或在解决方案里直接引用工程: ```xml ``` > RCL 会自动输出静态资源 `_content/Known/css/web.css` 与 `_content/Known/js/web.js`,在 `index.html` 引一次即可拿到全部样式与主题能力,无需手工拷贝。 ### 2. 注册服务 在 `Program.cs` 中装配框架核心与端侧选项: ```csharp using Known; var builder = WebAssemblyHostBuilder.CreateDefault(args); builder.RootComponents.Add("#app"); // 核心:UIService / LocalService / 鉴权与菜单提供者 + 应用信息 builder.Services.AddKnown(option => { option.Id = "MyApp"; option.Name = "我的应用"; }); // 客户端:HttpClient + ServiceProxy 接口代理 builder.Services.AddKnownClient(option => { option.BaseAddress = builder.HostEnvironment.BaseAddress + "api"; }); await builder.Build().RunAsync(); ``` 服务端点用 `AddKnownWeb`、桌面用 `AddKnownDesktop`;也可用统一入口 `AddKnownApp(AppType.Web | AppType.Desktop)` 一次装配。 ### 3. 挂载布局 `_Imports.razor` 引入命名空间: ```razor @using Known @using Known.Components @using Known.Extensions @using Known.Models @using Known.Platforms ``` `App.razor` 保留标准 Blazor `Router`,把 `DefaultLayout` 指向基于 `AdminLayout` + `Container` 的自家壳: ```razor ``` 至此,`