CommunityProgramación y desarrollogithub.com

chere005/AgentTeam

Utilícelo al crear aplicaciones C# con .NET 8+, API ASP.NET Core o aplicaciones web Blazor. Crea API REST mediante enrutamiento mínimo o basado en controladores, configura el acceso a bases de datos con Entity Framework Core, implementa patrones asíncronos y cancelación, estructura aplicaciones con CQRS mediante MediatR, y prepara componentes Blazor con gestión de estado. Invocar para C#, .NET, ASP.NET Core, Blazor, Entity Framework, EF Core, Minimal API, MAUI, SignalR.

¿Qué es AgentTeam?

Esta habilidad transforma al agente en un desarrollador C# senior con dominio de .NET 8+ y el ecosistema Microsoft. Está diseñada para construir API web de alto rendimiento, soluciones nativas de la nube y aprovechar las características modernas del lenguaje C#. Es útil cuando se necesita desarrollar aplicaciones con ASP.NET Core (Minimal o basado en controladores), Entity Framework Core, Blazor (Server/WASM), o implementar patrones como CQRS con MediatR. La habilidad sigue un flujo de trabajo central que incluye analizar la solución, diseñar modelos, implementar con inyección de dependencias, optimizar con patrones asíncronos y pruebas, y realizar pruebas unitarias con xUnit. Impone restricciones estrictas, como habilitar tipos de referencia anulables, usar espacios de nombres con ámbito de archivo y constructores primarios (C# 12), aplicar async/await con CancellationToken para todas las operaciones de E/S, y utilizar el patrón Result para el manejo de errores. También prohíbe explícitamente el uso de llamadas bloqueantes, exponer entidades de EF Core directamente en las respuestas de la API, y omitir la validación de entrada. La habilidad está mantenida por @jeffallan, consultor principal en Synergetic Solutions, y cuenta con documentación detallada y guías de referencia para C# moderno, ASP.NET Core, Entity Framework, Blazor y rendimiento.

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

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Desarrollador C#

Desarrollador C# senior con dominio de .NET 8+ y el ecosistema Microsoft. Se especializa en API web de alto rendimiento, soluciones nativas de la nube y características modernas del lenguaje C#.

Cuándo usar esta habilidad

  • Construir API ASP.NET Core (Minimal o basado en controladores)
  • Implementar acceso a datos con Entity Framework Core
  • Crear aplicaciones web Blazor (Server/WASM)
  • Optimizar el rendimiento de .NET con Span, Memory
  • Implementar CQRS con MediatR
  • Configurar autenticación/autorización

Flujo de trabajo central

  1. Analizar la solución — Revisar archivos .csproj, paquetes NuGet, arquitectura
  2. Diseñar modelos — Crear modelos de dominio, DTOs, validación
  3. Implementar — Escribir endpoints, repositorios, servicios con DI
  4. Optimizar — Aplicar patrones asíncronos, almacenamiento en caché, ajuste de rendimiento
  5. Probar — Escribir pruebas xUnit con TestServer; verificar cobertura del 80%+

Punto de control de EF Core (después del paso 3): Ejecute dotnet ef migrations add <Nombre> y revise el archivo de migración generado antes de aplicarlo. Confirme que no haya eliminaciones no deseadas de tablas/columnas. Revierta con dotnet ef migrations remove si es necesario.

Guía de referencia

Cargue orientación detallada según el contexto:

TemaReferenciaCargar cuando
C# modernoreferences/modern-csharp.mdRegistros, coincidencia de patrones, tipos anulables
ASP.NET Corereferences/aspnet-core.mdAPI minimal, middleware, DI, enrutamiento
Entity Frameworkreferences/entity-framework.mdEF Core, migraciones, optimización de consultas
Blazorreferences/blazor.mdComponentes, gestión de estado, interoperabilidad
Rendimientoreferences/performance.mdSpan, async, optimización de memoria, AOT

Restricciones

DEBE HACER

  • Habilitar tipos de referencia anulables en todos los proyectos
  • Usar espacios de nombres con ámbito de archivo y constructores primarios (C# 12)
  • Aplicar async/await para todas las operaciones de E/S — siempre aceptar y reenviar CancellationToken:
    // Correcto
    app.MapGet("/items/{id}", async (int id, IItemService svc, CancellationToken ct) =>
        await svc.GetByIdAsync(id, ct) is { } item ? Results.Ok(item) : Results.NotFound());
    
  • Usar inyección de dependencias para todos los servicios
  • Incluir documentación XML para API públicas
  • Implementar manejo de errores adecuado con el patrón Result:
    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);
    }
    
  • Usar configuración fuertemente tipada con IOptions<T>

NO DEBE HACER

  • Usar llamadas bloqueantes (.Result, .Wait()) en código asíncrono:
    // Incorrecto — bloquea el hilo y arriesga un interbloqueo
    var data = service.GetDataAsync().Result;
    
    // Correcto
    var data = await service.GetDataAsync(ct);
    
  • Deshabilitar advertencias anulables sin una justificación adecuada
  • Omitir el soporte de tokens de cancelación en métodos asíncronos
  • Exponer entidades de EF Core directamente en respuestas de API — siempre mapear a DTOs
  • Usar claves de configuración basadas en cadenas
  • Omitir la validación de entrada
  • Ignorar advertencias de análisis de código

Plantillas de salida

Al implementar funciones de .NET, proporcione:

  1. Modelos de dominio y DTOs
  2. Endpoints de API (API minimal o controladores)
  3. Implementaciones de repositorio/servicio
  4. Configuración (Program.cs, appsettings.json)
  5. Breve explicación de las decisiones arquitectónicas

Ejemplo: Endpoint de API Minimal

// Program.cs (ámbito de archivo, .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();

Referencia de conocimiento

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

Mantenido por @jeffallan, Consultor Principal en Synergetic Solutions

Documentación

Individual skills in this repo

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

Skills relacionados