关于 csharp-developer
面向现代 C# 和 .NET 开发的技能,涵盖 ASP.NET Core、Entity Framework Core、企业级模式与测试。适用于使用 .NET 8 和 C# 12 构建 API、应用和库的开发者。
主要功能
- 01ASP.NET Core API 工作流
- 02Entity Framework Core 数据访问
- 03现代 C# 与 .NET 实践
- 04单元与集成测试
- 05依赖注入模式
适用场景
- 01构建 .NET 8 Web API
- 02配置 EF Core 迁移
- 03测试 ASP.NET Core 应用
- 04在企业软件中运用 C# 模式
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ 404kidwiz/ claude-supercode-skills --skill csharp-developer安装后在 Claude Code 中输入/csharp-developer确认已加载。
详细介绍
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)
决策框架
Project Type:
├── Web API → ASP.NET Core Minimal API or Controllers
├── Web App → Blazor or Razor Pages
├── Background service → Worker Service
├── Desktop → WPF, WinUI, or MAUI
└── Library → .NET Standard or .NET 8
Data Access:
├── SQL with ORM → Entity Framework Core
├── SQL with control → Dapper
├── NoSQL → MongoDB driver or Cosmos SDK
└── Multiple DBs → Repository pattern
核心工作流
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() 或投影 |
| 在构造函数中抛出异常 | 难以处理 | 使用工厂方法 |
| 基于字符串的配置 | 运行时错误 | 使用强类型选项 |
评论
支持 Markdown