A high-performance, modular, and extensible desktop automation framework built with .NET 10 and WPF.
π Overview
ZYC.Framework is a modern desktop automation solution that combines the expressive UI capabilities of WPF with the latest features of .NET 10. It is designed to simplify the development of complex automation systems through a modular architecture.
The project deeply integrates .NET Aspire for distributed application orchestration, and supports a hybrid approach with Blazor and WebView2, so you can choose between a Web-based UI and a native desktop experience as needed.
β¨ Key Features
- Modular Architecture: Decoupled business logic with dynamic loading and independent development.
- Modern UI Experience: Built on WPF with support for multi-workspace and multi-tab interactions.
- Hybrid Development:
- WebView2 integration for embedding modern Web applications.
- Blazor integration to reuse Web components seamlessly in desktop scenarios.
- Cloud-Native Ready: Built-in .NET Aspire support to simplify service discovery, governance, and deployment.
- Batteries Included (Enterprise-Oriented):
- Task Management: Task scheduling and lifecycle management.
- Exception Handling: Robust global error capture and diagnostics.
- Localization: Built-in multi-language support for global-ready apps.
π οΈ Tech Stack
- Runtime: .NET 10 SDK
- UI Framework: WPF (Windows Presentation Foundation)
- Hybrid UI: WebView2 + Blazor
- Orchestration: .NET Aspire
- Architecture: Modular Monolith / Plugin-based
π Quick Start
Please refer to the detailed guide:
π Quick Start (quick-start.md)
Create a Project
The recommended way to start is the global dotnet tool. Install or update the CLI, then create a host project with zyc new:
dotnet tool install --global ZYC.Framework.CLI --version 1.4.0
dotnet tool update --global ZYC.Framework.CLI --version 1.4.0
zyc new MyCompany.Tools --template minimal
For manual integration, the core package can still be added directly with NuGet:
dotnet add package ZYC.Framework.Alpha --version 1.4.0
Documentation
| Guide | Purpose |
|---|---|
| Quick Start | Create a project and understand the manual fallback setup. |
| Architecture | Understand startup, module loading, configuration, navigation, and runtime services. |
| Navigation and Workspace | Work with URI navigation, tabs, workspaces, and restore timing. |
| Extension Points | Find the public places where modules can extend the host. |
| Built-in Modules | Review the built-in modules and their main responsibilities. |
| Module Development | Build a runtime module with contracts, ModuleBase, menus, and tabs. |
| Project Templates | Choose and understand the minimal and modular CLI templates. |
| Troubleshooting | Diagnose CLI, module loading, routing, NuGet module, Aspire, and terminal issues. |
Features
Core Framework
| Feature | Description |
|---|---|
| Modular Architecture | Organize features as modules with support for dynamic loading and extension. |
| Multi-Workspace Layout | Split, merge, reorder, and change workspace layout directions. |
| Multi-Tab Navigation | URI-based tab navigation with switching, restoration, and cross-workspace movement. |
| Extensible Menu System | Extension points for main menu, hamburger menu, title bar, status bar, and taskbar menus. |
| Notification System | Built-in Toast and Banner notifications for status and error feedback. |
| Interaction Utilities | Desktop interaction helpers such as BusyWindow, overlays, and drag-and-drop. |
| Hybrid UI Support | Embed web content using WebView2 and build hybrid UI with Blazor. |
| Configuration & State | Local persistence for configuration, application state, and task history. |
| Single Instance | Supports single-instance application startup control. |
| MCP Exposure | Automatically expose public framework and module capabilities as MCP tools. |
Built-in Modules
The README keeps only the high-level feature summary. See Built-in Modules for the current module list, loading notes, and module responsibilities.
Development & Delivery
| Feature | Description |
|---|---|
| CLI Tools | Standalone CLI entry with module command extension support. |
| Module Scaffolding | Generate new modules and abstraction projects from templates. |
| Documentation Generation | Generate README and documentation templates. |
| NuGet Packaging | Build NuGet packages for framework and modules. |
| Installer Build | Build desktop installers for distribution. |
πΈ UI Preview
π License
This project is open-sourced under the MIT License.
π Acknowledgements
This project uses (and/or references parts of implementations from) the following open-source projects:
- MahApps.Metro: UI framework.
- MdXaml: Markdown rendering.
- titanium-web-proxy: Proxy core.
- EasyWindowsTerminalControl: Terminal integration.
Licenses and copyrights belong to their respective authors. This repository uses or references them in compliance with each project's license terms.
π€ Contributing
Issues and pull requests are welcome. If you have suggestions or found a bug, please open an issue or submit a PR.
No comments yet
Be the first to share your take.