/ Verzeichnis / Playground / .NET Skills
● Community Aaronontheweb ⚡ Sofort

.NET Skills

von Aaronontheweb · Aaronontheweb/dotnet-skills

Idiomatisches .NET 8/9 in Claude — Skills für xUnit-Testing, BenchmarkDotNet-Performance, NuGet-Packaging, async/await-Korrektheit und C#-Stil.

Aaron Stannards .NET-Skills sind ein bewährtes Bundle für ernsthafte .NET-Entwickler. Über einfache Code-Generierung hinaus decken sie die Bereiche ab, bei denen das Modell gewohnheitsmäßig falsch liegt: async-Cancellation, ConfigureAwait-Nutzung, IDisposable, struct-vs.-class-Tradeoffs, BenchmarkDotNet-Muster, NuGet-Packaging-Metadaten und moderner xUnit + FluentAssertions-Stil.

Warum nutzen

Hauptfunktionen

Live-Demo

In der Praxis

bereit

Installieren

Wählen Sie Ihren Client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "dotnet-skills-aaronontheweb": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/Aaronontheweb/dotnet-skills",
        "~/.claude/skills/dotnet"
      ],
      "_inferred": true
    }
  }
}

Öffne Claude Desktop → Settings → Developer → Edit Config. Nach dem Speichern neu starten.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "dotnet-skills-aaronontheweb": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/Aaronontheweb/dotnet-skills",
        "~/.claude/skills/dotnet"
      ],
      "_inferred": true
    }
  }
}

Cursor nutzt das gleiche mcpServers-Schema wie Claude Desktop. Projektkonfiguration schlägt die globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "dotnet-skills-aaronontheweb": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/Aaronontheweb/dotnet-skills",
        "~/.claude/skills/dotnet"
      ],
      "_inferred": true
    }
  }
}

Klicken Sie auf das MCP-Servers-Symbol in der Cline-Seitenleiste, dann "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "dotnet-skills-aaronontheweb": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/Aaronontheweb/dotnet-skills",
        "~/.claude/skills/dotnet"
      ],
      "_inferred": true
    }
  }
}

Gleiche Struktur wie Claude Desktop. Windsurf neu starten zum Übernehmen.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "dotnet-skills-aaronontheweb",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/Aaronontheweb/dotnet-skills",
        "~/.claude/skills/dotnet"
      ]
    }
  ]
}

Continue nutzt ein Array von Serverobjekten statt einer Map.

~/.config/zed/settings.json
{
  "context_servers": {
    "dotnet-skills-aaronontheweb": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/Aaronontheweb/dotnet-skills",
          "~/.claude/skills/dotnet"
        ]
      }
    }
  }
}

In context_servers hinzufügen. Zed lädt beim Speichern neu.

claude mcp add dotnet-skills-aaronontheweb -- git clone https://github.com/Aaronontheweb/dotnet-skills ~/.claude/skills/dotnet

Einzeiler. Prüfen mit claude mcp list. Entfernen mit claude mcp remove.

Anwendungsfälle

Praxisnahe Nutzung: .NET Skills

Einen Service auf async/await-Korrektheit prüfen

👤 Backend-.NET-Teams ⏱ ~45 min advanced

Wann einsetzen: Ein übernommener Service deadlockt sporadisch und async-Probleme werden vermutet.

Voraussetzungen
  • Skill installiert — git clone https://github.com/Aaronontheweb/dotnet-skills ~/.claude/skills/dotnet
Ablauf
  1. Scannen
    dotnet-skills async audit auf src/. Markieren: fehlendes ConfigureAwait(false) in Bibliotheken, .Result/.Wait, async void (Nicht-Event), fehlende CancellationToken-Weitergabe.✓ Kopiert
    → Konkrete file:line-Liste mit Schweregrad
  2. Einen Cluster korrigieren
    Den Cluster mit höchstem Schweregrad (Deadlock-Risiko) auswählen. Patches dateiweise vorschlagen. Diffs zeigen.✓ Kopiert
    → Chirurgische Patches, keine ganzen Datei-Rewrites

Ergebnis: Async-Hygiene verbessert; eine Quelle sporadischer Deadlocks beseitigt.

Fallstricke
  • ConfigureAwait-Fix bricht UI-Thread-Code — Skill unterscheidet Bibliotheks- vs. App-Code; diese Grenze respektieren
Kombinieren mit: filesystem

Einen Hot-Path mit BenchmarkDotNet benchmarken

👤 Performance-bewusste .NET-Entwickler ⏱ ~60 min advanced

Wann einsetzen: Profiler zeigt auf eine Methode; rigorose Zahlen werden benötigt.

