5 Consejos para usar Blazor como
un Senior
Lautaro Carro
Slide 2
Slide 2 text
Disclaimer
• Esta presentación contiene toda la
información necesaria para cumplir
con los objetivos mencionados.
• Cualquier opinión es de mi persona y
no de otra entidad.
Slide 3
Slide 3 text
{
"name": "Lautaro Carro",
"username": "@lauchacarro 📷",
"award": "Microsoft MVP 🏆",
"job": "Tech Lead y Coach en Algeiba 💻",
"communities": ["Latino .NET Online"]
}
Slide 4
Slide 4 text
Mi Experiencia con Blazor
Slide 5
Slide 5 text
Los consejos de
siempre…
Slide 6
Slide 6 text
Los consejos de siempre…
• Implementen seguridad con OAuth2, OpenIDConnect,
Authorization Policies, etc
• Trabajen con Interfaces e Inyección de dependencias
• Código testeable, Clean Code, SOLID
Slide 7
Slide 7 text
Bibliotecas de
clases Razor
Slide 8
Slide 8 text
Bibliotecas de clases Razor
Slide 9
Slide 9 text
Bibliotecas de clases Razor
Panel de Administración
Slide 10
Slide 10 text
Bibliotecas de clases Razor
Basado en una Plantilla
Slide 11
Slide 11 text
Bibliotecas de clases Razor
Basado en una Plantilla (Atomic Desing)
Slide 12
Slide 12 text
Bibliotecas de clases Razor
Múltiples Módulos
Slide 13
Slide 13 text
Conoce Blazor
Slide 14
Slide 14 text
Inicializadores de JavaScript
https://learn.microsoft.com/es-
es/aspnet/core/blazor/fundamentals/startup?view=aspnetcore-7.0
Slide 15
Slide 15 text
Cambiar mensajes por defecto
https://www.variablenotfound.com/2020/10/como-personalizar-los-
mensajes-de-error.html
Slide 16
Slide 16 text
Controla tus componentes:
IComponentActivator
• La interfaz IComponentActivator nos permite implementar nuestro
propio Factory de Componentes
• Muy útil para componentes de UI más avanzados. Con interfaces
(IMySpeacialComponent) podemos realizar cierta lógica para algunos
componentes y para otros no.
https://www.variablenotfound.com/2020/12/como-tomar-el-control-en-el-momento-de.html
Slide 17
Slide 17 text
Escalar nuestra aplicación de Blazor
Server con Azure SignalR
• Un Azure App Service Basic, soporta 350 conexiones de
WebSockets.
• A las 351, es una opción remplazar el SignalR local por el servicio de
Azure SignalR
https://www.youtube.com/watch?v=GArgZnL5cec
Slide 18
Slide 18 text
Sé un Frontend
Developer
Slide 19
Slide 19 text
Variables CSS y SASS
• Las librerías de componentes para que sean escalables usan variables de CSS.
• Podemos declarar variables CSS globales y, cuando sea necesario, modificar su
valor con CSS Isolation (ButtonSuccess.razor.css)
• SASS (CSS com Superpoderes) nos permite tener nuestros mantenibles en vez de
3000 líneas en un styles.css
https://adrianhall.github.io/asp.net/2022/08/26/adding-sass-to-blazor/
Slide 20
Slide 20 text
NPM y Webpack
• En vez de agregar scripts JS al index.html o _Host.cshtml, podemos
utilizar el administrador de paquetes de Node.
• Usar el Package.json junto con herramientas que detecten
vulnerabilidades.
Slide 21
Slide 21 text
BEM: Bloques, Elementos y Modificadores
• La metodología BEM divide la interfaz de usuario en bloques independientes
para crear componentes escalables y reutilizables.
• Propone un estilo descriptivo para nombrar cada una de las clases CSS a utilizar,
permitiendo así crear una estructura de código consistente.
Slide 22
Slide 22 text
PWA: Progresive Web App
Slide 23
Slide 23 text
FluentValidation:
Separar
Validaciones
Slide 24
Slide 24 text
FluentValidation
• Es una librería para construir reglas de validaciones.
• [Data Annotations] ensucia mis clases.
• Usar Blazored.FluentValidation para realizar validaciones (Solo UI) de mis
EditForms
• De ser necesario, un segundo FluentValidation para validaciones con EFCore en
los Services
https://github.com/Blazored/FluentValidation
Slide 25
Slide 25 text
Manejo de
Estado Avanzado
con Fluxor
Slide 26
Slide 26 text
¿Qué es Fluxor?
• Fluxor es una librería que implementa la arquitectura Flux (Redux / NGXS)
para .NET.
• Flux es una arquitectura para el manejo y el flujo de los datos en una
Front-End. Fue ideada por Facebook y vendría a sustituir el patrón MVC.
https://github.com/mrpmorris/Fluxor
Slide 27
Slide 27 text
Arquitectura Flux
Slide 28
Slide 28 text
¡Felicidades, ahora
eres un Senior en
Blazor! 🚀
Slide 29
Slide 29 text
Conclusiones
• Al igual que cualquier otro proyecto de .NET vas a poder aprovechar y separarlo en librerías
de clases Razor.
• C# ya no es solo un lenguaje para Backend, ahora es un lenguaje de programación Fullstack,
incluye Frontend.
• Nuestras aplicaciones Blazor pueden escalar considerablemente. Asegurémonos de conocer
todo lo que Blazor tiene para ofrecernos al llegar la hora de crecer
• Pasamos años desarrollando con la arquitectura MVC. Hora de avanzar a una nueva
arquitectura más moderna… Flux