Modelos de hospedaje ASP.NET Core Blazor

Blazor Server frente a Blazor WebAssembly

M. Ramadhan
Feb 11 · 6 min read

Blazor ofrece dos modelos de alojamiento:
(1) Blazor Server es del lado del servidor.
(2) Blazor WebAssembly es del lado del cliente.

Ambos tienen ventajas y desventajas. En este artículo, se analiza la creación de una web con la plantilla ASP.NET Core 3.1 Blazor integrada para cada modelo de hospedaje. Para eso, ASP.NET Core debe estar instalado en la computadora.

Modelo de alojamiento de servidor Blazor

En este modelo de alojamiento, la aplicación se ejecuta en el servidor. La conexión entre el cliente y el servidor usa SignalR. Cuando aparece un evento en el cliente, por ejemplo, se hace clic en un botón, la información sobre el evento se envía al servidor a través de la conexión SignalR. El servidor maneja los eventos y calcula las diferencias HTML entre los eventos anteriores y posteriores. El HTML completo ya no se envía al cliente; solo la diferencia se envía al cliente a través de la conexión SignalR. Luego, el navegador actualiza la interfaz de usuario. Debido a que solo se envía la diferencia, el proceso de actualización de la interfaz es más rápido y responde mejor.

Ventajas del modelo de alojamiento de servidor Blazor

  • La aplicación se carga mucho más rápido ya que el tamaño de la descarga es significativamente menor que el de una aplicación Blazor WebAssembly.
  • La aplicación aprovecha al máximo las capacidades del servidor, incluido el uso de cualquier API compatible con .NET Core.
  • Los clientes con recursos limitados aún pueden funcionar. Incluso se pueden utilizar navegadores que no sean compatibles con WebAssembly.
  • .NET Core en el servidor se usa para ejecutar la aplicación, por lo que las herramientas de .NET existentes, como la depuración, funcionan como se esperaba.
  • Es más seguro porque el código de la aplicación .NET/C#, incluido el código del componente de la aplicación, está en el servidor, no se descarga en el cliente.

Desventajas del modelo de alojamiento de servidor Blazor

  • Requiere un servidor ASP.NET Core completo para alojar la aplicación. Los escenarios de implementación sin un servidor no son posibles.
  • No hay soporte fuera de línea; siempre se necesita una conexión activa al servidor. Si el servidor no funciona, la aplicación deja de funcionar.
  • Dado que cada interacción del usuario implica un viaje de ida y vuelta al servidor, el tiempo de demora es mayor en comparación con el alojamiento Blazor WebAssembly.
  • La escalabilidad puede ser un desafío, especialmente para aplicaciones con muchos usuarios, ya que el servidor debe administrar múltiples conexiones de cliente y manejar el estado del cliente.

Creación de una aplicación de servidor Blazor

  • Abrir Visual Studio 2019
  • Haga clic Create a new project para crear un nuevo proyecto.
  • Seleccionar Blazor App, hacer clic Next.
  • El nombre del proyecto predeterminado, BlazorApp1, se puede cambiar, por ejemplo, con el nombre BlazorServerApp.
  • Haga clic para especificar la carpeta del proyecto.
  • Haga clic en Create.
  • De las dos opciones de modelos de alojamiento, elija Blazor Server App.
  • Haga clic en Create.

Ejecución de la aplicación Blazor Server

  • La parte derecha de la pantalla es una lista de archivos y carpetas, que son la estructura del proyecto ASP.NET Core Blazor Server.
  • Seleccione el menú Debug|Start Debugging o presione F5 para depurar y mostrar la homepage.

Modelo de alojamiento de Blazor WebAssembly

En este modelo de alojamiento, la aplicación se ejecuta directamente en el navegador mediante WebAssembly. Todas las necesidades, es decir, aplicaciones compiladas, dependencias y tiempos de ejecución .NET se descargan del servidor al navegador del cliente. Una aplicación Blazor WebAssembly puede ejecutarse completamente en el lado del cliente sin conexión al servidor. Si es necesario, se puede realizar una configuración opcional para que la aplicación Blazor WebAssembly pueda interactuar con el servidor a través de la red mediante llamadas API o SignalR.

Ventajas del modelo de alojamiento de Blazor WebAssembly

  • Una aplicación Blazor WebAssembly se puede ejecutar por completo en la máquina cliente. Una vez descargada la aplicación, no se requiere una conexión al servidor.
  • El trabajo se transmite de servidor a cliente. Los recursos y capacidades del cliente se utilizan al máximo.
  • No se requiere un servidor web ASP.NET Core como host de la aplicación. Los escenarios para la implementación sin un servidor son posibles, por ejemplo, usando CDN (Content Delivery Network).

Desventajas del modelo de alojamiento Blazor WebAssembly

  • Mayor tamaño de descarga, tarda más en cargarse del servidor al cliente.
  • Las capacidades del navegador limitan la aplicación, ya que la aplicación se ejecuta completamente en el navegador del cliente.
  • Requiere hardware y software de cliente adecuados. Por ejemplo, se requiere al menos un navegador compatible con WebAssembly.

Creación de una aplicación Blazor WebAssembly

  • Realice los pasos descritos anteriormente para crear la aplicación Blazor Server.
  • Cuando aparezca la siguiente pantalla:
  • Escriba BlazorWebAssemblyApp como nombre del proyecto.
  • Haga clic para especificar la carpeta del proyecto.
  • Haga clic en Create.
  • A continuación, aparece la siguiente pantalla:
  • Seleccione Blazor WebAssembly App, luego haga clic Create.

Ejecución de la aplicación Blazor WebAssembly

  • La parte derecha de la pantalla es una lista de archivos y carpetas, que son la estructura del proyecto ASP.NET Core Blazor WebAssembly.
  • Seleccione el menú Debug|Start Without Debugging o presione Ctrl F5 para omitir el proceso de depuración y mostrar la homepage.

Según la comparación de los dos modelos de alojamiento anteriores, en mi opinión, si la aplicación web es pequeña y la seguridad no es tan importante, vale la pena considerar el modelo de alojamiento Blazor WebAssembly. Por el contrario, si la aplicación web es grande y requiere más seguridad, el modelo de alojamiento de Blazor Server es más adecuado. ¿Estar de acuerdo?

Referencias

Informática

“Cualquiera que nunca haya cometido un error nunca ha probado nada nuevo.” Albert Einstein

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store