SuperAPI AI 工具集

dotnet-core-expert

编程与开发

查看项目

更新于 10-15 10:39

技能介绍

用途

该技能提供跨平台 .NET 开发方面的专业知识,涵盖 .NET MAUI(移动与桌面)、跨平台控制台应用以及云原生 .NET 服务,并涉及 .NET 8 特性和跨平台部署。

适用场景

以下情况可调用该技能:

  • 构建跨平台 .NET 应用
  • 使用 .NET MAUI(移动/桌面)开发
  • 创建跨平台控制台工具
  • 将 .NET 部署到 Linux 容器
  • 构建云原生 .NET 服务
  • 跨平台文件与进程处理
  • 使用 .NET Native AOT 编译

以下情况不应调用:

  • 仅 Windows 的 WPF/WinForms(改用 windows-app-developer)
  • 旧版 .NET Framework(改用 dotnet-framework-4.8-expert)
  • 专门的 Web API(改用 csharp-developer)
  • Azure 基础设施(改用 azure-infra-engineer)

决策框架

跨平台 UI 选择:

  • 移动 + 桌面 → .NET MAUI
  • 仅桌面 → Avalonia 或 MAUI
  • Web → Blazor
  • 控制台 → 跨平台控制台应用

部署目标选择:

  • Linux 容器 → 自包含、Alpine
  • Windows 服务 → Worker service
  • macOS 应用 → .NET MAUI 或 Avalonia
  • 单文件 → 发布单文件
  • 快速启动 → Native AOT

核心工作流

  1. .NET MAUI 应用搭建:从模板创建 MAUI 项目;配置目标平台;设置 MVVM 架构;实现平台特定代码;为原生功能添加 handlers;配置应用生命周期;在每个平台测试。
  2. 跨平台部署:配置 RuntimeIdentifiers;选择自包含或框架依赖;按需设置裁剪;处理平台特定路径;为每个平台打包;在目标操作系统测试。
  3. Native AOT 编译:在项目中启用 PublishAot;审查 AOT 兼容性;处理反射限制;测试裁剪后的应用;验证启动性能;部署优化后的二进制文件。

最佳实践

  • 使用 Path.Combine 处理跨平台路径
  • 使用 RuntimeInformation.IsOSPlatform 判断平台
  • 谨慎使用条件编译
  • 在所有目标平台测试
  • 使用跨平台抽象
  • 正确处理行尾

反模式

  • Windows 路径:会在 Linux/Mac 上出错,应使用 Path.Combine
  • 到处 P/Invoke:造成平台特定,应使用跨平台 API
  • 忽视大小写敏感:在 Linux 上失败,应保持大小写一致
  • 未在目标平台测试:导致运行时失败,应为每个平台配置 CI
  • AOT 下大量反射:裁剪会破坏应用,应使用源生成器

限制

该技能不覆盖仅 Windows 的 WPF/WinForms、旧版 .NET Framework、专门的 Web API 和 Azure 基础设施,相关场景应使用对应技能。