Plugins

框架自带的六个插件

Known 把系统管理之外的一切重功能都切成独立插件分发:每个插件是一个纯 Razor 类库(RCL), 把 [Menu] / [Service] / [WebApi] / [Table] 写在自己程序集里, 宿主只要 AddKnownXxx() 一行,菜单、路由、服务代理、建表台账随之就位;不引就不占首屏。

官方插件 6 个 形态 一个插件一个工程 版本 v4.0
随框架发布

装哪个,按需挑

六个插件彼此独立,都只依赖核心 Known,可单独引用、单独懒加载。侧栏分组指它在后台导航里落位的位置。

系统管理

Known.Admin

账号、组织、角色、字典、公告、附件、审计日志、租户八个页面,含权限与认证内核——大多数后台开箱就要用它打底。

AddKnown@p.Method() 侧栏「系统管理」 4 张表

流程表单

Known.FlowForm

申请、待办、我的三个页面,加表单设计器、流程设计器与审批引擎:会签 / 或签、并行网关、子流程派生唤醒、节点钩子与真实通知投递。

AddKnown@p.Method() 侧栏「申请中心」 2 张表

后台任务

Known.Jobs

程序集自动发现、Cron 调度、运行参数配置与多节点分布式执行;管理面走 Web,执行引擎可单拆到 Worker 进程。

AddKnown@p.Method() 调度引擎 3 张表

连接能力

Known.Link

微信 / 企业微信 / 钉钉 / 飞书 / 支付宝的消息、扫码登录、回调与交易;浏览器侧只留安全的一半,传输与密钥在 Server。

AddKnown@p.Method() 侧栏「连接中心」 6 张表

报表套打

Known.Report

数据集、设计器、查看器三个页面,加模板序列化、SQL 只读校验与聚合渲染;透视 / 图表 / 套打所见即所得,一键导出与打印。

AddKnown@p.Method() 侧栏「报表中心」 2 张表

建模设计器

Known.Studio

实体建模管理页与模型设计器,负责把业务模型翻译成运行时 Schema——元数据驱动那一套的可视化入口。

AddKnown@p.Method() 侧栏「开发中心」 2 个页面
  • 一行注册,全自动发现

    Extension.AddKnownXxx() 内部调 Config.AddModule(assembly),扫描该装配的菜单、服务、接口、实体四类特性,页面与路由随之接入,无需手工登记。

  • 整包按需懒加载

    带服务的重插件可从 WASM 首屏清单摘出,进菜单时再下载整包;页面 @inject 的 [WebApi] 服务由包壳现场兜底,页面代码一字不改。Server / 桌面等价 eager、零回归。

  • 资源随插件走

    插件的 wwwroot/**(样式、脚本、语言包)自动经 _content/{装配} 发布,删插件即删其资源;文案按语言 code 幂等合并,缺译安全回退中文。

  • 注册有序,后者覆盖

    业务/示例装配应排在框架插件之后注册,同名服务以最后登记者优先,方便你在不改动插件源码的前提下替换默认实现。

builder.Services.AddKnown(o => o.Id = "MyApp");

// 用到哪个插件,引哪一行;顺序:核心 → 插件 → Web 壳
builder.Services.AddKnownAdmin();
builder.Services.AddKnownFlowForm();
builder.Services.AddKnownReport();
builder.Services.AddKnownJobs();
builder.Services.AddKnownLink();
builder.Services.AddKnownStudio();

builder.Services.AddKnownWeb();
builder.Services.AddKnown(o => o.Id = "MyApp");

// 反射装配、不留 IL AssemblyRef:
// 首屏只下核心壳,进菜单时按需下载整包
builder.Services.AddLazyPlugin("Known.Admin");
builder.Services.AddLazyPlugin("Known.FlowForm");
builder.Services.AddLazyPlugin("Known.Report");

builder.Services.AddKnownWeb();

// WASM 侧配套:
// <BlazorWebAssemblyLazyLoad Include="Known.Admin.dll" />
// Config.UseLazyAssemblyLoader(...)

想吃透插件机制?

插件装配、模块注册、语言包与懒加载的细节都写在核心概念里;想投稿你自己的插件,欢迎到 Gitee 仓库开 Issue。

微信公众号二维码 扫码关注公众号
QQ 交流群二维码 扫码加入 QQ 群