← Back to list
⚡

dotnet-core-expert Checked

Use when building .NET 8 applications with minimal APIs, clean architecture, or cloud-native micr…
⚡ Productivity skills By Jeffallan Version v1.0.0 Added 2026-09-07 Updated 2026-09-07 Source ↗
8.9Overall rating
2Views
5Downloads
11.3kStars

Installation

🤖 Install via AI

Copy the prompt below and send it to your AI assistant (e.g. Claude Code) — it will follow the instructions and install automatically.

Install the "dotnet-core-expert" skill by following the instructions at https://skill123.me/install/dotnet-core-expert.
⌨️ Command line install

Run in your terminal — downloads and installs to ~/.claude/skills/.

curl -fsSL https://skill123.me/install/dotnet-core-expert.sh | bash
📦 Download ZIP

Download the zip and extract it into your skills directory (e.g. ~/.claude/skills/), then restart your session.

⬇ Download v1.0.0 · 19 KB
📊 Static rating
8.9/10
Trigger
7.5
Structure
9.3
Workflow
8.8
Content
9.0
Engineering
10.0
Security
9.5

Six-dimension rubric with reviewer rationale.

View scorecard ↓
🛡 Dynamic test
—

Not live-tested yet — this skill is rated on static analysis only.

About this skill

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.

.NET Core Expert

Documentation

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.

.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:

| Topic | Reference | Load When |

|-------|-----------|-----------|

| Minimal APIs | references/minimal-apis.md | Creating endpoints, routing, middleware |

| Clean Architecture | references/clean-architecture.md | CQRS, MediatR, layers, DI patterns |

| Entity Framework | references/entity-framework.md | DbContext, migrations, relationships |

| Authentication | references/authentication.md | JWT, Identity, authorization policies |

| Cloud-Native | references/cloud-native.md | Docker, 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();
View full documentation

### 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

Score breakdown

Trigger
7.5
What/When present with trigger list but fewer keywords and no When-Not
Structure
9.3
140-line SKILL.md, five classified references with load-when table
Workflow
8.8
Workflow embeds dotnet build/test fail-fix-retry loops plus curl endpoint verification
Content
9.0
Concise imperative text, correct nullable C# 12 and EF Core examples
Engineering
10.0
Valid frontmatter, all reference paths exist
Security
9.5
No exfiltration or injection; docker-compose example contains placeholder dev passwords
Solid .NET 8 specialist with build-test-retry verification loops and modern C# 12 examples across five load-when references; description is thinner than siblings and docker-compose sample uses placeholder passwords inline.