English | 日本語 | 简体中文 | 繁體中文 | 한국어 |
ZYC.Framework
基于 .NET 10 和 WPF 构建的高性能、多模块、可扩展自动化开发框架。
📖 项目简介
ZYC.Framework 是一个现代化的桌面自动化解决方案。它结合了 WPF 的强大 UI 表现力和 .NET 10 的最新特性,旨在通过模块化架构简化复杂自动化系统的开发流程。
项目深度集成了 .NET Aspire 用于分布式应用编排,并支持 Blazor 与 WebView2 的混合开发模式,让你可以自由选择 Web 或原生技术栈。
✨ 核心特性
- 多模块架构:解耦业务逻辑,支持动态加载与独立开发。
- 现代化 UI 支持:基于 WPF,支持多工作区(Multi-Workspace)与多标签页(Multi-Tab)交互。
- 混合开发模式:
- 集成 WebView2,轻松嵌入现代 Web 应用。
- 集成 Blazor,实现 Web 组件与桌面端逻辑的无缝复用。
- 云原生就绪:内置对 .NET Aspire 的支持,简化服务发现、治理与部署。
- 企业级内置支持:
- 任务管理:任务调度与生命周期管理。
- 异常处理:全局错误捕获与日志追溯机制。
- 本地化框架:内置多语言支持方案,适应全球化场景。
🛠️ 技术栈
- Runtime: .NET 10 SDK
- UI Framework: WPF (Windows Presentation Foundation)
- Hybrid UI: WebView2 + Blazor
- Orchestration: .NET Aspire
- Architecture: Modular Monolith / Plugin-based
🚀 快速开始
请参阅我们准备好的详细指南:
👉 快速开始指南 (quick-start.zh-CN.md)
创建项目
推荐的开始方式是全局 dotnet tool。先安装或更新 CLI,然后通过 zyc new 创建 Host 项目:
dotnet tool install --global ZYC.Framework.CLI --version 1.4.3
dotnet tool update --global ZYC.Framework.CLI --version 1.4.3
zyc new MyCompany.Tools --template minimal
如果需要手动集成,仍然可以通过 NuGet 直接添加核心包:
dotnet add package ZYC.Framework.Alpha --version 1.4.3
文档
| 指南 | 用途 |
|---|---|
| 快速开始 | 创建项目,并了解手动创建的备用流程。 |
| 架构 | 理解启动、模块加载、配置、导航和运行时服务。 |
| 导航与 Workspace | 处理 URI 导航、Tab、Workspace 和恢复时机。 |
| 扩展点 | 查看模块可以扩展 Host 的公开位置。 |
| 内置模块 | 查看内置模块及其主要职责。 |
| 模块开发 | 构建包含契约、ModuleBase、菜单和 Tab 的运行时模块。 |
| 项目模板 | 选择并理解 minimal 与 modular CLI 模板。 |
| 故障排查 | 诊断 CLI、模块加载、路由、NuGet 模块、Aspire 和终端问题。 |
功能
核心框架
| 功能 | 说明 |
|---|---|
| 模块化架构 | 支持按模块组织功能,并支持动态加载与扩展。 |
| 多工作区布局 | 支持工作区分割、合并、方向切换和位置交换。 |
| 多标签页导航 | 支持基于 URI 的标签页导航、恢复和跨工作区移动。 |
| 可扩展菜单系统 | 提供主菜单、Hamburger 菜单、窗口标题栏、状态栏等扩展点。 |
| 通知系统 | 内置 Toast、Banner 等通知能力,用于状态和错误提示。 |
| 交互辅助能力 | 提供 BusyWindow、Overlay、拖放处理等桌面交互基础设施。 |
| 混合界面支持 | 支持通过 WebView2 嵌入 Web 内容,并可结合 Blazor 构建混合应用。 |
| 配置与状态持久化 | 支持配置、应用状态和任务记录的本地持久化。 |
| 单实例运行 | 支持应用单实例启动控制。 |
| MCP 暴露机制 | 可将框架和模块中的公开能力自动暴露为 MCP 工具。 |
内置模块
README 只保留高层功能概览。当前模块清单、加载说明和模块职责请查看 内置模块。
开发与交付
| 功能 | 说明 |
|---|---|
| CLI 工具 | 提供命令行入口,支持模块级命令扩展。 |
| 模块脚手架 | 支持通过模板快速生成新模块及其抽象项目。 |
| 文档生成 | 支持生成 README 和文档模板内容。 |
| NuGet 打包 | 支持框架和模块的 NuGet 打包流程。 |
| 安装包构建 | 支持生成桌面安装包,方便分发与部署。 |
📸 界面预览
工作区展示 |
多 Tab 展示 |
多工作区展示 |
多工作区 Tab 展示 |
Aspire 仪表板 |
Blazor with Auth |
异常处理 |
任务管理 |
📄 开源协议
本项目基于 MIT License 开源。
💖 鸣谢
本项目使用了以下开源库/参考了其部分实现:
- MahApps.Metro: UI 框架支持。
- MdXaml: 文档预览支持。
- titanium-web-proxy: 网络代理核心。
- EasyWindowsTerminalControl: 终端集成方案。
以上项目的许可证归其原作者所有; 本仓库在遵循对应许可证条款的前提下使用/参考其实现。
🤝 贡献
如果你有任何建议或发现了 Bug,欢迎提交 Issue 或 Pull Request。