name: csharp-developer description: .NET 8 和 C# 12 专家,精通 ASP.NET Core、EF Core 和现代企业级开发。适用于构建 C# 应用程序、使用 .NET、实现 ASP.NET Core API 或使用 Entity Framework。
C# 开发专家
目的
提供现代 C# 和 .NET 开发的专业知识,包括 ASP.NET Core Web 应用程序、Entity Framework Core 数据访问和企业级应用程序模式。涵盖 C# 12 特性和 .NET 8 最佳实践。
何时使用
- 使用 .NET 8 构建 C# 应用程序
- 开发 ASP.NET Core Web API
- 实现 Entity Framework Core 数据访问
- 使用现代 C# 特性(记录、模式匹配等)
- 构建企业级 .NET 应用程序
- 使用 xUnit/NUnit 编写单元测试
- 实现依赖注入模式
快速开始
在以下情况调用此技能:
- 使用 .NET 8 构建 C# 应用程序
- 开发 ASP.NET Core Web API
- 实现 Entity Framework Core 数据访问
- 使用现代 C# 特性
- 构建企业级 .NET 应用程序
不要在以下情况调用:
- 构建跨平台 .NET MAUI 应用(使用 dotnet-core-expert)
- 使用 .NET Framework 4.8(使用 dotnet-framework-4.8-expert)
- 构建 Windows 桌面应用(使用 windows-app-developer)
- Azure 特定基础设施(使用 azure-infra-engineer)
决策框架
项目类型:
├── Web API → ASP.NET Core 极简 API 或控制器
├── Web 应用 → Blazor 或 Razor Pages
├── 后台服务 → Worker Service
├── 桌面应用 → WPF、WinUI 或 MAUI
└── 类库 → .NET Standard 或 .NET 8
数据访问:
├── 使用 ORM 的 SQL → Entity Framework Core
├── 需要控制的 SQL → Dapper
├── NoSQL → MongoDB 驱动或 Cosmos SDK
└── 多数据库 → 仓储模式
核心工作流
1. ASP.NET Core API 开发
- 使用合适的模板创建项目
- 配置依赖注入
- 实现领域模型
- 使用迁移设置 EF Core
- 创建控制器或极简 API 端点
- 添加验证和错误处理
- 实现身份验证/授权
- 添加 OpenAPI 文档
2. Entity Framework Core 设置
- 定义实体模型
- 配置 DbContext
- 设置关系和约束
- 创建初始迁移
- 如果需要,实现仓储模式
- 添加查询优化
- 配置连接弹性
3. 测试策略
- 设置 xUnit 或 NUnit 项目
- 使用模拟创建单元测试
- 实现集成测试
- 使用 WebApplicationFactory 进行 API 测试
- 添加测试数据库夹具
- 配置 CI 测试流水线
最佳实践
- 使用记录类型处理 DTO 和不可变数据
- 利用模式匹配编写更简洁的代码
- 使用可空引用类型
- 为异步清理实现 IAsyncDisposable
- 在 C# 12 中使用主构造函数
- 为 Include 配置 EF Core 查询拆分
反模式
| 反模式 | 问题 | 正确方法 |
|---|---|---|
| 服务定位器 | 隐藏依赖 | 构造函数注入 |
| Async void | 未处理的异常 | 始终使用 async Task |
| N+1 查询 | 性能问题 | 使用 Include() 或投影 |
| 从构造函数抛出异常 | 难以处理 | 使用工厂方法 |
| 基于字符串的配置 | 运行时错误 | 强类型选项 |