dotnet-design-pattern-review
Comprehensive C#/.NET design pattern analysis with actionable improvement recommendations.
csharp-developer
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.
Full skill instructions
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.
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.
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 |
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());
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);
}
IOptions<T>.Result, .Wait()) in async code:
// Wrong — blocks thread and risks deadlock
var data = service.GetDataAsync().Result;
// Correct
var data = await service.GetDataAsync(ct);
When implementing .NET features, provide:
// 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();
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
Comprehensive C#/.NET design pattern analysis with actionable improvement recommendations.
Ready-to-use prompts for comprehensive .NET framework upgrade analysis and execution
Best practices guide for C# asynchronous programming patterns and pitfalls.
Comprehensive XUnit testing guide covering standard facts, data-driven theories, and best practices.
XML documentation standards and patterns for C# public APIs and members.
Add Azure App Insights telemetry to ASP.NET Core or Node.js webapps hosted in Azure.
Programmatic agent runtime for embedding Copilot's agentic workflows in applications across Python, TypeScript, Go, and .NET.
ASP.NET Minimal API endpoints with automatic OpenAPI/Swagger documentation and strong typing.
Comprehensive guide for building Blazor apps with Microsoft Fluent UI components.
NUnit best practices for standard and data-driven unit testing in .NET projects.
Generate Dockerfile and .dockerignore files customized for ASP.NET Core containerization.
Modern unit testing with MSTest 3.x/4.x using current APIs and best practices.
Opus.ai: Revolutionize Your Web Experience
Build a no-code AI app in minutes.
An IDE for code migration from legacy to modern frameworks through coding agents.
Automate CGI animation in live-action scenes
Branded artistic QR-code concepts
Launch a website in seconds with AI.
Streamline Your Coding Experience with AI Code Helper
Convert any screenshot or design to clean code.