Windows应用程序开发专家Skill windows-app-developer

本技能提供专业的 Windows 桌面应用程序开发服务,专精于使用 WinUI 3、WPF 和 Windows App SDK 构建现代化应用。核心能力包括:MVVM 架构设计、XAML UI 开发、MSIX 打包部署、原生 Windows 功能集成(如通知、任务栏)、以及应用商店发布。适用于企业级软件、工具软件及需要深度系统集成的桌面应用开发。关键词:Windows 开发,WinUI 3,WPF,MVVM 架构,XAML,MSIX 打包,桌面应用,Windows App SDK,Fluent Design。

前端开发 3 次安装 24 次浏览 更新于 2/23/2026

name: windows-app-developer description: 使用 WinUI 3、WPF 和 Windows App SDK 构建现代 Windows 应用程序的专家。专精于 MSIX 打包、XAML 样式设计和 MVVM 架构。

Windows 应用程序开发专家

目的

提供使用 WinUI 3、WPF 和 Windows App SDK 构建现代 Windows 桌面应用程序的专业知识。专精于基于 XAML 的 UI 开发、MVVM 架构、原生 Windows 集成以及使用 MSIX 的现代打包技术。

何时使用

  • 使用 WinUI 3 或 WPF 构建 Windows 桌面应用程序
  • 为 Windows 应用实现 MVVM 架构
  • 创建 XAML 布局和自定义控件
  • 使用 MSIX 打包应用程序
  • 与 Windows 功能集成(通知、任务栏、系统托盘)
  • 将 WPF 应用程序迁移到 WinUI 3
  • 实现 Windows 特有功能(跳转列表、动态磁贴)
  • 构建符合 Microsoft Store 要求的应用程序

快速开始

在以下情况下调用此技能:

  • 使用 WinUI 3 或 WPF 构建 Windows 桌面应用程序
  • 为 Windows 应用实现 MVVM 架构
  • 创建 XAML 布局和自定义控件
  • 使用 MSIX 打包应用程序
  • 与 Windows 功能集成(通知、任务栏)

不要在以下情况下调用:

  • 构建跨平台应用 → 使用 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

核心工作流

1. WinUI 3 应用程序设置

  1. 使用 Windows App SDK 模板创建项目
  2. 在 Package.appxmanifest 中配置功能
  3. 设置 MVVM 基础设施 (CommunityToolkit.Mvvm)
  4. 实现导航和外壳结构
  5. 创建可重用控件库
  6. 配置 MSIX 打包
  7. 为商店或旁加载分发设置 CI/CD

2. MVVM 实现

  1. 使用可观察属性定义 ViewModels
  2. 为用户操作实现命令
  3. 为数据和业务逻辑创建服务
  4. 设置依赖注入容器
  5. 在 XAML 中将视图绑定到 ViewModels
  6. 实现导航服务
  7. 为 XAML 预览添加设计时数据

3. MSIX 打包

  1. 配置 Package.appxmanifest
  2. 定义应用程序标识和功能
  3. 设置视觉资产(图标、启动画面)
  4. 配置安装行为
  5. 使用证书对包进行签名
  6. 测试安装和更新
  7. 提交到 Microsoft Store 或内部部署

最佳实践

  • 新开发使用 WinUI 3,遗留维护使用 WPF
  • 严格实现 MVVM 以提高可测试性和分离度
  • 使用 x:Bind 进行编译时绑定验证
  • 利用 Community Toolkit 实现常见模式
  • 使用 MSIX 打包以获得现代安装体验
  • 遵循 Fluent Design System 以确保一致的 UX

反模式

  • 代码隐藏逻辑 → 移至 ViewModels
  • 同步 UI 操作 → 对 I/O 使用 async/await
  • 从视图直接调用服务 → 通过 ViewModels 进行
  • 忽略 DPI 感知 → 在多种缩放比例下测试
  • 缺少功能声明 → 在清单中声明所需功能