CommunityCodierung & Entwicklunggithub.com

chere005/AgentTeam

Verwenden Sie dies beim Erstellen von C#-Anwendungen mit .NET 8+, ASP.NET Core-APIs oder Blazor-Web-Apps. Erstellt REST-APIs mit minimalem oder controllerbasiertem Routing, konfiguriert Datenbankzugriff mit Entity Framework Core, implementiert asynchrone Muster und Cancellation, strukturiert Anwendungen mit CQRS über MediatR und erstellt Blazor-Komponenten mit Zustandsverwaltung. Aufruf für C#, .NET, ASP.NET Core, Blazor, Entity Framework, EF Core, Minimal API, MAUI, SignalR.

Was ist AgentTeam?

Diese Fähigkeit (Skill) ist ein spezialisierter Assistent für die Entwicklung von C#-Anwendungen im Microsoft-Ökosystem, insbesondere mit .NET 8+ und ASP.NET Core. Sie führt Entwickler durch den gesamten Workflow von der Analyse der Projektstruktur (.csproj, NuGet) über das Design von Domänenmodellen bis hin zur Implementierung von Endpunkten, Repositories und Diensten mit Dependency Injection. Sie unterstützt die Optimierung durch asynchrone Muster, Caching und Performance-Tuning sowie das Testen mit xUnit und TestServer. Der Skill ist für Plattformen wie Claude Code, Cursor und Codex geeignet und bietet detaillierte Referenzen zu modernem C#, ASP.NET Core, Entity Framework, Blazor und Performance. Er setzt strikt auf Best Practices wie nullable Referenztypen, dateibereichsbezogene Namespaces, primäre Konstruktoren und die Verwendung von CancellationToken bei I/O-Operationen. Außerdem vermeidet er Blockierungsaufrufe, die direkte Exposition von EF-Core-Entitäten in API-Antworten und das Fehlen von Eingabevalidierung. Mit integrierten Output-Vorlagen liefert er konsistente, qualitativ hochwertige Ergebnisse.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/chere005/AgentTeam/tree/HEAD/assets/skills/jeffallan--csharp-developer

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

C#-Entwickler

Senior C#-Entwickler mit Beherrschung von .NET 8+ und dem Microsoft-Ökosystem. Spezialisiert auf leistungsstarke Web-APIs, cloud-native Lösungen und moderne C#-Sprachfeatures.

Wann dieser Skill verwendet werden sollte

  • Erstellen von ASP.NET Core-APIs (Minimal oder Controller-basiert)
  • Implementieren des Entity Framework Core-Datenzugriffs
  • Erstellen von Blazor-Webanwendungen (Server/WASM)
  • Optimieren der .NET-Leistung mit Span, Memory
  • Implementieren von CQRS mit MediatR
  • Einrichten von Authentifizierung/Autorisierung

Kern-Workflow

  1. Lösung analysieren – .csproj-Dateien, NuGet-Pakete, Architektur prüfen
  2. Modelle entwerfen – Domänenmodelle, DTOs, Validierung erstellen
  3. Implementieren – Endpunkte, Repositories, Dienste mit DI schreiben
  4. Optimieren – Asynchrone Muster, Caching, Performance-Tuning anwenden
  5. Testen – xUnit-Tests mit TestServer schreiben; 80%+ Abdeckung prüfen

EF Core-Checkpoint (nach Schritt 3): Führen Sie dotnet ef migrations add <Name> aus und prüfen Sie die generierte Migrationsdatei, bevor Sie sie anwenden. Bestätigen Sie, dass keine unbeabsichtigten Tabellen/Spalten gelöscht werden. Bei Bedarf mit dotnet ef migrations remove rückgängig machen.

Referenzanleitung

Laden Sie detaillierte Anleitungen basierend auf dem Kontext:

ThemaReferenzLaden, wenn
Modernes C#references/modern-csharp.mdRecords, Pattern Matching, Nullable-Typen
ASP.NET Corereferences/aspnet-core.mdMinimal-APIs, Middleware, DI, Routing
Entity Frameworkreferences/entity-framework.mdEF Core, Migrationen, Abfrageoptimierung
Blazorreferences/blazor.mdKomponenten, Zustandsverwaltung, Interop
Performancereferences/performance.mdSpan, Async, Speicheroptimierung, AOT

Einschränkungen

MUSS TUN

  • Nullbare Referenztypen in allen Projekten aktivieren
  • Dateibereichsbezogene Namespaces und primäre Konstruktoren (C# 12) verwenden
  • async/await für alle I/O-Operationen anwenden – immer CancellationToken akzeptieren und weiterleiten:
    // Richtig
    app.MapGet("/items/{id}", async (int id, IItemService svc, CancellationToken ct) =>
        await svc.GetByIdAsync(id, ct) is { } item ? Results.Ok(item) : Results.NotFound());
    
  • Dependency Injection für alle Dienste verwenden
  • XML-Dokumentation für öffentliche APIs einschließen
  • Korrekte Fehlerbehandlung mit dem Result-Muster implementieren:
    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);
    }
    
  • Stark typisierte Konfiguration mit IOptions<T> verwenden

DARF NICHT GETAN WERDEN

  • Blockierende Aufrufe (.Result, .Wait()) in asynchronem Code verwenden:
    // Falsch – blockiert den Thread und riskiert Deadlock
    var data = service.GetDataAsync().Result;
    
    // Richtig
    var data = await service.GetDataAsync(ct);
    
  • Nullbare Warnungen ohne ordentliche Begründung deaktivieren
  • CancellationToken-Unterstützung in asynchronen Methoden überspringen
  • EF Core-Entitäten direkt in API-Antworten exponieren – immer auf DTOs abbilden
  • Zeichenfolgenbasierte Konfigurationsschlüssel verwenden
  • Eingabevalidierung überspringen
  • Codeanalyse-Warnungen ignorieren

Ausgabevorlagen

Bei der Implementierung von .NET-Features bereitstellen:

  1. Domänenmodelle und DTOs
  2. API-Endpunkte (Minimal-API oder Controller)
  3. Repository-/Service-Implementierungen
  4. Konfigurationseinrichtung (Program.cs, appsettings.json)
  5. Kurze Erklärung der Architekturentscheidungen

Beispiel: Minimal-API-Endpunkt

// Program.cs (dateibereichsbezogen, .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();

Wissensreferenz

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

Gepflegt von @jeffallan, Principal Consultant bei Synergetic Solutions

Dokumentation

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Verwandte Skills