基于 .NET MAUI Blazor 的本地开发工具箱,目标是把日常高频小工具集中到一个应用里,减少开发过程中的上下文切换。
2026-06 起支持 Blazor Web App 浏览器访问:文本/计算/部分网络工具可在 Web 使用;桌面专属能力(AI、OCR、C# Runner 等)仍仅在 MAUI 提供。
- C# Runner:运行 C# 代码片段并查看输出(MAUI)
- 网络工具:请求转 cURL、Socket 测试(Socket 仅 MAUI)
- 计算工具:位运算、结构体布局、常用转换(进制、格式、颜色等)
- 文本工具:文本整理、正则、Base64、URL、JWT、时间戳、JSON、UUID、Diff、SVG 预览、剪贴板序列等
- AI / OCR / 目录同步等(MAUI)
ToolBox/ MAUI Blazor Hybrid 应用(平台服务 + WebView 壳)
ToolBox.Shared/ 共享 Razor 页面、ViewModel、服务接口
ToolBox.Web/ Blazor Web App 宿主(SSR 壳)
ToolBox.Web.Client/ WASM 客户端、Web 路由/布局、浏览器服务
ToolBox.Tools/ 可复用工具 Service 层(VM 与 MCP 共用)
ToolBox.Mcp/ 本地 stdio MCP Server(Agent 小工具,约 33 个 Tool)
CommonHelp/ 共享工具类库
TestCommonHelp/ CommonHelp 单元测试
ToolBox.slnx 解决方案入口
Shared 组件被 MAUI 与 Web 共同引用;Web 开放页面由 ToolNavDefinition(导航数据源)与 WebRouteRegistry(路由白名单)共同维护。
- .NET SDK 10(与项目
net10.0-*目标框架一致) - Windows 本地开发建议先使用 Windows 目标框架进行 MAUI 构建验证
- Docker 部署 Web 需安装 Docker Desktop(或 Docker Engine + Compose)
MAUI Windows
dotnet build ToolBox/ToolBox.csproj -c Debug -f net10.0-windows10.0.19041.0Web 本地运行
dotnet run --project ToolBox.Web/ToolBox.Web.csprojWeb 发布
dotnet publish ToolBox.Web/ToolBox.Web.csproj -c Release -o ./publish/webWeb Docker 部署(默认 http://localhost:18488)
# Windows
.\scripts\deploy-web-docker.ps1
.\scripts\deploy-web-docker.ps1 -Down # 停止
.\scripts\deploy-web-docker.ps1 -Logs # 日志# Linux / macOS
./scripts/deploy-web-docker.sh
./scripts/deploy-web-docker.sh --down也可直接使用 Compose:
docker compose up -d --build
docker compose down相关文件:Dockerfile、docker-compose.yml、.dockerignore。容器内监听 8080,宿主机默认映射 18488(可通过环境变量 TOOLBOX_WEB_PORT 修改)。ToolBox.Web.csproj 含 <RequiresAspNetWebAssets>true</RequiresAspNetWebAssets>;Docker 构建时 不要 对 dotnet publish 使用 --no-restore,否则 .NET 10 可能缺少 _framework/blazor.web.js 导致静态资源 404。
整个解决方案
dotnet build ToolBox.slnx -c Debug- 命名空间与目录结构保持一致(Shared 根命名空间:
ToolBox) - Razor 组件位于
ToolBox.Shared/Components/**,命名空间如ToolBox.Components.Pages - Blazor 组件与对应 ViewModel 必须同目录;ViewModel 文件名以
VM.cs结尾 - 优先复用
CommonHelp,避免在业务目录新增零散工具函数 - Shared 页面不要加
@rendermode(MAUI 不支持);Web 交互由App.razor的ToolRouter统一提供 - Web 专用路由/布局放在
ToolBox.Web.Client - 导航与 Web 路由:
ToolBox.Shared/Components/Layout/ToolNavDefinition.cs为单一数据源;NavMenu.razor/WebNavMenu.razor为薄包装;WebRouteRegistry从 Web 可见项自动生成,别名路由见AdditionalWebRoutes
- .NET MAUI + Blazor Hybrid
- Blazor Web App(SSR + Interactive WebAssembly)
- MudBlazor、Blazing.Mvvm
- Roslyn Scripting(C# Runner)
- DiffPlex / BlazorTextDiff(文本对比)
AGENTS.md:Agent / 协作者约定(含 MCP 与 Skill 路由)ToolBox.Mcp/README.md:本地 toolbox MCP 配置与工具列表.agents/skills/:MCP 分类 Skill 真源(.cursor/skills/、.cline/skills/为副本)memory-bank/:长期上下文(架构、进度、产品范围)