/ Directorio / Playground / .NET Skills
● Comunidad Aaronontheweb ⚡ Instantáneo

.NET Skills

por Aaronontheweb · Aaronontheweb/dotnet-skills

.NET 8/9 idiomático en Claude — skills para testing con xUnit, rendimiento con BenchmarkDotNet, empaquetado NuGet, corrección de async/await y estilo C#.

Los .NET Skills de Aaron Stannard son un bundle probado en batalla para desarrolladores .NET serios. Más allá de la generación simple de código, cubren las partes que el modelo habitualmente falla: cancelación async, uso de ConfigureAwait, IDisposable, tradeoffs struct vs class, patrones de BenchmarkDotNet, metadatos de empaquetado NuGet, y estilo moderno xUnit + FluentAssertions.

Por qué usarlo

Características clave

Demo en vivo

Cómo se ve en la práctica

listo

Instalar

Elige tu cliente

~/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
    }
  }
}

Abre Claude Desktop → Settings → Developer → Edit Config. Reinicia después de guardar.

~/.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 usa el mismo esquema mcpServers que Claude Desktop. La configuración del proyecto prevalece sobre la global.

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

Haz clic en el icono MCP Servers de la barra lateral de Cline y luego en "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
    }
  }
}

Mismo formato que Claude Desktop. Reinicia Windsurf para aplicar.

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

Continue usa un array de objetos de servidor en lugar de un mapa.

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

Añádelo a context_servers. Zed recarga en caliente al guardar.

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

Un solo comando. Verifica con claude mcp list. Quita con claude mcp remove.

Casos de uso

Usos del mundo real: .NET Skills

Auditar un servicio por corrección de async/await

👤 Equipos backend .NET ⏱ ~45 min advanced

Cuándo usarlo: Heredaste un servicio que hace deadlock intermitentemente y sospechas de problemas async.

Requisitos previos
  • Skill instalado — git clone https://github.com/Aaronontheweb/dotnet-skills ~/.claude/skills/dotnet
Flujo
  1. Escanear
    dotnet-skills: auditoría async en src/. Marca: ConfigureAwait(false) faltante en bibliotecas, .Result/.Wait, async void (no-evento), propagación de CancellationToken faltante.✓ Copiado
    → Lista concreta de archivo:línea con severidad
  2. Corregir un cluster
    Elige el cluster de mayor severidad (riesgo de deadlock). Propón parches, archivo por archivo. Muestra los diffs.✓ Copiado
    → Parches quirúrgicos, no reescrituras de archivo completo

Resultado: Higiene async mejorada; una fuente de deadlocks intermitentes eliminada.

Errores comunes
  • La corrección de ConfigureAwait rompe el código del hilo UI — El skill diferencia entre código lib y app; respeta ese límite
Combinar con: filesystem

Hacer benchmark de un hot path con BenchmarkDotNet

👤 Devs .NET curiosos sobre rendimiento ⏱ ~60 min advanced

Cuándo usarlo: El profiler apunta a un método; necesitas números rigurosos.

Flujo
  1. Montar el benchmark
    Skill: monta un proyecto BenchmarkDotNet para OrderCalc.Compute. Múltiples tamaños de entrada. Memory diagnoser activado. Exporter de Markdown.✓ Copiado
    → El proyecto de benchmark compila; corre bajo Release
  2. Ejecutar e interpretar
    Ejecuta el bench. Informa media, asignado, gen0. ¿Cuál es la asignación principal?✓ Copiado
    → Atribución concreta al asignador (probablemente string concat o LINQ)
  3. Parchar y re-benchmarcar
    Reemplaza LINQ con un bucle manual. Vuelve a ejecutar. Muestra antes/después.✓ Copiado
    → Las asignaciones bajan de forma medible

Resultado: Mejora de rendimiento cuantificada, no basada en vibraciones.

Errores comunes
  • Ejecutar builds Debug — BenchmarkDotNet rechaza Debug; asegúrate de Release

Preparar una biblioteca para su lanzamiento en NuGet

👤 Autores OSS ⏱ ~30 min intermediate

Cuándo usarlo: Primer lanzamiento NuGet de tu lib; quieres que esté pulida.

Flujo
  1. Auditar el empaquetado
    dotnet-skills: audita MyLib.csproj para preparación NuGet. Comprueba Description, Authors, License, RepositoryUrl, source-link, multi-targeting.✓ Copiado
    → Lista concreta de campos faltantes
  2. Revisión de superficie de API
    Genera la superficie de API pública; marca cualquier tipo interno filtrado o públicos con nombres extraños.✓ Copiado
    → Volcado de superficie de API con preocupaciones señaladas

Resultado: Paquete limpio listo para subir.

Errores comunes
  • Discrepancia de licencia (archivo LICENSE vs <PackageLicenseExpression>) — El skill lo detecta; alinéalos

Combinaciones

Combínalo con otros MCPs para multiplicar por 10

dotnet-skills-aaronontheweb + filesystem

Aplicar parches en todo el proyecto

Aplica los parches de async_audit en src/. Un commit por archivo.✓ Copiado
dotnet-skills-aaronontheweb + github

Abrir PR con los resultados del benchmark

Abre un PR con el parche de rendimiento + benchmark antes/después en la descripción.✓ Copiado

Herramientas

Lo que expone este MCP

HerramientaEntradasCuándo llamarCoste
async_audit path Verificación de salud de la base de código 0
scaffold_benchmark target_method Trabajo de rendimiento 0
interpret_bench bench_md Después de ejecutar el benchmark 0
nuget_audit csproj Pre-lanzamiento 0
api_surface assembly_or_proj Revisión de API 0
test_conventions_check test_path Revisión de PR 0

Coste y límites

Lo que cuesta ejecutarlo

Cuota de API
N/A
Tokens por llamada
Las auditorías escanean código = mayor uso de tokens; 5k–30k por pasada
Monetario
Gratis
Consejo
Audita un proyecto a la vez; no hagas fanout en un monorepo de una vez

Seguridad

Permisos, secretos, alcance

Ámbitos mínimos: filesystem-read filesystem-write
Almacenamiento de credenciales: Ninguno
Salida de datos: Ninguno

Resolución de problemas

Errores comunes y soluciones

Auditoría demasiado ruidosa

Especifica el umbral de severidad; el skill reporta todo por defecto

El benchmark no arranca

Debe ser un build Release; BenchmarkDotNet rechaza Debug

Verificar: dotnet build -c Release
La superficie de API incluye tipos internos

Asegúrate de que InternalsVisibleTo esté configurado correctamente; el skill reporta según la configuración

Alternativas

.NET Skills vs otros

AlternativaCuándo usarlaContrapartida
Analyzers Roslyn en el repoQuieres aplicación en tiempo de CIMás configuración; menos interactivo
ReSharper / RiderQuieres correcciones en tiempo de IDEDe pago; no manejado por LLM
Aspire / .NET Cloud Native skillsEnfoque cloud-nativeAlcance diferente

Más

Recursos

📖 Lee el README oficial en GitHub

🐙 Ver issues abiertas

🔍 Ver todos los 400+ servidores MCP y Skills