用途
本技能用于 Umbraco 后台(Backoffice)扩展的定制开发。后台定制并非单一扩展类型,而是多种扩展类型的组合,例如:
- 自定义管理区域 = Section + Menu + Dashboard
- 数据管理工具 = Section + Menu + Workspace
- 层级浏览器 = Section + Menu + Tree + Workspace
本技能提供完整可运行的蓝图,源码位于 ./examples/ 目录,可复制并适配自身需求。若工作区中存在 Umbraco CMS 源码,可作为参考:src/Umbraco.Web.UI.Client/src/packages/ 中的后台客户端代码展示了所有扩展类型的生产级实现,可研究核心团队如何组织 Section、Workspace、Tree 等模式。
主要能力
- 提供多种扩展类型组合的完整工作示例。
- 提供强制工作流,覆盖版本校验、规划、构建与验证。
- 提供按需加载的参考文档:PRE-BUILD-PLANNING.md(构建前视觉规划、线框图、UUI 组件)、EXTENSION-MAP.md(扩展类型在 UI 中的位置,ASCII 图)、SUB-SKILLS-REFERENCE.md(按类别索引全部子技能)、POST-BUILD-VALIDATION.md(构建后验证流程、浏览器测试、调试)。
- 提供可复用的示例项目,涵盖不同复杂度。
使用方式
强制工作流
该工作流对所有扩展开发均为强制要求。
步骤 0 — 版本守卫:在规划之前,调用 umbraco-version-guard 确认站点的 Umbraco 主版本与这些技能所针对的主版本一致。若不一致则停止——后台 API 在不同 Umbraco 主版本间存在差异,继续使用会产生错误代码。
1. 规划:首先阅读 PRE-BUILD-PLANNING.md,绘制线框图,标注扩展类型,识别 UUI 组件。线框图获批前不要编写代码。
2. 构建:使用示例和子技能创建扩展。不要跳过验证。
3. 验证:强制构建后步骤,包括运行 npm run build(必须通过)、调用 umbraco-extension-reviewer 代理、无需询问直接修复高/中问题、按 POST-BUILD-VALIDATION.md 进行浏览器测试。
跳过规划会导致构建错误的扩展类型;跳过验证会导致缺陷到达用户。该工作流无论通过 /umbraco-quickstart 还是直接调用均适用。
使用示例
- 浏览 examples/ 文件夹并阅读每个示例的 README.md。
- 将最接近需求的示例复制到项目中。
- 将别名从示例命名空间重命名为自己的命名空间(例如 Blueprint.* 改为 MyApp.*)。
- 更新 entityType 值以匹配自身领域。
- 按用例定制 UI 组件。
- 通过 umbraco-package.json 向 Umbraco 注册。
- 向主 Umbraco 实例添加项目引用——使用技能 umbraco-add-extension-reference。
可用示例
每个示例都有详细的 README.md 文档,位于 examples/ 文件夹。
| 示例 | 复杂度 | 展示内容 |
|---|---|---|
| Blueprint | 入门 | Section + Menu + Dashboard + Workspace——基础模式 |
| tree-example | 中级 | Settings 区域中的树形导航与 Workspace |
| TimeDashboard | 高级 | 13+ 种扩展类型,包括 Header Apps、Modals、Property Editors |
| notes-wiki | 全栈 | 完整 C# 后端,含 CRUD、层级树、多个 Workspace |
快速参考
- 需要新 Section?从 Blueprint 开始。
- 需要树形导航?参见 tree-example。
- 需要特定扩展类型?查看 TimeDashboard 中的示例。
- 需要带 API 的全栈?研究 notes-wiki。
适用场景
适用于需要为 Umbraco CMS 后台开发自定义扩展的开发者,包括创建自定义管理区域、数据管理工具、层级浏览器,以及组合多种扩展类型(如 Header Apps、Modals、Property Editors)的复杂场景。也适用于需要全栈实现(含 C# 后端与 CRUD)的项目。
限制
- 使用前必须通过 umbraco-version-guard 确认 Umbraco 主版本匹配,否则会产生错误代码。
- 必须遵循强制工作流,不得跳过规划与验证。
- 关于具体收费、价格、平台支持范围等信息,资料中暂未提供。