From architecture-dotnet
Define a estrutura de camadas para aplicações .NET seguindo Clean Architecture. Use quando o usuário mencionar 'clean architecture', 'arquitetura limpa', 'camadas .NET', 'estrutura de projeto .NET', 'DDD layers', 'domain-driven design .NET', 'separação de responsabilidades', 'modularização .NET', 'criar projeto .NET estruturado', 'organização de solução .NET'. Também use quando for criar novos projetos .NET que precisem de arquitetura bem definida.
How this skill is triggered — by the user, by Claude, or both
Slash command
/architecture-dotnet:architecture-initThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
```
Solution/
├── src/
│ ├── Domain/ # Camada de Domínio (núcleo)
│ ├── Application/ # Camada de Aplicação
│ ├── Infrastructure/ # Camada de Infraestrutura
│ └── Presentation/ # Camada de Apresentação
├── tests/
│ ├── Domain.Tests/
│ ├── Application.Tests/
│ ├── Infrastructure.Tests/
│ └── Presentation.Tests/
└── Solution.sln
Projeto: {SolutionName}.Domain
Dependências: Nenhuma (camada mais interna)
Conteúdo:
Domain/
├── Entities/ # Entidades de domínio
├── ValueObjects/ # Objetos de valor
├── Aggregates/ # Raízes de agregados
├── Enums/ # Enumerações de domínio
├── Events/ # Eventos de domínio
├── Exceptions/ # Exceções de domínio
├── Interfaces/ # Contratos (repositories, services)
└── Services/ # Serviços de domínio (lógica pura)
Regras:
Projeto: {SolutionName}.Application
Dependências: Domain
Conteúdo:
Application/
├── Commands/ # Comandos (write operations)
│ └── {Feature}/
│ ├── {Command}Command.cs
│ └── {Command}CommandHandler.cs
├── Queries/ # Consultas (read operations)
│ └── {Feature}/
│ ├── {Query}Query.cs
│ └── {Query}QueryHandler.cs
├── DTOs/ # Data Transfer Objects
├── Interfaces/ # Contratos de serviços externos
├── Mappings/ # Configurações AutoMapper
├── Behaviors/ # Pipeline behaviors (validation, logging)
├── Exceptions/ # Exceções de aplicação
└── Common/ # Classes compartilhadas
Regras:
Projeto: {SolutionName}.Infrastructure
Dependências: Domain, Application
Conteúdo:
Infrastructure/
├── Persistence/
│ ├── Configurations/ # Entity configurations (EF Core)
│ ├── Repositories/ # Implementações de repositórios
│ ├── Migrations/ # Migrations do banco
│ └── ApplicationDbContext.cs
├── Services/
│ ├── Email/ # Serviço de email
│ ├── Storage/ # Serviço de arquivos
│ └── External/ # Integrações externas
├── Identity/ # Autenticação/Autorização
└── DependencyInjection.cs # Registro de serviços
Regras:
Projeto: {SolutionName}.Presentation ou {SolutionName}.API
Dependências: Application, Infrastructure (apenas para DI)
Conteúdo:
Presentation/
├── Controllers/ # Endpoints da API
├── Middleware/ # Middlewares customizados
├── Filters/ # Action filters
├── Models/ # View models / Request models
├── Extensions/ # Extension methods
├── Program.cs # Entry point
└── appsettings.json # Configurações
Regras:
┌─────────────────────────────────────────────────────────┐
│ PRESENTATION │
│ (Controllers, Endpoints) │
└─────────────────────────┬───────────────────────────────┘
│ usa
▼
┌─────────────────────────────────────────────────────────┐
│ APPLICATION │
│ (Commands, Queries, Handlers) │
└─────────────────────────┬───────────────────────────────┘
│ usa
▼
┌─────────────────────────────────────────────────────────┐
│ DOMAIN │
│ (Entities, Value Objects, Interfaces) │
└─────────────────────────────────────────────────────────┘
▲
│ implementa
┌─────────────────────────┴───────────────────────────────┐
│ INFRASTRUCTURE │
│ (Repositories, DbContext, Services) │
└─────────────────────────────────────────────────────────┘
Regra de Dependência: Dependências apontam apenas para dentro (camadas internas).
| Elemento | Padrão | Exemplo |
|---|---|---|
| Entidade | {Nome} | Product, Order |
| Value Object | {Nome} | Money, Address |
| Repository Interface | I{Entidade}Repository | IProductRepository |
| Repository Impl | {Entidade}Repository | ProductRepository |
| Command | {Ação}{Entidade}Command | CreateProductCommand |
| Query | Get{Entidade}Query | GetProductByIdQuery |
| Handler | {Command/Query}Handler | CreateProductCommandHandler |
| DTO | {Entidade}Dto | ProductDto |
| Controller | {Entidade}Controller | ProductsController |
Para detalhes de implementação de cada camada, consulte:
references/domain-layer.md - Detalhes da camada Domainreferences/application-layer.md - Detalhes da camada Applicationreferences/infrastructure-layer.md - Detalhes da camada Infrastructurereferences/presentation-layer.md - Detalhes da camada Presentationnpx claudepluginhub brunocesharp/claude --plugin architecture-dotnetProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.