Este projeto demonstra uma implementação prática da Arquitetura Hexagonal (também conhecida como Ports and Adapters) usando .NET 8. A aplicação simula um sistema básico de gestão de pedidos, com separação clara entre o núcleo do domínio e os adaptadores externos.
OrderManagementHexagonal/
├── OrderManagement.Core # Entidades de domínio e interfaces (Ports)
│ ├── Entities/Order.cs
│ └── Ports/IOrderRepository.cs
├── OrderManagement.Application # Casos de uso (Use Cases)
│ └── UseCases/CreateOrder.cs
├── OrderManagement.Infrastructure # Repositórios e dependências externas
│ └── Repositories/OrderRepository.cs
├── OrderManagement.API # Camada de apresentação (Controllers)
│ ├── Controllers/OrdersController.cs
│ └── Program.cs- Hexagonal Architecture: Define o domínio no centro da aplicação. Toda comunicação externa (como APIs, bancos de dados, etc) é feita através de Ports (interfaces) e Adapters (implementações).
- Baixo acoplamento entre as camadas.
- Alta testabilidade devido à abstração por interfaces.
- Abra a solução no Visual Studio ou VS Code.
- Restaure os pacotes NuGet:
dotnet restore
- Compile e execute o projeto Web: dotnet run --project OrderManagement.API
- Use uma ferramenta como Postman ou Insomnia para testar os endpoints da API.
🧪 Exemplo de Requisição (POST)
POST /api/orders
Content-Type: application/json
{
"productName": "Mouse Gamer",
"quantity": 3
}Sinta-se à vontade para abrir issues, enviar PRs ou sugerir melhorias!
Ramon | @RamonesCode
