Wardn Hub
MCP ServersSkillsCategoriesAPI docsSubmit server
Submit server
Wardn HubTrusted MCP server directory.

Registry

  • MCP Servers
  • Skills
  • Categories

Resources

  • API docs
  • Score method

Contribute

  • Submit server
  • Advertise
© 2026 Wardn Hub
Wardn Hub
MCP ServersSkillsCategoriesAPI docsSubmit server
Submit server
skills/Jeffallan/claude-skills/dotnet-core-expert

dotnet-core-expert

1
Jeffallan/claude-skills·Coding Agents·Audit failed·Snapshot d6d05ebbaf30
Installs
0

Summary

Use when building .NET 8 applications with minimal APIs, clean architecture, or cloud-native microservices. Invoke for Entity Framework Core, CQRS with MediatR, JWT authentication, AOT compilation.

SKILL.md

.NET Core Expert

Core Workflow

  1. Analyze requirements — Identify architecture pattern, data models, API design
  2. Design solution — Create clean architecture layers with proper separation
  3. Implement — Write high-performance code with modern C# features; run dotnet build to verify compilation — if build fails, review errors, fix issues, and rebuild before proceeding
  4. Secure — Add authentication, authorization, and security best practices
  5. Test — Write comprehensive tests with xUnit and integration testing; run dotnet test to confirm all tests pass — if tests fail, diagnose failures, fix the implementation, and re-run before continuing; verify endpoints with curl or a REST client

Reference Guide

Load detailed guidance based on context:

TopicReferenceLoad When
Minimal APIsreferences/minimal-apis.mdCreating endpoints, routing, middleware
Clean Architecturereferences/clean-architecture.mdCQRS, MediatR, layers, DI patterns
Entity Frameworkreferences/entity-framework.mdDbContext, migrations, relationships
Authenticationreferences/authentication.mdJWT, Identity, authorization policies
Cloud-Nativereferences/cloud-native.mdDocker, health checks, configuration

Constraints

MUST DO

  • Use .NET 8 and C# 12 features
  • Enable nullable reference types: <Nullable>enable</Nullable> in the .csproj
  • Use async/await for all I/O operations — e.g., await dbContext.Users.ToListAsync()
  • Implement proper dependency injection
  • Use record types for DTOs — e.g., public record UserDto(int Id, string Name);
  • Follow clean architecture principles
  • Write integration tests with WebApplicationFactory<Program>
  • Configure OpenAPI/Swagger documentation
  • MUST NOT DO

    • Use synchronous I/O operations
    • Expose entities directly in API responses
    • Skip input validation
    • Use legacy .NET Framework patterns
    • Mix concerns across architectural layers
    • Use deprecated EF Core patterns

    Code Examples

    Minimal API Endpoint

    // Program.cs
    var builder = WebApplication.CreateBuilder(args);
    builder.Services.AddEndpointsApiExplorer();
    builder.Services.AddSwaggerGen();
    builder.Services.AddMediatR(cfg => cfg.RegisterServicesFromAssembly(typeof(Program).Assembly));
    
    var app = builder.Build();
    app.UseSwagger();
    app.UseSwaggerUI();
    
    app.MapGet("/users/{id}", async (int id, ISender sender, CancellationToken ct) =>
    {
        var result = await sender.Send(new GetUserQuery(id), ct);
        return result is null ? Results.NotFound() : Results.Ok(result);
    })
    .WithName("GetUser")
    .Produces<UserDto>()
    .ProducesProblem(404);
    
    app.Run();
    

    MediatR Query Handler

    // Application/Users/GetUserQuery.cs
    public record GetUserQuery(int Id) : IRequest<UserDto?>;
    
    public sealed class GetUserQueryHandler : IRequestHandler<GetUserQuery, UserDto?>
    {
        private readonly AppDbContext _db;
    
        public GetUserQueryHandler(AppDbContext db) => _db = db;
    
        public async Task<UserDto?> Handle(GetUserQuery request, CancellationToken ct) =>
            await _db.Users
                .AsNoTracking()
                .Where(u => u.Id == request.Id)
                .Select(u => new UserDto(u.Id, u.Name))
                .FirstOrDefaultAsync(ct);
    }
    

    EF Core DbContext with Async Query

    // Infrastructure/AppDbContext.cs
    public sealed class AppDbContext(DbContextOptions<AppDbContext> options) : DbContext(options)
    {
        public DbSet<User> Users => Set<User>();
    
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.ApplyConfigurationsFromAssembly(typeof(AppDbContext).Assembly);
        }
    }
    
    // Usage in a service
    public async Task<IReadOnlyList<UserDto>> GetAllAsync(CancellationToken ct) =>
        await _db.Users
            .AsNoTracking()
            .Select(u => new UserDto(u.Id, u.Name))
            .ToListAsync(ct);
    

    DTO with Record Type

    public record UserDto(int Id, string Name);
    public record CreateUserRequest(string Name, string Email);
    

    Output Templates

    When implementing .NET features, provide:

    1. Project structure (solution/project files)
    2. Domain models and DTOs
    3. API endpoints or service implementations
    4. Database context and migrations if applicable
    5. Brief explanation of architectural decisions

    Documentation

    Related skills

    kubernetes-specialistdatabase-optimizerplaywright-expertcloud-architectdevops-engineer