用途
C# Developer 技能提供现代 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# 特性(records、模式匹配等)
- 构建企业级 .NET 应用
- 使用 xUnit/NUnit 编写单元测试
- 实现依赖注入模式
在以下情况不要调用该技能:
- 构建跨平台 .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 Minimal API 或 Controllers
- Web 应用 → Blazor 或 Razor Pages
- 后台服务 → Worker Service
- 桌面 → WPF、WinUI 或 MAUI
- 类库 → .NET Standard 或 .NET 8
按数据访问方式选择方向:
- 使用 ORM 的 SQL → Entity Framework Core
- 需要精细控制的 SQL → Dapper
- NoSQL → MongoDB driver 或 Cosmos SDK
- 多种数据库 → Repository 模式
核心工作流
1. ASP.NET Core API 开发
- 使用合适的模板创建项目
- 配置依赖注入
- 实现领域模型
- 设置带迁移的 EF Core
- 创建控制器或 Minimal API 端点
- 添加验证与错误处理
- 实现身份验证/授权
- 添加 OpenAPI 文档
2. Entity Framework Core 设置
- 定义实体模型
- 配置 DbContext
- 设置关系与约束
- 创建初始迁移
- 如需要,实现 Repository 模式
- 添加查询优化
- 配置连接弹性
3. 测试策略
- 设置 xUnit 或 NUnit 项目
- 使用 mock 创建单元测试
- 实现集成测试
- 使用 WebApplicationFactory 进行 API 测试
- 添加测试数据库 fixture
- 配置 CI 测试流水线
最佳实践
- 使用 records 表示 DTO 和不可变数据
- 利用模式匹配编写更简洁的代码
- 使用可空引用类型
- 实现 IAsyncDisposable 以进行异步清理
- 在 C# 12 中使用主构造函数
- 为 includes 配置 EF Core 查询拆分
反模式
| 反模式 | 问题 | 正确做法 |
|---|---|---|
| Service locator | 隐藏依赖 | 构造函数注入 |
| Async void | 未处理异常 | 处处使用 async Task |
| N+1 查询 | 性能问题 | 使用 Include() 或投影 |
| 从构造函数抛出异常 | 难以处理 | 使用工厂方法 |
| 基于字符串的配置 | 运行时错误 | 强类型选项 |
限制
该技能不覆盖 .NET MAUI 跨平台应用、.NET Framework 4.8、Windows 桌面应用以及 Azure 专属基础设施,这些场景应改用对应的专门技能。