用途:在开发 Windows Forms UI、事件驱动流程或经典 LOB 应用时提供指导,也用于从 .NET Framework 迁移到现代 .NET、清理臃肿窗体代码或处理数据绑定、验证与控件定制。
主要能力:强调尊重设计器边界,不直接编辑 .Designer.cs;用 MVP 模式分离业务逻辑,窗体负责编排 UI、presenter 承载逻辑、服务负责数据访问;使用 BindingSource 与 INotifyPropertyChanged 做数据绑定;用 async/await 处理 I/O 并借 Progress<T> 报告进度;用 ErrorProvider 与 Validating 事件做验证并在保存前调用 ValidateChildren();增量现代化,优先调整结构而非推倒重写。
使用方式:Program.cs 中用 DI 注册服务与窗体,示例为 services.AddSingleton<ICustomerService, CustomerService>(); services.AddTransient<MainForm>(); 再用 Application.Run(sp.GetRequiredService<MainForm>()); 启动。视图通过接口暴露属性与 SaveRequested 事件,presenter 订阅事件并调用服务。
适用场景:WinForms 桌面应用的结构改造、迁移评估、绑定与验证规范化。限制:仅面向 Windows 桌面运行时,行为需在目标环境验证;改动项目格式、设计器文件或部署假设前,先确认目标为 .NET Framework、现代 .NET 还是混合库;MVP 优先于 MVVM。完整绑定模式见 references/patterns.md,迁移细节见 references/migration.md。