Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Vertical Slice Architecture con Asp.Net Core | Latino .NET Online

Lautaro Carro
March 16, 2024
130

Vertical Slice Architecture con Asp.Net Core | Latino .NET Online

Lautaro Carro

March 16, 2024
Tweet

More Decks by Lautaro Carro

Transcript

  1. { "name": "Lautaro Carro", "username": "@lauchacarro ", "award": "Microsoft MVP

    ", "certifications": [“AZ-900", “AZ-204"] "activities": ["Latino .NET Online", "Rest Of My Cloud"] }
  2. OBJETIVOS ❑ Conocer Vertical Slice Architecture ❑ Saber cuáles son

    sus diferencias frente a una arquitectura tradicional ❑ Implementar en vivo esta arquitectura ❑ Contar mi experiencia ❑ Aplicar conceptos de Clean Architecture
  3. Arquitectura Tradicional (3 Capas) Presentación (UI/Api/Consola) Aplicación (Lógica de negocio)

    Infraestructura (DB, Servicios Ext) ProductsController.cs ProductsService.cs ProductRepository.cs
  4. Arquitectura Tradicional Una funcionalidad traspasa todas las capas. Las responsabilidades

    se miden en capas. ProductsController.cs ProductsService.cs ProductRepository.cs
  5. Vertical Slice Architecture Presentación (UI/Api/Consola) Aplicación (Funcionalidades) Infraestructura (DB, Servicios

    Ext) • Request • Validaciones • Mappers • Helpers • Lógica de negocio • Acceso a datos • Response
  6. Clean Architecture ❑ Se centra en la creación de sistemas

    que sean modularizados, testables, independientes de frameworks y externamente mantenibles a lo largo del tiempo.
  7. Vertical Slice + Clean Presentación (UI/Api/Consola) Aplicación (Funcionalidades) Infraestructura (DB,

    Servicios Ext) No debe haber lógica. Una sola línea de código que llame a la funcionalidad.
  8. Vertical Slice + Clean Presentación (UI/Api/Consola) Aplicación (Funcionalidades) Infraestructura (DB,

    Servicios Ext) No debe saber nada sobre HttpContext, ni de sistema operativo, ni de variables de entorno.
  9. Vertical Slice + Clean Presentación (UI/Api/Consola) Aplicación (Funcionalidades) Infraestructura (DB,

    Servicios Ext) StorageManager JwtManager PaymentManager PayPalManager AppDBContext IStorageManager IJwtManager IPaymentManager IAppDBContext
  10. Beneficios Técnicos ❑ Corta curva de aprendizaje para empezar a

    desarrollar. ❑ Fácil identificar el código a modificar. Sin depender de otras funcionalidades. ❑ Facilita la adopción de nuevas tecnologías. Permite incorporar nuevas tecnologías de forma gradual y controlada. ❑ Al tener una arquitectura modular y completa, facilita la escalabilidad del sistema. ❑ Fácil de realizar y mantener los Unit Testing.
  11. Beneficios de Equipo ❑ Se obtiene una retroalimentación más rápida

    del cliente, usuario o líder. ❑ Facilita la lectura de Pull Request. (Una funcionalidad = 1 PR) ❑ El mantenimiento y la corrección de errores se simplifican.
  12. Desventajas ❑ Dificultad para crear códigos reutilizables sin caer en

    un “core”. ❑ Se crean una gran cantidad de clases. Es importante tener una buena organización de carpetas. ❑ Requiere de supervisión de líder técnico para asegurarse que se mantengan los principios de la arquitectura.
  13. CONCLUSIONES ❑ Vertical Slice Architecture es un enfoque altamente adaptable

    a la mayoría de los proyectos. ❑ Promueve la fácil incorporación de nuevas funcionalidades sin afectar otras partes del sistema. ❑ Adoptar la arquitectura de rebanada vertical puede mejorar significativamente la calidad, la velocidad y la flexibilidad en el desarrollo de software.