Ablauf
  1. Benchmark scaffolden
    Skill: BenchmarkDotNet-Projekt für OrderCalc.Compute scaffolden. Mehrere Eingabegrößen. MemoryDiagnoser an. Markdown-Exporter.✓ Kopiert
    → Benchmark-Projekt kompiliert; läuft unter Release
  2. Ausführen + interpretieren
    Benchmark ausführen. Mean, allocated, gen0 melden. Was ist die führende Allokation?✓ Kopiert
    → Konkrete Zuordnung zum Allokator (wahrscheinlich String-Concat oder LINQ)
  3. Patchen + neu benchmarken
    LINQ durch eine handgeschriebene Schleife ersetzen. Neu ausführen. Vorher/Nachher zeigen.✓ Kopiert
    → Allokationen messbar gesunken

Ergebnis: Quantifizierte Perf-Verbesserung, keine Bauchgefühle.

Fallstricke
  • Debug-Builds ausführen — BenchmarkDotNet lehnt Debug ab; Release sicherstellen

Eine Bibliothek für NuGet-Release vorbereiten

👤 OSS-Autoren ⏱ ~30 min intermediate

Wann einsetzen: Erstes NuGet-Release einer Bibliothek; es soll poliert sein.

Ablauf
  1. Packaging prüfen
    dotnet-skills: MyLib.csproj auf NuGet-Bereitschaft prüfen. Description, Authors, License, RepositoryUrl, Source-Link, Multi-Targeting prüfen.✓ Kopiert
    → Konkrete Liste fehlender Felder
  2. API-Oberfläche reviewen
    Öffentliche API-Oberfläche generieren; durchgesickerte interne Typen oder seltsam benannte öffentliche Mitglieder markieren.✓ Kopiert
    → API-Oberflächen-Dump mit hervorgehobenen Problemen

Ergebnis: Sauberes Package bereit zum Pushen.

Fallstricke
  • Lizenz-Mismatch (LICENSE-Datei vs. <PackageLicenseExpression>) — Skill erkennt das; aufeinander abstimmen

Kombinationen

Mit anderen MCPs für 10-fache Wirkung

dotnet-skills-aaronontheweb + filesystem

Patches im ganzen Projekt anwenden

async_audit-Patches auf src/ anwenden. Ein Commit pro Datei.✓ Kopiert
dotnet-skills-aaronontheweb + github

Bench-Ergebnisse als PR hochladen

PR mit Perf-Patch + Vorher/Nachher-Benchmark in der Beschreibung öffnen.✓ Kopiert

Werkzeuge

Was dieses MCP bereitstellt

WerkzeugEingabenWann aufrufenKosten
async_audit path Codebase-Gesundheitsprüfung 0
scaffold_benchmark target_method Performance-Arbeit 0
interpret_bench bench_md Nach dem Ausführen des Benchmarks 0
nuget_audit csproj Vor dem Release 0
api_surface assembly_or_proj API-Review 0
test_conventions_check test_path PR-Review 0

Kosten & Limits

Was der Betrieb kostet

API-Kontingent
N/A
Tokens pro Aufruf
Audits scannen Code = größere Token-Nutzung; 5k–30k pro Durchgang
Kosten in €
Kostenlos
Tipp
Ein Projekt auf einmal prüfen; nicht im ganzen Monorepo auf einmal auffächern

Sicherheit

Rechte, Secrets, Reichweite

Minimale Scopes: filesystem-read filesystem-write
Credential-Speicherung: Keine
Datenabfluss: Keine

Fehlerbehebung

Häufige Fehler und Lösungen

Audit zu laut

Schweregrad-Schwellenwert angeben; Skill meldet standardmäßig alle

Benchmark läuft nicht

Muss Release-Build sein; BenchmarkDotNet lehnt Debug ab

Prüfen: dotnet build -c Release
API-Oberfläche enthält interne Typen

InternalsVisibleTo korrekt setzen; Skill meldet so wie konfiguriert

Alternativen

.NET Skills vs. andere

AlternativeWann stattdessenKompromiss
Roslyn-Analyzer im RepositoryCI-Zeit-Erzwingung gewünschtMehr Setup; weniger interaktiv
ReSharper / RiderIDE-Zeit-Korrekturen gewünschtKostenpflichtig; nicht LLM-gesteuert
Aspire / .NET Cloud Native SkillsCloud-Native-FokusAnderer Umfang

Mehr

Ressourcen

📖 Offizielle README auf GitHub lesen

🐙 Offene Issues ansehen

🔍 Alle 400+ MCP-Server und Skills durchsuchen