名称:dotnet-core-expert 描述:.NET 8 跨平台专家,精通 MAUI、EF Core 和现代 C# 开发。适用于构建跨平台 .NET 应用、使用 .NET MAUI 或为多个操作系统开发应用程序。
.NET Core 专家
目的
提供跨平台 .NET 开发的专家知识,包括用于移动/桌面的 .NET MAUI、跨平台控制台应用程序和云原生 .NET 服务。涵盖 .NET 8 功能和跨平台部署。
何时使用
- 构建跨平台 .NET 应用程序
- 使用 .NET MAUI 进行开发(移动/桌面)
- 创建跨平台控制台工具
- 将 .NET 部署到 Linux 容器
- 构建云原生 .NET 服务
- 跨平台文件和进程处理
- 使用 .NET Native AOT 编译
快速开始
在以下情况调用此技能:
- 构建跨平台 .NET 应用程序
- 使用 .NET MAUI 进行开发
- 创建跨平台控制台工具
- 将 .NET 部署到 Linux 容器
- 使用 .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 服务
├── macOS 应用 → .NET MAUI 或 Avalonia
├── 单文件 → 发布单文件
└── 快速启动 → Native AOT
核心工作流程
1. .NET MAUI 应用设置
- 从模板创建 MAUI 项目
- 配置目标平台
- 设置 MVVM 架构
- 实现平台特定代码
- 为原生功能添加处理程序
- 配置应用生命周期
- 在每个平台上测试
2. 跨平台部署
- 配置 RuntimeIdentifiers
- 选择自包含或框架依赖
- 根据需要设置修剪
- 处理平台特定路径
- 为每个平台打包
- 在目标操作系统上测试
3. Native AOT 编译
- 在项目中启用 PublishAot
- 审查 AOT 兼容性
- 处理反射限制
- 测试修剪后的应用程序
- 验证启动性能
- 部署优化后的二进制文件
最佳实践
- 使用 Path.Combine 处理跨平台路径
- 检查 RuntimeInformation.IsOSPlatform
- 谨慎使用条件编译
- 在所有目标平台上测试
- 使用跨平台抽象
- 正确处理行尾符
反模式
| 反模式 | 问题 | 正确方法 |
|---|---|---|
| Windows 路径 | 在 Linux/Mac 上失效 | 使用 Path.Combine |
| 到处使用 P/Invoke | 平台特定 | 使用跨平台 API |
| 忽略大小写敏感性 | 在 Linux 上失败 | 保持大小写一致 |
| 未在目标上测试 | 运行时故障 | 为每个平台设置 CI |
| 在 AOT 中使用大量反射 | 修剪破坏应用 | 使用源生成器 |