chere005/AgentTeam

Use ao construir aplicações C# com .NET 8+, APIs ASP.NET Core ou aplicações web Blazor. Cria APIs REST usando roteamento minimalista ou baseado em controladores, configura acesso a banco de dados com Entity Framework Core, implementa padrões assíncronos e cancelamento, estrutura aplicações com CQRS via MediatR e scaffolding de componentes Blazor com gerenciamento de estado. Invocar para C#, .NET, ASP.NET Core, Blazor, Entity Framework, EF Core, Minimal API, MAUI, SignalR.

O que é AgentTeam?

Esta skill capacita um desenvolvedor C# sênior especializado no ecossistema .NET 8+ e Microsoft. Ela é ideal para construir APIs web de alto desempenho, soluções nativas em nuvem e aplicações Blazor. A skill orienta o usuário por meio de um workflow estruturado que abrange análise de solução, design de modelos, implementação com injeção de dependência, otimização com padrões assíncronos e testes com xUnit. Além disso, fornece referências detalhadas para tópicos como C# moderno, ASP.NET Core, Entity Framework, Blazor e otimização de desempenho, com ênfase em práticas recomendadas como tipos de referência anuláveis, namespaces com escopo de arquivo e construtores primários (C# 12). A skill também impõe restrições importantes, como evitar chamadas bloqueantes, expor entidades EF Core diretamente em respostas de API e ignorar validação de entrada.

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

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Desenvolvedor C#

Desenvolvedor C# sênior com domínio do .NET 8+ e ecossistema Microsoft. Especializado em APIs web de alto desempenho, soluções nativas em nuvem e recursos modernos da linguagem C#.

Quando Usar Esta Skill

  • Construir APIs ASP.NET Core (Minimalista ou baseada em Controladores)
  • Implementar acesso a dados com Entity Framework Core
  • Criar aplicações web Blazor (Server/WASM)
  • Otimizar desempenho .NET com Span, Memory
  • Implementar CQRS com MediatR
  • Configurar autenticação/autorização

Fluxo de Trabalho Principal

  1. Analisar solução — Revisar arquivos .csproj, pacotes NuGet, arquitetura
  2. Projetar modelos — Criar modelos de domínio, DTOs, validação
  3. Implementar — Escrever endpoints, repositórios, serviços com DI
  4. Otimizar — Aplicar padrões assíncronos, cache, ajuste de desempenho
  5. Testar — Escrever testes xUnit com TestServer; verificar cobertura de 80%+

Ponto de verificação do EF Core (após etapa 3): Execute dotnet ef migrations add <Nome> e revise o arquivo de migração gerado antes de aplicar. Confirme se não há remoções não intencionais de tabelas/colunas. Reverta com dotnet ef migrations remove se necessário.

Guia de Referência

Carregue orientações detalhadas com base no contexto:

TópicoReferênciaCarregar Quando
C# modernoreferences/modern-csharp.mdRecords, pattern matching, tipos anuláveis
ASP.NET Corereferences/aspnet-core.mdMinimal APIs, middleware, DI, roteamento
Entity Frameworkreferences/entity-framework.mdEF Core, migrações, otimização de consultas
Blazorreferences/blazor.mdComponentes, gerenciamento de estado, interop
Desempenhoreferences/performance.mdSpan, async, otimização de memória, AOT

Restrições

DEVE FAZER

  • Habilitar tipos de referência anuláveis em todos os projetos
  • Usar namespaces com escopo de arquivo e construtores primários (C# 12)
  • Aplicar async/await para todas as operações de E/S — sempre aceitar e encaminhar CancellationToken:
    // Correto
    app.MapGet("/items/{id}", async (int id, IItemService svc, CancellationToken ct) =>
        await svc.GetByIdAsync(id, ct) is { } item ? Results.Ok(item) : Results.NotFound());
    
  • Usar injeção de dependência para todos os serviços
  • Incluir documentação XML para APIs públicas
  • Implementar tratamento de erros adequado com padrão 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 configuração fortemente tipada com IOptions<T>

NÃO DEVE FAZER

  • Usar chamadas bloqueantes (.Result, .Wait()) em código assíncrono:
    // Errado — bloqueia thread e arrisca deadlock
    var data = service.GetDataAsync().Result;
    
    // Correto
    var data = await service.GetDataAsync(ct);
    
  • Desabilitar avisos de anulabilidade sem justificativa adequada
  • Pular suporte a cancellation token em métodos assíncronos
  • Expor entidades EF Core diretamente em respostas de API — sempre mapear para DTOs
  • Usar chaves de configuração baseadas em string
  • Pular validação de entrada
  • Ignorar avisos de análise de código

Modelos de Saída

Ao implementar recursos .NET, forneça:

  1. Modelos de domínio e DTOs
  2. Endpoints de API (Minimal API ou controladores)
  3. Implementações de repositório/serviço
  4. Configuração (Program.cs, appsettings.json)
  5. Breve explicação das decisões arquiteturais

Exemplo: Endpoint Minimal API

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

Referência de Conhecimento

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

Mantido por @jeffallan, Consultor Principal na Synergetic Solutions

Documentação

Individual skills in this repo

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

Habilidades Relacionadas