dotnet-backend-patterns

掌握C#/.NET后端开发模式,用于构建健壮的API、MCP服务器及企业级应用。涵盖异步编程(async/await)、依赖注入、Entity Framework Core、Dapper、配置管理、缓存机制以及xUnit测试。适用于开发.NET后端系统、审查C#代码或设计API架构。

作者

安装

热度:5

下载并解压到你的 skills 目录

复制命令,发送给 OpenClaw 自动安装:

下载并安装这个技能 https://openskills.cc/api/download?slug=sickn33-skills-dotnet-backend-patterns&locale=zh&source=copy

.NET 后端开发模式 - 构建生产级 API 的完整指南

技能概述


掌握 C#/.NET 后端开发的现代最佳实践,用于构建生产级 Web API、MCP 服务器和企业级后端应用。

适用场景

1. 开发 .NET Web API 和 MCP 服务器


当你需要创建新的 ASP.NET Core Web API 或 Model Context Protocol (MCP) 服务器时,此技能提供完整的架构指导。从项目结构设计、API 端点规划,到中间件配置和错误处理,帮助你快速搭建可维护的后端服务。

2. C# 代码审查与重构


在审查团队成员的 C# 代码或进行技术债务清理时,此技能能帮你识别常见问题:依赖注入使用不当、异步方法缺陷、数据库查询低效、缓存策略缺失等。提供具体的改进建议和重构方案。

3. 后端架构设计与性能优化


设计服务层架构、选择数据访问技术(EF Core vs Dapper)、规划缓存策略(Redis)、实现弹性模式(重试、熔断、超时)时,此技能提供经过验证的架构模式和决策指南。

核心功能

1. 依赖注入与架构模式


提供 .NET 依赖注入的最佳实践,包括服务生命周期选择(Transient、Scoped、Singleton)、构造函数注入模式、服务定位器反模式识别。同时涵盖分层架构、仓储模式、工作单元模式等经典架构设计。

2. 数据访问与性能优化


覆盖 Entity Framework Core 和 Dapper 两种主流数据访问技术。包括:EF Core 查询优化(N+1 问题、跟踪查询)、索引设计、迁移管理;Dapper 轻量级 ORM 使用场景、批量操作、多表查询。以及数据库连接池配置和异步数据访问。

3. 缓存、配置与测试


涵盖内存缓存和分布式 Redis 缓存的实现策略,包括缓存键设计、过期策略、缓存穿透/雪崩处理。IOptions 配置模式用于管理应用配置。xUnit 单元测试和集成测试的最佳实践,包括 Mock 使用、测试数据管理、测试覆盖率。

常见问题

.NET 依赖注入的生命周期如何选择?


  • Transient(瞬时):每次请求都创建新实例,适用于无状态服务

  • Scoped(作用域):同一 HTTP 请求内共享实例,适用于 EF DbContext

  • Singleton(单例):应用程序生命周期内只有一个实例,适用于缓存服务、配置类
  • 注意:Scoped 服务不能注入到 Singleton 服务中,会导致捕捉到作用域服务的错误。

    EF Core 和 Dapper 应该如何选择?


  • 选择 EF Core:复杂查询、需要 LINQ 表达式、频繁变更模型、需要迁移支持

  • 选择 Dapper:极致性能要求、简单 CRUD、批量操作、已有 SQL 脚本迁移
  • 实践中常见组合:用 EF Core 处理复杂查询和业务逻辑,用 Dapper 处理高并发读写和批量操作。

    async/await 在 .NET 后端中有哪些常见陷阱?


  • 避免 async void:除事件处理器外,始终使用 async Task

  • 避免 .Result 和 .Wait():会导致死锁,始终使用 await

  • ConfigureAwait(false):库代码中使用以减少上下文切换

  • 正确处理取消令牌:长时间运行的异步方法应支持 CancellationToken
  • 正确的异步模式能提升服务器吞吐量,避免线程池饥饿。