Este repositorio contiene el backend (API RESTful) para la gestión de un almacén o inventario, desarrollado en .NET (C#). El diseño del proyecto aplica estrictamente los principios de Clean Architecture (Arquitectura Limpia) y el patrón de Puertos y Adaptadores, garantizando un código altamente mantenible, testable y completamente agnóstico de frameworks externos o bases de datos en su núcleo.
El proyecto está segmentado en múltiples bibliotecas de clases para forzar la regla de dependencia: el código interior no puede saber nada del código exterior.
Almacen.Entitites: El corazón del software. Contiene los objetos de dominio (ej. Producto, Categoría, Inventario) y las reglas de negocio primarias. Cero dependencias externas.
Almacen.CasosDeUsoPorts: Define las interfaces (Ports) de entrada y salida. Es el contrato que dicta cómo el mundo exterior se comunica con la aplicación.Almacen.CasosDeUsos: Implementa la lógica de orquestación de la aplicación (losInteractors). Aquí residen las operaciones concretas (entradas, salidas de almacén, etc.).Almacen.DTOs: Objetos de Transferencia de Datos. Estructuras ligeras para enviar información hacia y desde los casos de uso sin exponer las entidades de dominio.
Almacen.RepositorioEFCore: El adaptador de persistencia. Implementa las interfaces de repositorio definidas en la capa de aplicación utilizando Entity Framework Core.Almacen.IOC(Inversion of Control): Contenedor centralizado para la inyección de dependencias. Registra qué implementación concreta debe usarse para cada interfaz solicitada.
Almacen.Api: El proyecto de inicio (Host). Configura los servicios, middlewares y levanta el servidor web.Almacen.Controllers: Interceptan las llamadas HTTP y las delegan a los puertos de entrada correspondientes.Almacen.Presenters: Toman la respuesta pura del caso de uso (mediante los puertos de salida) y la formatean en respuestas HTTP estándar (ej. 200 OK, 404 Not Found, 400 Bad Request).
- .NET (C#)
- Entity Framework Core
- Patrones de Diseño:
- Clean Architecture / Hexagonal Architecture
- Repository Pattern
- Dependency Injection
- CQRS (separación lógica mediante puertos de entrada/salida)
Para levantar el proyecto en tu máquina local, sigue estos pasos:
- Clona el repositorio:
git clone [https://github.com/LeandroBatistaDiaz/Almacen-CleanArchitecture.git](https://github.com/LeandroBatistaDiaz/Almacen-CleanArchitecture.git) cd Almacen-CleanArchitecture