Blazor, el framework con el que desarrollarás webs utilizando solamente C#
En muchas ocasiones si eres un desarrollador .NET, te puedes sentir en la obligación de tener que aprender y utilizar Javascript para poder crear de forma rápida webs y apps actuales. Sin embargo, actualmente existe otra una forma alternativa que conseguir esto: Blazor.
¿Qué es Blazor?
Blazor es un framework para la construcción de aplicaciones SPA (Single Page Application) desarrollado por Microsoft que nos permitirá la creación de desarrollos web usando únicamente el lenguaje C#.
Una de las mayores ventajas que presenta este framework para los desarrolladores de .NET, es que la curva de aprendizaje es bastante plana sobre todo si se ha trabajado previamente con otros frameworks de .NET como ASP.NET MVC.
Esta tecnología, al igual que otros frameworks de cliente como Angula o React también está basado en componentes.
Formas de implementar una solución Blazor
Blazor Server: El código HTML será generado desde servidor y enviado al cliente. La comunicación cliente-servidor será mediante SignalR de forma transparente para el desarrollador.
Blazor Web Assembly (WASM): Permite la construcción de SPA generando el código HTML directamente en el navegador. Tiene total independencia tecnológica de los servicios web que consuma (en el caso de que proceda).
Ventajas y desventajas de cada enfoque
- Blazor Server
- Ventajas:
- El código descargado en cliente es mucho menor y por la tanto la descarga de la aplicación es más rápida.
- La aplicación puede usar todas las herramientas de ASP.NET Core (sdk Net Core).
- Los clientes no necesitan ser muy potentes porque todo el trabajo operacional y lógico lo realiza el servidor, solo mostrará las respuestas del servidor.
- Desventajas:
- Latencia alta en UI. El tiempo de espera es más extenso que el habitual, ya que cada interacción que realiza el usuario con la aplicación implica una conexión con el servidor. Cada evento producido por una página es procesado en el servidor por SignalR.
- No existe soporte offline. Si la conexión entre el cliente y el servidor falla, la aplicación para por completo.
- Problemas con la escalabilidad. En aplicaciones muy demandantes no es muy apropiado ya que el servidor debe atender a muchas peticiones y poder mantener el estado de todas las peticiones demandadas por el cliente. Además, teniendo en cuenta el tráfico con Azure-SignalR puede aumentar bastante el precio.
- Ventajas:
- Blazor (WASM)
- Ventajas:
- No existe dependencia con el servidor. Una vez que la aplicación se descargue en el cliente, se vuelve totalmente independiente del servidor.
- No es requerido ASP.NET Core Server. No es necesario un servidor web para su ejecución, no como en un proyecto MVC.
- El trabajo en el cliente es offline. Los eventos del cliente son totalmente independientes del servidor.
- Desventajas:
- Dependencia del navegador. Es posible que haya navegadores que no permitan ejecutar el 100% de las aplicaciones.
- El tamaño de la App es pesado. Esto solo impacta en la descarga inicial.
- Web Assembly es necesario. Si el navegador no soporta Web Assembly la aplicación no funcionará.
- Ventajas:
¿Qué ocurre con Javascript?
Existen implementadas multitud de librerías ya escritas en Javascript, que podemos seguir utilizando también en Blazor.
A través del servicio IJSRuntime podremos trabajar con cualquier librería o código Javascript desde nuestro código C#.
Es decir, sin salirnos del marco .NET, se podrán realizar peticiones a funciones escritas en Javascript, pasando los datos que se requieran a dichas funciones y viceversa.
¿Te ha resultado interesante? Pues visita otros posts de nuestro blog como: Clean and Security Code, Accesibilidad digital en apps y webs, Tiempos de espera en Selenium
0 comentarios