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

Blazor en Grande: Arquitectura y Escalabilidad ...

Lautaro Carro
September 27, 2024

Blazor en Grande: Arquitectura y Escalabilidad - Jornada 5 - Asp .NET (Español)

Lautaro Carro

September 27, 2024
Tweet

More Decks by Lautaro Carro

Other Decks in Technology

Transcript

  1. Introducción a Blazor Blazor es un framework de desarrollo web

    que permite construir aplicaciones web interactivas y dinámicas utilizando C# en lugar de JavaScript para el lado del cliente.
  2. Análisis Comparativo de Tecnologías Web Next.js es un framework de

    desarrollo web basado en React que permite la creación de aplicaciones web y sitios estáticos. Fue desarrollado por Vercel y es ampliamente utilizado para construir aplicaciones de React más robustas y eficientes.
  3. Análisis Comparativo de Tecnologías Web 1. Arquitectura modular y componentes

    reutilizables 2. Estructura de carpetas organizada y escalable 3. Estándares de codificación y linting 5. Uso de estándares web y tecnologías modernas 6. Manejo eficiente del estado 7. Optimización y rendimiento 8. Desarrollo accesible (a11y) 10. Tipado estático 11. Seguridad 13. Escalabilidad y mantenibilidad CSS Frontend escalable y mantenible (chatgpt.com)
  4. Manejo eficiente del estado (Según la Docs de Microsoft) El

    manejo de estado se refiere a cómo una aplicación almacena, actualiza y comparte información entre componentes. Administración de estado de Blazor en ASP.NET Core | Microsoft Learn
  5. Flujo Bidireccional vs. Flujo Unidireccional El flujo bidireccional se refiere

    a la capacidad de los componentes de una aplicación para cambiar el estado y que esos cambios se reflejen automáticamente en otros componentes. Por ejemplo, en aplicaciones tradicionales o en enfoques más simples: StateContainer.cs ComponenteB ComponenteA
  6. Flujo Bidireccional Desventajas Esta interconexión puede complicar el seguimiento de

    cómo y por qué cambia el estado, especialmente en aplicaciones más grandes. Los problemas comunes incluyen: Dificultades para depurar: Si hay múltiples componentes cambiando el mismo estado, es más difícil entender qué acción causó un cambio. Condiciones de carrera: Los cambios de estado pueden ocurrir de manera inesperada o fuera de orden, lo que puede llevar a inconsistencias en la interfaz.
  7. Arquitectura Flux Flux es una arquitectura de manejo de estado

    popularizada por Facebook, diseñada para aplicaciones unidireccionales. Esto simplifica la lógica y hace que el seguimiento de los cambios de estado sea más predecible. Cuando un componente envía una acción, se sabe exactamente cómo se propagara el cambio en la aplicación, lo que facilita la depuración. In-Depth Overview | Flux (facebookarchive.github.io)
  8. Flujo Unidireccional Store: Donde se almacena el estado de la

    aplicación. Solo el Store puede modificar el estado. Dispatcher: Un manejador central que recibe todas las acciones y las distribuye a los Stores. Actions: Son objetos que describen eventos o intenciones de cambiar el estado. Views: Componentes que reaccionan a los cambios de estado emitidos por los Stores. Los efectos son operaciones que se llevan a cabo como consecuencia de una acción, pero que no cambian directamente el estado.
  9. Redux: Gestión de Estado Eficiente para Aplicaciones JavaScript Una librería

    JS para la gestión global de estados predecible y fácil de mantener. Style Guide | Redux
  10. Fluxor: Gestión de Estado Eficiente para Aplicaciones Blazor Fluxor es

    una biblioteca Flux/Redux para Microsoft . mrpmorris/Fluxor: Fluxor is a zero boilerplate Flux/Redux library for Microsoft .NET and Blazor. (github.com)
  11. Creación de una aplicación Blazor escalable App Blazor con WebApi

    Integrada Minimal Api) Blazor ✓ AutoRender ✓ FluentUI ✓ Fluxor ✓ FluentValidation WebApi ✓ Vertical Slice ✓ MediatR ✓ EntityFramework Core Compartidos ✓ Modelos Requests y Responses
  12. Conclusiones • Fluxor hace que nuestra aplicación Blazor sea más

    Predecible, Flexible, Debuggable y Escalable. • ChatGPT 3.5 y 4 conocen y saben de Fluxor y la arquitectura Flux, que lo convierte en una gran ayuda para agilizar crear las clases más rápido. • Podemos armar estructuras de nuestras aplicaciones Blazor, basándonos en las estructuras y prácticas de otros frameworks web.