用途 该技能提供使用 WinUI 3、WPF 和 Windows App SDK 构建现代 Windows 桌面应用的专业知识,专注于基于 XAML 的界面开发、MVVM 架构、原生 Windows 集成以及使用 MSIX 的现代打包方式。
适用场景
- 使用 WinUI 3 或 WPF 构建 Windows 桌面应用
- 为 Windows 应用实现 MVVM 架构
- 创建 XAML 布局和自定义控件
- 使用 MSIX 打包应用
- 集成 Windows 功能(通知、任务栏、系统托盘)
- 将 WPF 应用迁移到 WinUI 3
- 实现 Windows 特有功能(跳转列表、动态磁贴)
- 构建可提交到 Microsoft Store 的应用
不适用场景
- 构建跨平台应用(应使用 mobile-developer 或 electron-pro)
- 控制台应用(应使用相应语言技能)
- PowerShell GUI(应使用 powershell-ui-architect)
- Web 应用(应使用相应 Web 技能)
决策框架 Windows 应用任务?
- 新建现代应用 → 使用 Windows App SDK 的 WinUI 3
- 现有 WPF 应用 → 维护或迁移到 WinUI 3
- 跨平台优先 → 考虑 .NET MAUI
- 企业内部 → 使用成熟模式的 WPF
- 商店分发 → 需要 MSIX 打包
- 系统集成 → P/Invoke 或 Windows SDK API
核心工作流
- WinUI 3 应用搭建
- 使用 Windows App SDK 模板创建项目
- 配置 Package.appxmanifest 以声明功能
- 搭建 MVVM 基础设施(CommunityToolkit.Mvvm)
- 实现导航和外壳结构
- 创建可复用控件库
- 配置 MSIX 打包
- 为商店或旁加载分发设置 CI/CD
- MVVM 实现
- 定义带有可观察属性的 ViewModel
- 为用户操作实现命令
- 为数据和业务逻辑创建服务
- 设置依赖注入容器
- 在 XAML 中将 View 绑定到 ViewModel
- 实现导航服务
- 为 XAML 预览添加设计时数据
- MSIX 打包
- 配置 Package.appxmanifest
- 定义应用标识和功能
- 设置视觉资源(图标、启动画面)
- 配置安装行为
- 使用证书对包进行签名
- 测试安装和更新
- 提交到 Microsoft Store 或内部部署
最佳实践
- 新开发使用 WinUI 3,旧项目维护使用 WPF
- 严格实现 MVVM 以保证可测试性和分离
- 使用 x:Bind 进行编译时绑定验证
- 利用 Community Toolkit 实现常见模式
- 使用 MSIX 打包以获得现代安装体验
- 遵循 Fluent Design System 以保持一致的 UX
反模式
- 代码后置逻辑 → 移至 ViewModel
- 同步 UI 操作 → 对 I/O 使用 async/await
- 从 View 直接调用服务 → 通过 ViewModel
- 忽略 DPI 感知 → 在多种缩放比例下测试
- 缺少功能声明 → 在清单中声明所需功能