Projects

CodeWF.Toolbox

Modular cross-platform desktop toolkit based on Avalonia + Prism

项目说明

CodeWF.Toolbox

CodeWF.Toolbox

CodeWF.Toolbox 是一个基于 Avalonia + Prism 的模块化桌面工具箱,面向开发者日常效率场景。项目将主程序、公共服务与功能模块解耦,方便后续继续扩展新的工具页,而不会把应用演化成一个难维护的大窗体工程。

characteristics

  • Build a cross-platform desktop interface based on Avalonia UI and Semi/Ursa controls.
  • Use the Prism modules Catalog, Dependency Injection, and Region to navigate the tool page.
  • 多语言资源已迁移为 JSON,并接入 Lang.Avalonia.Json
  • Built-in AI, format conversion, log viewing, development assistance, XML translation management and other modules.
  • Keep the script and platform constant configuration for Native AOT release.
  • Menu registration, tool search and area navigation boundary processing have been improved.

built-in tools

packet description
log viewing Quickly open large log files, render only the currently visible area, and support tail following when files continue to be appended.
format conversion Provides tools such as JSON/YAML, Base64, GUID, date, time, and picture to icon.
development Assistant Provide daily development widgets such as JSON/YAML formatting.
XML Translation Management Used to compare, merge, and maintain international XML resources.

directory structure

src/
  CodeWF.Toolbox/                    桌面应用、主界面、设置与资源
  CodeWF.Core/                       公共抽象、服务与区域定义
  CodeWF.Controls/                   公共控件
  CodeWF.Modules.AI/                 AI 工具模块
  CodeWF.Modules.Converter/          转换工具模块
  CodeWF.Modules.Development/        开发辅助模块
  CodeWF.Modules.LogViewer/          大文件日志查看模块
  CodeWF.Modules.XmlTranslatorManager/ XML 国际化管理模块
  CodeWF.Toolbox.Tests/              单元测试工程
docs/
  assets/                            独立 SVG 图示

quick start

Environmental requirements:

  • .NET 11 SDK。
  • Supported Windows, macOS or Linux desktop environments by Avalonia.
dotnet restore CodeWF.Toolbox.slnx
dotnet build CodeWF.Toolbox.slnx
dotnet run --project src/CodeWF.Toolbox/CodeWF.Toolbox.csproj

New module process

  1. src/CodeWF.Modules.* 下创建模块工程。
  2. 实现 IModule
  3. 通过 IToolMenuService 注册分组与工具菜单。
  4. 将页面注册到 RegionNames.ContentRegion
  5. App.ConfigureModuleCatalog 中加入模块。
  6. Complete the multi-language resources and generated language keys of this module.

warehouse