Skip to content

LeandroBatistaDiaz/Almacen-CleanArchitecture

Repository files navigation

API de Almacén - Arquitectura Limpia 📦🏢

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.

🏗️ Estructura de la Solución (Almacen.sln)

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.

1. Capa de Dominio (Core)

  • 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.

2. Capa de Aplicación (Casos de Uso)

  • 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 (los Interactors). 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.

3. Capa de Infraestructura (Adaptadores Externos)

  • 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.

4. Capa de Presentación

  • 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).

🚀 Tecnologías Utilizadas

  • .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)

💻 Instalación y Ejecución Local

Para levantar el proyecto en tu máquina local, sigue estos pasos:

  1. Clona el repositorio:
    git clone [https://github.com/LeandroBatistaDiaz/Almacen-CleanArchitecture.git](https://github.com/LeandroBatistaDiaz/Almacen-CleanArchitecture.git)
    cd Almacen-CleanArchitecture

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages