/ Annuaire / Playground / .NET Skills
● Communauté Aaronontheweb ⚡ Instantané

.NET Skills

par Aaronontheweb · Aaronontheweb/dotnet-skills

Du .NET 8/9 idiomatique dans Claude — skills pour les tests xUnit, les perfs BenchmarkDotNet, le packaging NuGet, la correction async/await et le style C#.

Les .NET Skills d'Aaron Stannard sont un bundle éprouvé pour les développeurs .NET sérieux. Au-delà de la simple génération de code, ils couvrent les parties que le modèle se trompe habituellement : l'annulation async, l'usage de ConfigureAwait, IDisposable, les compromis struct vs class, les patterns BenchmarkDotNet, les métadonnées de packaging NuGet, et le style moderne xUnit + FluentAssertions.

Pourquoi l'utiliser

Fonctionnalités clés

Démo en direct

Aperçu en pratique

prêt

Installer

Choisissez votre 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
    }
  }
}

Ouvrez Claude Desktop → Settings → Developer → Edit Config. Redémarrez après avoir enregistré.

~/.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 utilise le même schéma mcpServers que Claude Desktop. La config projet l'emporte sur la 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
    }
  }
}

Cliquez sur l'icône MCP Servers dans la barre latérale Cline, puis "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
    }
  }
}

Même format que Claude Desktop. Redémarrez Windsurf pour appliquer.

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

Continue utilise un tableau d'objets serveur plutôt qu'une map.

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

Ajoutez dans context_servers. Zed recharge à chaud à la sauvegarde.

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

Une seule ligne. Vérifiez avec claude mcp list. Supprimez avec claude mcp remove.

Cas d'usage

Usages concrets : .NET Skills

Auditer un service pour la correction async/await

👤 Équipes .NET backend ⏱ ~45 min advanced

Quand l'utiliser : Vous avez hérité d'un service avec des deadlocks intermittents et suspectez des problèmes async.

Prérequis
  • Skill installé — git clone https://github.com/Aaronontheweb/dotnet-skills ~/.claude/skills/dotnet
Déroulement
  1. Scanner
    Audit async dotnet-skills sur src/. Signalez : ConfigureAwait(false) manquant dans les bibliothèques, .Result/.Wait, async void (non-événement), propagation de CancellationToken manquante.✓ Copié
    → Liste concrète fichier:ligne avec sévérité
  2. Corriger un cluster
    Choisissez le cluster de sévérité la plus élevée (risque de deadlock). Proposez des patches, fichier par fichier. Montrez les diffs.✓ Copié
    → Patches chirurgicaux, pas des réécritures de fichiers entiers

Résultat : Hygiène async améliorée ; une source de deadlocks intermittents éliminée.

Pièges
  • Le correctif ConfigureAwait casse le code UI thread — Le skill différencie lib vs app ; respectez cette frontière
Combiner avec : filesystem

Benchmarker un hot path avec BenchmarkDotNet

👤 Développeurs .NET curieux des performances ⏱ ~60 min advanced

Quand l'utiliser : Le profiler pointe vers une méthode ; vous avez besoin de chiffres rigoureux.

Déroulement
  1. Créer le benchmark
    Skill : crée un projet BenchmarkDotNet pour OrderCalc.Compute. Plusieurs tailles d'entrées. Memory diagnoser activé. Markdown exporter.✓ Copié
    → Projet benchmark compile ; s'exécute en Release
  2. Lancer + interpréter
    Lance le bench. Rapport mean, allocated, gen0. Quelle est la principale allocation ?✓ Copié
    → Attribution concrète à l'allocateur (probablement concaténation de chaînes ou LINQ)
  3. Patcher + re-bencher
    Remplace LINQ par une boucle manuelle. Relance. Montre avant/après.✓ Copié
    → Les allocations baissent de manière mesurable

Résultat : Amélioration de performance quantifiée, pas des impressions.

Pièges
  • Lancer en builds Debug — BenchmarkDotNet refuse Debug ; assurez-vous d'être en Release

Préparer une bibliothèque pour la release NuGet

👤 Auteurs OSS ⏱ ~30 min intermediate

Quand l'utiliser : Première release NuGet de votre lib ; vous voulez qu'elle soit soignée.

Déroulement
  1. Auditer le packaging
    dotnet-skills : audit MyLib.csproj pour la préparation NuGet. Vérifiez Description, Authors, License, RepositoryUrl, source-link, multi-targeting.✓ Copié
    → Liste concrète de champs manquants
  2. Revue de surface API
    Génère la surface API publique ; signalez tout type interne qui fuite ou tout public étrangement nommé.✓ Copié
    → Dump de surface API avec problèmes soulevés

Résultat : Package propre prêt à pousser.

Pièges
  • Incompatibilité de licence (fichier LICENSE vs <PackageLicenseExpression>) — Le skill le détecte ; alignez-les

Combinaisons

Associez-le à d'autres MCPs pour un effet X10

dotnet-skills-aaronontheweb + filesystem

Appliquer les patches dans le projet

Applique les patches async_audit dans src/. Un commit par fichier.✓ Copié
dotnet-skills-aaronontheweb + github

PR des résultats de bench

Ouvre une PR avec le patch perf + benchmark avant/après dans la description.✓ Copié

Outils

Ce que ce MCP expose

OutilEntréesQuand appelerCoût
async_audit path Bilan de santé de la base de code 0
scaffold_benchmark target_method Travail de performance 0
interpret_bench bench_md Après l'exécution du benchmark 0
nuget_audit csproj Pré-release 0
api_surface assembly_or_proj Revue API 0
test_conventions_check test_path Revue de PR 0

Coût et limites

Coût d'exécution

Quota d'API
N/A
Tokens par appel
Les audits scannent le code = utilisation plus importante de tokens ; 5k–30k par passe
Monétaire
Gratuit
Astuce
Auditez un projet à la fois ; ne déployez pas en éventail sur un monorepo entier

Sécurité

Permissions, secrets, portée

Portées minimales : filesystem-read filesystem-write
Stockage des identifiants : Aucun
Sortie de données : Aucun

Dépannage

Erreurs courantes et correctifs

Audit trop bruyant

Spécifiez le seuil de sévérité ; le skill retourne tout par défaut

Benchmark ne s'exécute pas

Doit être en build Release ; BenchmarkDotNet refuse Debug

Vérifier : dotnet build -c Release
La surface API inclut des types internes

Assurez-vous que InternalsVisibleTo est configuré correctement ; le skill rapporte tel que configuré

Alternatives

.NET Skills vs autres

AlternativeQuand l'utiliserCompromis
Analyzers Roslyn dans le dépôtVous voulez une application au moment de la CIPlus de configuration ; moins interactif
ReSharper / RiderVous voulez des corrections au moment de l'IDEPayant ; non piloté par LLM
Skills Aspire / .NET Cloud NativeFocus cloud-nativePortée différente

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills