La .NET CONF 2024 acaba de terminar. Descubre las NOVEDADES de .NET 9 junto a los CAMBIOS que trae C# 13.
Puedes ver el contenido de este vídeo junto con su curso en el modo vídeo (similar a Udemy) si pulsas aquí.

Introducción a Blazor

Cuando creamos aplicaciones web, creamos nuestras aplicaciones en el servidor, ya sea con java, .net, node js, php o cualquier otro lenguaje o framework. Y posteriormente mostramos esta información e interactúa con el usuario a través del navegador utilizando javascript, ya sea puro, o algún framework como react o vue. 

 

Pero desafortunadamente hasta ahora no podíamos utilizar un lenguaje de back end (.net/java) para modificar el front end. Lo cual nos priva de un montón de beneficios como puede ser reutilizar el código o algunas librerías. 

Y aquí es donde entra blazor.

 

 

1 - Qué es Blazor?

Blazor, como otras muchas tecnologías, nos permite crear aplicaciones web interactivas, la diferencia es que en este caso la crearemos utilizando C#. 

 

Lo que quiere decir, que llegados a este punto, podemos escribir código en C#  tanto en el cliente, como en el servidor. Y la forma por la que conseguimos esto es porque compilamos el runtime de .Net en WebAssembly, el cual se ejecuta en el navegador y te permite ejecutar cualquier .dll, por lo tanto podemos correr aplicaciones escritas en C#.

 

Para poder ejecutar WebAssembly en el navegador lo hacemos a través de javascript (sin escribir una línea de javascript) y debido a ello, tenemos acceso a toda la api de javascript, por lo que podemos manipular el dom, crear websockets, utilizar la api de los ficheros, etc. 

 

como funciona blazor 1

 

Antes de pasar al siguiente punto, debo indicar que para ejecutar aplicaciones blazor no necesitamos instalar ningún plugin, no es como el viejo silverlight o flash. 

Y debido a que es C# podemos reutilizar librerías que tengamos en nuestro back end, en el front end. Si la librería es compatible con .net standard.

 

Cabe destacar que Blazor (y C#) es un lenguaje fuertemente tipado lo que nos permite encontrar errores en tiempo de compilación.

Un gran beneficio de ejecutar Blazor o aplicaciones web assembly en el navegador es su rendimiento, ya que es casi nativo, pero para ejecutar los métodos como podría ser OnClick blazor llama a través de mono.wasam a javascript que es el que ejecuta el onClick.

 

Cómo funciona Blazor

 

2 - Tipos de aplicaciones Blazor

Para ejecutar aplicaciones blazor, tenemos dos opciones o modos:

  • Blazor en el servidor
  • Blazor WebAssembly

 

2.1 - Blazor en el servidor

Cuando utilizamos blazor en el servidor lo que estamos haciendo es correr la aplicación completa en el servidor, y eso incluye todas las acciones que el usuario pueda realizar, como clicks, abrir y cerrar pop ups etc, para que esta información sea fluida se utiliza un fichero llamado blazor.server.js el cual usa SignalR para comunicarse con el servidor. 

 

Otra parte a tener en cuenta es que cuando utilizamos blazor servidor y un usuario entra en nuestra web, esta interacción se mantiene en memoria en el servidor hasta que el usuario cierra la ventana.

 

Blazor en el servidor

 

Un gran beneficio de ejecutar nuestras aplicaciones blazor en el servidor es que el tamaño de la web, osea lo que descarga el usuario, es mucho menor, lo que permite que la aplicación sea muy muy rápida. Podemos debuguear mucho mejor. Y finalmente permite ejecutar nuestras aplicaciones en navegadores antiguos que no soportan WebAssembly (internet explorer 6, etc).

 

Pero desgraciadamente también hay puntos negativos

Lo obvio es que como utiliza SignalR todo el tiempo, el servidor tiene que estar funcionando todo el tiempo, y cualquier sobrecarga del servidor que lo haga ir más despacio afectará en gran medida a nuestros usuarios.

Así como tener todos los usuarios en memoria, pero esto no debería ser un problema muy grande, desde MS confirman que con una aplicación blazor de servidor podemos tener miles de usuarios simultáneos sin problemas.

Finalmente serverless no es posible ya que necesitamos tener ASP.NET Core server  para ejecutar la aplicación. 

 

 

2.2 - Blazor WebAssembly

La creación de aplicaciones web blazor con WebAssembly nos permite que corra el código en el navegador del cliente. Cuando la aplicación comienza, descarga todos los ficheros en el navegador (HTML, CSS, JS) y por supuesto descargará los .dll que contiene nuestra aplicación C# así como el runtime de .NET

De esta forma convertimos el código en WebAssembly y los navegadores lo pueden leer y entender de forma nativa.

 

Una vez la aplicación comienza, podemos ponerla a funcionar de forma offline ya que este tipo de aplicaciones están creadas de “ficheros estáticos”, esta funcionalidad nos permite  tener progressive web apps (PWA)

Nota: Sí, podemos consumir API’s en otro vídeo más adelante en el curso veremos cómo.

blazor webassembly

Por supuesto como la versión de servidor, blazor WebAssembly tiene ciertos beneficios.

 

El más remarcable es que es muy rápido, con una velocidad prácticamente nativa al estar “escrito” en WebAssembly.

El hecho de poder trabajar de forma offline y como PWA nos permite no estar conectado al servidor, al menos una vez la aplicación ha cargado claro. 

Esta versión si nos permite hacer un deploy de las aplicaciones en forma de serverless

 

Como contra más grande es que blazor corre en un sandbox de javascript y estás limitado a las reglas de ese sandbox (el framework lo hace todo por detrás de forma automática).

El navegador realiza todo el trabajo, esto normalmente será un beneficio, pero puede darse un caso en concreto donde necesites realizar operaciones computacionales muy intensas.

 

Como he indicado antes, Blazor WebAssembly descarga TODOS los ficheros en el navegador, y todos es todos, lo cual puede llevar a una primera carga algo pesada, lo que implica que esa primera carga, va a llevar más tiempo. 

Con conexiones modernas no es un problema, pero si puede llegar a serlo con conexiones más antiguas. 

Y si el navegador es muy antiguo, NO podemos ejecutar blazor WebAssembly, debemos ejecutar blazor servidor. 

 

 

3 - Crear una aplicación en blazor

Para crear una aplicación en blazor, únicamente debemos crear un nuevo proyecto y seleccionar blazor, una vez seleccionamos nos dice que debemos especificar el tipo, aquí deberemos indicar si deseamos blazor en el servidor o blazor webasembly.

 

Para poder utilizar blazor web assembly, debemos tener instalado el SDK de .net con la versión de 3.1.3 o más. 

vs elegir blazor app

En mi caso personal voy a elegir Blazor WebAssembly, y este proyecto va a ser el front end de el otro curso en el que hemos visto web API.

 

Y cuando tenemos nuestro proyecto, vemos que tiene una estructura muy similar a la de los proyectos web que podemos crear en ASP, de hecho, los ficheros son .razor

 

Nota: Por defecto cuando creamos una aplicación blazor, nos viene con una estructura por defecto. Además utiliza bootstrap para el CSS.

new proyect blazor

 

Y si pulsamos el play en visual studio, podremos ver la aplicación funcionar.

blazor example app

Como podemos observar en el inspector nos decarga tanto blazor.WebAssembly.js como los .dll que necesitamos.

 

 

Conclusión

En este post hemos visto una introducción a Blazor. Cuales son las diferencias entre blazor en el servidor y blazor WebAssembly, y un ejemplo de cómo crear una aplicación Blazor en Visual studio, la cual será parte de la aplicación “Web API”.

 


Uso del bloqueador de anuncios adblock

Hola!

Primero de todo bienvenido a la web de NetMentor donde podrás aprender programación en C# y .NET desde un nivel de principiante hasta más avanzado.


Yo entiendo que utilices un bloqueador de anuncios como AdBlock, Ublock o el propio navegador Brave. Pero te tengo que pedir por favor que desactives el bloqueador para esta web.


Intento personalmente no poner mucha publicidad, la justa para pagar el servidor y por supuesto que no sea intrusiva; Si pese a ello piensas que es intrusiva siempre me puedes escribir por privado o por Twitter a @NetMentorTW.


Si ya lo has desactivado, por favor recarga la página.


Un saludo y muchas gracias por tu colaboración

© copyright 2024 NetMentor | Todos los derechos reservados | RSS Feed

Buy me a coffee Invitame a un café