Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

{ "name": "Lautaro Carro", "username": "@lauchacarro ", "award": "Microsoft MVP ", "certifications": [“AZ-900", “AZ-204"] "activities": ["Latino .NET Online", "Rest Of My Cloud"] }

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

Arquitectura Tradicional (3 Capas) Presentación (UI/Api/Consola) Aplicación (Lógica de negocio) Infraestructura (DB, Servicios Ext)

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Arquitectura Tradicional ProductsController.cs ProductsService.cs ProductRepository.cs

Slide 10

Slide 10 text

Arquitectura Tradicional Una funcionalidad traspasa todas las capas. Las responsabilidades se miden en capas. ProductsController.cs ProductsService.cs ProductRepository.cs

Slide 11

Slide 11 text

Vertical Slice Architecture Presentación (UI/Api/Consola) Aplicación (Funcionalidades) Infraestructura (DB, Servicios Ext)

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

Clean Architecture

Slide 16

Slide 16 text

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.

Slide 17

Slide 17 text

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.

Slide 18

Slide 18 text

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.

Slide 19

Slide 19 text

Vertical Slice + Clean Presentación (UI/Api/Consola) Aplicación (Funcionalidades) Infraestructura (DB, Servicios Ext) StorageManager JwtManager PaymentManager PayPalManager AppDBContext IStorageManager IJwtManager IPaymentManager IAppDBContext

Slide 20

Slide 20 text

Vertical Slice + Clean

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

Beneficios y Desventajas

Slide 23

Slide 23 text

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.

Slide 24

Slide 24 text

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.

Slide 25

Slide 25 text

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.

Slide 26

Slide 26 text

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.

Slide 27

Slide 27 text

MUCHAS GRACIAS