Pular para o conteúdo principal
Versão: 10.4.1

Visão geral

ITLab.Template.Next é o template canônico do time ITLab para novos serviços .NET 10, publicado como pacote dotnet new (itlab-fullstack) no feed Azure DevOps ITLab.Template.

O template não é um esqueleto vazio: ele nasce com uma feature de referência viva (Orders), autenticação funcionando out-of-the-box e um frontend React servido pela própria API. A filosofia é replicar por imitação — toda convenção está ancorada em um arquivo concreto do canon.

Stack

  • .NET 10 + Minimal APIs + ASP.NET Core 10
  • ITLab.Template.DevPack — Result/Error, CQRS, behaviors, autorização, interceptors EF Core, identity bridge, paginação
  • Mediator (martinothamar) com handlers Scoped + FluentValidation 11
  • Entity Framework Core 10 (SQL Server) com migration InitialCreate shipada
  • Autenticação local (ASP.NET Identity) dual-scheme: cookie BFF (browser) + Bearer JWT/JWKS (mobile/serviços) — ver ADR-006
  • Autorização role-based com RolePermissions em banco + cache — ver ADR-004
  • Serilog + OpenAPI nativo + Scalar UI + OpenTelemetry
  • SPA React (Vite + TypeScript + Tailwind + shadcn/ui) servido same-origin pela API — ver ADR-007
  • xUnit + FluentAssertions + ITLab.Template.DevPack.Testing

Estrutura do scaffold

src/
├── {Projeto}.Domain/ entidades, value objects, eventos de domínio
├── {Projeto}.Application/ casos de uso em vertical slices
├── {Projeto}.Infrastructure/ EF Core, interceptors, autenticação, integrações
├── {Projeto}.Api/ entry point HTTP (Minimal APIs) — serve também o SPA
├── {Projeto}.Spa/ frontend React
└── {Projeto}.Worker/ entry point background (IHostedService)

tests/
├── {Projeto}.Domain.Tests/ testes unitários do domínio
└── {Projeto}.Integration.Tests/ testes end-to-end via WebApplicationFactoryBase

Como navegar nesta documentação

Você quer...Vá para
Subir o primeiro serviçoGetting Started
Receitas do dia-a-dia (gerar projeto, migrations, build, rodar)Guides
Entender o que vem pronto no canonFeatures
Estender ou trocar comportamentosExtensibilidade
Usar a biblioteca de infraestruturaDevPack
Contratos HTTP do canonAPI
Decisões arquiteturais e históricoADRs · Changelog