csharp-developer
jeffallan/claude-skills
Senior C# developer for .NET 8+ APIs, Blazor apps, and Entity Framework solutions.
What is csharp-developer?
Builds production-grade ASP.NET Core applications with modern C# patterns, async/await best practices, and cloud-native architecture. Use for REST APIs, Blazor web apps, database access with EF Core, CQRS patterns via MediatR, and performance optimization.
- Designs and implements ASP.NET Core REST APIs using Minimal or Controller-based routing
- Configures Entity Framework Core data access with migrations and query optimization
- Scaffolds Blazor components (Server/WASM) with state management and interop
- Structures applications with CQRS patterns using MediatR
- Implements async/await with proper CancellationToken propagation throughout
- Applies performance optimization with Span<T>, Memory<T>, and AOT compilation
How to install csharp-developer
npx skills add https://github.com/jeffallan/claude-skills --skill csharp-developer- Install .NET 8 SDK or later
- Familiarity with C# language fundamentals
- Basic understanding of async/await patterns
How to use csharp-developer
- 1.Review your .csproj files and NuGet package configuration to understand the project structure
- 2.Design domain models, DTOs, and validation rules following C# 12 conventions (records, nullable types)
- 3.Implement API endpoints with proper dependency injection and CancellationToken support
- 4.Configure Entity Framework Core with migrations—run `dotnet ef migrations add <Name>` and review before applying
- 5.Write xUnit tests with TestServer to verify 80%+ code coverage
- 6.Apply performance optimizations using async patterns, caching, and memory-efficient types
Use cases
- Building a REST API with minimal endpoints, EF Core repositories, and dependency injection
- Creating a Blazor Server app with component state management and real-time SignalR updates
- Implementing CQRS architecture with MediatR handlers for complex domain logic
- Optimizing .NET performance bottlenecks using memory profiling and async patterns
- Setting up authentication/authorization with ASP.NET Core identity and JWT
- C# developers building .NET 8+ applications
- Backend engineers creating ASP.NET Core APIs
- Full-stack developers working with Blazor web apps
- Teams adopting CQRS and event-driven architectures
- Performance-focused teams optimizing cloud-native solutions
csharp-developer FAQ
Use Minimal APIs for simple, focused endpoints and microservices; use Controllers for larger applications with complex routing, filters, and organizational needs.
Always use `await` instead of `.Result` or `.Wait()`. Accept and forward `CancellationToken` to all async methods to prevent deadlocks and enable graceful cancellation.
No. Always map EF Core entities to DTOs before returning in API responses to decouple your data model from your API contract.
Implement a strongly-typed Result<T> pattern that returns both success values and error messages, avoiding exceptions for control flow.
Use strongly-typed configuration with `IOptions<T>` and `appsettings.json`, avoiding magic string keys. Use Azure Key Vault or environment variables for secrets.
Full instructions (SKILL.md)
Source of truth, from jeffallan/claude-skills.
name: csharp-developer description: "Use when building C# applications with .NET 8+, ASP.NET Core APIs, or Blazor web apps. Builds REST APIs using minimal or controller-based routing, configures database access with Entity Framework Core, implements async patterns and cancellation, structures applications with CQRS via MediatR, and scaffolds Blazor components with state management. Invoke for C#, .NET, ASP.NET Core, Blazor, Entity Framework, EF Core, Minimal API, MAUI, SignalR." license: MIT metadata: author: https://github.com/Jeffallan version: "1.1.0" domain: language triggers: C#, .NET, ASP.NET Core, Blazor, Entity Framework, EF Core, Minimal API, MAUI, SignalR role: specialist scope: implementation output-format: code related-skills: api-designer, database-optimizer, devops-engineer
C# Developer
Senior C# developer with mastery of .NET 8+ and Microsoft ecosystem. Specializes in high-performance web APIs, cloud-native solutions, and modern C# language features.
When to Use This Skill
- Building ASP.NET Core APIs (Minimal or Controller-based)
- Implementing Entity Framework Core data access
- Creating Blazor web applications (Server/WASM)
- Optimizing .NET performance with Span<T>, Memory<T>
- Implementing CQRS with MediatR
- Setting up authentication/authorization
Core Workflow
- Analyze solution — Review .csproj files, NuGet packages, architecture
- Design models — Create domain models, DTOs, validation
- Implement — Write endpoints, repositories, services with DI
- Optimize — Apply async patterns, caching, performance tuning
- Test — Write xUnit tests with TestServer; verify 80%+ coverage
EF Core checkpoint (after step 3): Run
dotnet ef migrations add <Name>and review the generated migration file before applying. Confirm no unintended table/column drops. Roll back withdotnet ef migrations removeif needed.
Reference Guide
Load detailed guidance based on context:
| Topic | Reference | Load When |
|---|---|---|
| Modern C# | references/modern-csharp.md | Records, pattern matching, nullable types |
| ASP.NET Core | references/aspnet-core.md | Minimal APIs, middleware, DI, routing |
| Entity Framework | references/entity-framework.md | EF Core, migrations, query optimization |
| Blazor | references/blazor.md | Components, state management, interop |
| Performance | references/performance.md | Span<T>, async, memory optimization, AOT |
Constraints
MUST DO
- Enable nullable reference types in all projects
- Use file-scoped namespaces and primary constructors (C# 12)
- Apply async/await for all I/O operations — always accept and forward
CancellationToken:// Correct app.MapGet("/items/{id}", async (int id, IItemService svc, CancellationToken ct) => await svc.GetByIdAsync(id, ct) is { } item ? Results.Ok(item) : Results.NotFound()); - Use dependency injection for all services
- Include XML documentation for public APIs
- Implement proper error handling with Result pattern:
public readonly record struct Result<T>(T? Value, string? Error, bool IsSuccess) { public static Result<T> Ok(T value) => new(value, null, true); public static Result<T> Fail(string error) => new(default, error, false); } - Use strongly-typed configuration with
IOptions<T>
MUST NOT DO
- Use blocking calls (
.Result,.Wait()) in async code:// Wrong — blocks thread and risks deadlock var data = service.GetDataAsync().Result; // Correct var data = await service.GetDataAsync(ct); - Disable nullable warnings without proper justification
- Skip cancellation token support in async methods
- Expose EF Core entities directly in API responses — always map to DTOs
- Use string-based configuration keys
- Skip input validation
- Ignore code analysis warnings
Output Templates
When implementing .NET features, provide:
- Domain models and DTOs
- API endpoints (Minimal API or controllers)
- Repository/service implementations
- Configuration setup (Program.cs, appsettings.json)
- Brief explanation of architectural decisions
Example: Minimal API Endpoint
// Program.cs (file-scoped, .NET 8 minimal API)
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddScoped<IProductService, ProductService>();
var app = builder.Build();
app.MapGet("/products/{id:int}", async (
int id,
IProductService service,
CancellationToken ct) =>
{
var result = await service.GetByIdAsync(id, ct);
return result.IsSuccess ? Results.Ok(result.Value) : Results.NotFound(result.Error);
})
.WithName("GetProduct")
.Produces<ProductDto>()
.ProducesProblem(404);
app.Run();
Knowledge Reference
C# 12, .NET 8, ASP.NET Core, Minimal APIs, Blazor (Server/WASM), Entity Framework Core, MediatR, xUnit, Moq, Benchmark.NET, SignalR, gRPC, Azure SDK, Polly, FluentValidation, Serilog
Related skills
More from jeffallan/claude-skills and the wider catalog.

database-optimizer
Optimize PostgreSQL and MySQL queries, indexes, and configuration for measurable performance gains.

debugging-wizard
Systematic debugging methodology to isolate root causes and resolve bugs efficiently.

devops-engineer
Creates Dockerfiles, CI/CD pipelines, Kubernetes manifests, and infrastructure-as-code templates for deployment automation.

django-expert
Senior Django specialist for building optimized REST APIs, models, and production-grade web applications.

dotnet-core-expert
Build .NET 8 applications with clean architecture, minimal APIs, and cloud-native patterns.

embedded-systems
Firmware development for microcontrollers, RTOS, and real-time systems with power optimization.