New to Claude Skills? Learn how to install them →

jeffallan on GitHub

C# Developer

Free

Streamline your C# application development with best practices.

Get this skill

Free · Opens the source repo

What C# Developer does

The C# Developer skill is designed for developers working with .NET 8 and the Microsoft ecosystem. It offers guidance on building high-performance web APIs, cloud-native applications, and modern C# features. This skill is particularly useful for those developing applications using ASP.NET Core, Blazor, and Entity Framework Core. By following the structured workflow provided, developers can ensure that their applications are efficient, maintainable, and adhere to best practices.

The core workflow includes analyzing the solution architecture, designing domain models and data transfer objects (DTOs), implementing API endpoints, optimizing performance, and testing with xUnit. Each step is accompanied by specific instructions and code examples to facilitate the development process. For instance, the skill emphasizes the importance of using asynchronous programming patterns and dependency injection, which are critical for creating responsive applications.

Additionally, the skill includes a reference guide that provides detailed information on various topics such as modern C# features, ASP.NET Core, Entity Framework, Blazor, and performance optimization. This allows developers to load relevant information based on their current context, ensuring that they have access to the best practices and patterns for their specific needs. The skill also enforces a set of constraints to promote code quality, such as enabling nullable reference types and using the Result pattern for error handling.

Overall, the C# Developer skill is an essential tool for developers looking to enhance their C# application development skills while adhering to modern standards and practices.

When to use it

Use this skill when you need to develop ASP.NET Core APIs, Blazor applications, or work with Entity Framework Core in a .NET 8 environment.

When not to use it

This skill may not be suitable for projects that do not utilize the .NET ecosystem or for developers looking for non-C# related guidance.

What you can build with it

Building a REST API

Use this skill to create a robust REST API with ASP.NET Core, following best practices for routing and data access.

Creating a Blazor App

Leverage this skill to scaffold Blazor components and manage state effectively in your web applications.

Implementing EF Core Data Access

Utilize the skill to set up Entity Framework Core for database interactions, ensuring proper migrations and query optimizations.

How to install C# Developer

View source

1. Install with the skills CLI

npx skills add jeffallan/claude-skills/csharp-developer --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by jeffallan

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

  1. Analyze solution — Review .csproj files, NuGet packages, architecture
  2. Design models — Create domain models, DTOs, validation
  3. Implement — Write endpoints, repositories, services with DI
  4. Optimize — Apply async patterns, caching, performance tuning
  5. 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 with dotnet ef migrations remove if needed.

Reference Guide

Load detailed guidance based on context:

TopicReferenceLoad When
Modern C#references/modern-csharp.mdRecords, pattern matching, nullable types
ASP.NET Corereferences/aspnet-core.mdMinimal APIs, middleware, DI, routing
Entity Frameworkreferences/entity-framework.mdEF Core, migrations, query optimization
Blazorreferences/blazor.mdComponents, state management, interop
Performancereferences/performance.mdSpan<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:

  1. Domain models and DTOs
  2. API endpoints (Minimal API or controllers)
  3. Repository/service implementations
  4. Configuration setup (Program.cs, appsettings.json)
  5. 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

Documentation

Frequently asked questions about C# Developer

Similar skills