| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
refactor: 架构优化 + 测试体系建设 架构重构: - 引入 DI 容器 (Microsoft.Extensions.DependencyInjection),解耦 MainWindow/PluginManager/UpdateService - 拆分 PluginManager UI 依赖为 IPluginDisplay 接口,PluginManager 现可独立单元测试 - 统一 DTO (PluginInfo/UpdateManifest) 到 MToolbox.Contracts,消除重复定义 - MainViewModel 实现 IPluginDisplay,PluginItem/RelayCommand 拆分为独立文件 - Contracts.csproj 多目标 net10.0;net10.0-windows,条件编译排除IToolPlugin 质量优化: - FormatUtils.FormatBytes 提取为公共工具,消除 QuickActions/SystemInfo 重复代码 - UpdateService 支持 CancellationToken 优雅取消后台轮询 - PluginLoadContext 跟踪临时文件并在 UnloadAndDispose 中清理 - 单实例检测从进程名匹配改为命名 Mutex - NotifyIcon 清理用 try/finally 确保资源释放 - README 补充架构说明 测试体系 (60 tests, 100% pass): - test.bat: 一站式测试脚本 (build → 夹具准备 → test → 覆盖率) - MockPluginDisplay: 手写 Mock,无需第三方库 - FormatUtilsTests (14): FormatBytes 全边界覆盖 - PluginManagerTests (14): 加载/卸载/热更新/视图/快照真实验证 - UpdateServiceTests (+8): 短版本归一化/非数字回退/降级保护 - RelayCommandTests (6) + PluginItemTests (3) + PluginLoadContextTests (4) | 1 个月前 | |
feat: add plugin update hints and update all button | 1 个月前 | |
Refactor Firewall plugin to MVVM and add unit tests Extract business logic from FirewallView code-behind into FirewallViewModel; add IFirewallService and RelayCommand base classes; rebind XAML to ViewModel; add FakeFirewallService and 43 test cases (total 60 to 103) | 1 个月前 | |
fix: Web download button not responding -- read shell-version.json and manifest.json at runtime | 1 个月前 | |
Refactor Firewall plugin to MVVM and add unit tests Extract business logic from FirewallView code-behind into FirewallViewModel; add IFirewallService and RelayCommand base classes; rebind XAML to ViewModel; add FakeFirewallService and 43 test cases (total 60 to 103) | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 |