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)

πŸ‘‰ Download Demo Installer

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:

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.