CtrlK
BlogDocsLog inGet started
Tessl Logo

dotnet-backend-patterns

Master C#/.NET backend development patterns for building robust APIs, MCP servers, and enterprise applications. Covers async/await, dependency injection, Entity Framework Core, Dapper, configuration, caching, and testing with xUnit. Use when developing .NET backends, reviewing C# code, or designing API architectures.

79

1.32x
Quality

67%

Does it follow best practices?

Impact

85%

1.32x

Average score across 6 eval scenarios

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./plugins/dotnet-contribution/skills/dotnet-backend-patterns/SKILL.md
SKILL.md
Quality
Evals
Security

Evaluation results

87%

10%

Multi-Channel Shipment Notification Service

Async patterns and service design

Criteria
Without context
With context

Parallel dispatch

100%

100%

ConfigureAwait(false)

100%

100%

ValueTask hot path

0%

0%

No blocking calls

100%

100%

No async void

100%

100%

CancellationToken propagation

100%

100%

Result<T> return type

70%

70%

Typed configuration via IOptions

100%

100%

Record types for models

0%

100%

IServiceCollection extension

100%

100%

84%

16%

Order Management Backend with EF Core

EF Core data access patterns

Criteria
Without context
With context

AsNoTracking on reads

50%

100%

DTO/projection select

0%

0%

Include and ThenInclude

100%

100%

AsSplitQuery

0%

0%

Compiled query

100%

100%

ExecuteUpdateAsync bulk

100%

100%

DbContext pooling

100%

100%

Retry on failure

100%

100%

IEntityTypeConfiguration

66%

100%

Column constraints

100%

100%

Indexes defined

0%

100%

Global soft-delete filter

100%

100%

87%

19%

High-Performance Product Catalog Search with Caching

Dapper patterns and caching

Criteria
Without context
With context

CommandDefinition + CT

100%

100%

DynamicParameters

100%

100%

QueryMultiple pagination

100%

100%

IDbConnectionFactory

0%

100%

No SQL injection

100%

100%

Multi-mapping splitOn

0%

100%

Two-tier cache check

0%

0%

Consistent cache keys

100%

100%

Stale-while-revalidate

100%

100%

Mock dependencies + _sut

44%

55%

Theory + InlineData

100%

100%

100%

7%

Product Catalog API Integration Tests

Integration testing with WebApplicationFactory

Criteria
Without context
With context

WebApplicationFactory fixture

100%

100%

Remove and replace DbContext

90%

100%

Replace distributed cache

100%

100%

Seed via service scope

70%

100%

HttpClient from factory

100%

100%

Response deserialized to DTO

100%

100%

Status code assertion

100%

100%

404 not-found test

100%

100%

WithWebHostBuilder usage

70%

100%

No IHttpClientFactory misuse

100%

100%

83%

21%

Payment Processing Microservice Foundation

Clean architecture, keyed services, factory pattern, Result mapping

Criteria
Without context
With context

Clean Architecture layers

100%

100%

IServiceCollection extension

100%

100%

Keyed service registration

40%

100%

FromKeyedServices injection

100%

0%

Factory delegate registration

20%

100%

IOptions with SectionName const

100%

100%

IHttpClientFactory usage

100%

100%

Record types for DTOs

0%

100%

Result<T> return type

60%

100%

Result Map or MapAsync

0%

30%

Correct DI lifetimes

80%

100%

72%

54%

Warehouse Inventory Data Access Layer

Advanced Dapper patterns, EF Core transactions, cache invalidation

Criteria
Without context
With context

Table-Valued Parameter

0%

0%

Stored procedure call

0%

100%

Stored procedure output param

0%

100%

Dapper explicit transaction

0%

0%

Custom type handler

0%

100%

Unbuffered streaming query

0%

100%

EFCore.BulkExtensions insert

0%

100%

EF Core explicit transaction

0%

0%

Row versioning for concurrency

50%

100%

Cache invalidation both tiers

100%

100%

Consistent cache key format

100%

100%

Dapper CommandDefinition + CT

0%

100%

Repository
wshobson/agents
Evaluated
Agent
Claude Code
Model
Claude Sonnet 4.6

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.