技能 dotnet-backend-patterns
📦

dotnet-backend-patterns

安全

使用现代模式构建生产级 .NET 后端

也可从以下获取: wshobson

开发企业级 .NET 应用程序需要掌握数据访问、依赖注入和整洁架构的复杂模式。本技能提供经过实战验证的 EF Core、Dapper、缓存和弹性 API 设计模式。

支持: Claude Codex Code(CC)
🥈 78 白银
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“dotnet-backend-patterns”。 为 Order 实体生成仓库模式

预期结果:

一个完整的 OrderRepository 类,具有异步 CRUD 方法,使用 IDbConnectionFactory 进行连接管理,支持 CancellationToken,并使用 Dapper 进行查询执行

正在使用“dotnet-backend-patterns”。 优化这个具有多个 Include 的 EF Core 查询

预期结果:

使用 AsNoTracking、针对大型集合的 AsSplitQuery、Select 投影到 DTO,以及针对频繁执行查询的 CompiledAsyncQuery 重构查询

安全审计

安全
v1 • 2/24/2026

All 134 static analysis findings are false positives. The 'backtick execution' patterns (87 locations) are markdown code fences in documentation files. The 'weak cryptographic algorithm' findings (11 locations) are LINQ Expression<Func> patterns for the Specification pattern. The 'system reconnaissance' and 'filesystem' findings are normal C# property access and YAML frontmatter. This is a legitimate educational skill containing documentation and code examples for .NET backend development.

6
已扫描文件
2,602
分析行数
0
发现项
1
审计总数
未发现安全问题
审计者: claude

质量评分

55
架构
100
可维护性
87
内容
50
社区
100
安全
91
规范符合性

你能构建什么

全新 API 开发

从零开始构建新的 REST API,具有适当的分层、依赖注入和数据访问模式。

遗留代码现代化

将现有的 .NET Framework 代码重构为现代 .NET 模式,提升性能和可维护性。

性能优化审查

审查和优化现有数据访问代码,适用于基于 EF Core 或 Dapper 的应用程序。

试试这些提示

仓库模式设置
创建一个 Product 实体的仓库模式实现,使用 Entity Framework Core 进行 CRUD 操作。包括异步方法、适当的资源释放,并遵循整洁架构原则。
查询优化审查
审查此 EF Core 查询的性能问题。识别 N+1 问题、缺失的 AsNoTracking 调用以及投影优化机会。建议优化替代方案。
Dapper 微 ORM 实现
实现基于 Dapper 的仓库以进行高性能读取操作。包括连接管理、参数处理和联接表的多重映射。
整洁架构服务层
设计一个编排仓库调用、缓存和验证的服务层。应用依赖注入、CQRS 分离和外部调用的弹性模式。

最佳实践

  • 对只读查询使用 AsNoTracking 以减少内存开销
  • 在 DI 中将数据库上下文和连接注册为 Scoped 生命周期
  • 对复杂的可组合查询条件应用规范模式

避免

  • 在异步代码路径中使用同步数据库调用 - 始终使用 Async 方法
  • 当只需要特定列时加载整个实体
  • 允许延迟加载触发 N+1 查询问题

常见问题

什么时候应该使用 Dapper 而不是 EF Core?
对于性能关键的查询、复杂 SQL(CTE、窗口函数)或读取密集型工作负载,使用 Dapper。对于具有关系的丰富领域模型、需要变更跟踪,或者更倾向于 LINQ-to-SQL 转换时使用 EF Core。
什么是规范模式,什么时候应该使用它?
规范模式将查询条件封装在可重用的类中。当你的应用程序中需要重用复杂查询,或者需要具有分页和排序功能的可组合过滤条件时使用它。
如何在 EF Core 中防止 N+1 查询问题?
使用 Include 预加载关联数据,避免在循环中使用延迟加载,当包含多个集合时使用 AsSplitQuery 以防止笛卡尔积爆炸。
DbContext 的推荐服务生命周期是什么?
在 Web 应用程序中推荐使用 Scoped 生命周期作为 DbContext。这确保每个 HTTP 请求一个实例,这是变更跟踪和身份映射模式所必需的。
如何提高 EF Core 查询性能?
对只读查询使用 AsNoTracking,使用 Select 投影到 DTO,对热点路径使用编译查询,应用适当的索引,并通过确保查询可转换为 SQL 来避免客户端评估。
我应该实现什么缓存策略?
对单个实例内小型频繁访问的数据使用内存缓存。对跨多个实例的分布式缓存使用 Redis。始终设置过期时间并具备缓存未命中回退逻辑。