Blazor es un Framework nuevo para crear interfaces de usuario (User Interface -UI) mediante la plataforma .NET. Actualmente está dirigido para su implementación en la web con dos modelos diferentes.
La arquitectura es similar a React, Angular, Vue y otros Frameworks que utilizan componentes de serie para crear el interfaz de usuario final. Cada componente (Modo Servidor y Modo WebAssembly) puede tener su propio estado interno autónomo. Es muy intuitivo y eficiente para la creación de aplicaciones complejas y ahora se beneficia de las características sólidas de lenguaje y desarrollo disponibles en C# y Visual Studio (u otros IDE).
El modo Blazor Server-Side es parte oficial de la versión 3.0 de .NET Core. Toda la lógica de componentes se ejecuta en el servidor y se usa una conexión de websocket para pasar las actualizaciones de la interfaz de usuario y las interacciones entre el explorador y el back-end. Esto hace que el sitio se cargue rápidamente, pero requiere una conexión constante con el servidor. Si se produce un error en una conexión, se debe volver a cargar la página. Hay algunas actualizaciones futuras para que las conexiones sean más resistentes, pero la arquitectura actual es la más adecuada para aplicaciones internas y empresariales que siempre tienen una conexión confiable y rápida.
El otro modelo de implementación es en el lado cliente (Client-side). Este modelo funciona compilando con el runtime Mono (el mismo que usa Unity para juegos y Xamarin para aplicaciones móviles). Esto se le llama webassembly y se carga directamente en el explorador. También contiene archivos DLL estándar que se descargan e interpretan sobre la marcha en el explorador para ejecutar la aplicación.
Es importante tener en cuenta que el Blazor todavía depende mucho de Javascript porque esa es la única manera de modificar cualquier cosa en el DOM o interactuar con otro código Javascript en la página. Es poco probable que se evite el uso de JS completamente incluso con Blazor. Una nota interesante es que la tecnología subyacente es independiente de HTML y se puede utilizar para impulsar otras interfaces, con experimentos que muestran Blazor ejecutando el marco Flutter de Google para interfaces de usuario de aplicaciones móviles.
En general, es un gran salto grande. Si el modelo del lado del servidor se ajusta a tu caso de uso, entonces está listo para la producción. Es altamente productivo y ofrece una gran experiencia para sus usuarios.
Hay algunas herramientas que puedes encontrar en las siguientes direcciones:
- Página oficial https://blazor.net/
- Blazor en GitHub: https://github.com/dotnet/blazor
- Guía Rápida: https://docs.microsoft.com/en-us/aspnet/core/blazor/get-started
- Guías en Youtube: https://www.youtube.com/watch?v=zYeVH_g7ZHo