Resumen de arquitectura
Modelo de capas
DAF sigue una arquitectura en capas donde cada módulo tiene un compañero Abstractions:
┌─────────────────────────────────────────┐
│ Tu Aplicación │
├─────────────────────────────────────────┤
│ Application │ Hosting │ MediatR │ ← Composición
├──────────┬────┴──────┬────┴────┬────────┤
│ Logging │ Config │ DI │ NNLog │ ← Servicios
├──────────┴───────────┴─────────┴────────┤
│ Commons · Rtti · Threading │ ← Fundación
└─────────────────────────────────────────┘
Patrón Abstractions
Cada módulo de servicio se distribuye como par:
| Paquete | Rol |
|---|---|
Daf.X.Abstractions |
Solo interfaces — sin implementación |
Daf.X |
Implementación concreta + helpers de registro |
El código de tu app depende solo de Abstractions. Las implementaciones son intercambiables en el composition root.
Flujo de dependencias
Application
└── Hosting
├── DependencyInjection
├── Configuration
└── Logging
└── NNLog (proveedor)
Testing con MiniSpec
MiniSpec es independiente del resto del stack. Puede testear cualquier código Delphi usando specs estilo Gherkin:
Feature('Calculadora')
.Scenario('Sumar dos números')
.Given('una calculadora')
.When('sumo 2 y 3')
.Then('el resultado es 5');Ver el módulo MiniSpec para la guía completa.