Interactividad Blazor

Blazor te permite lanzar un portal en uno de tres modos de interactividad: Servidor, WebAssembly o Auto. El modo elige cómo se ejecutan los componentes interactivos (a través de una conexión SignalR en el servidor, tal como compilado .NET en el navegador, o ambos) y decide qué se genera en el diseño de tu proyecto. Power Portals Pro funciona correctamente en los tres; Las diferencias están en la forma de despliegue y el cableado del proyecto, no en las características del marco.

Los Tres Modos

Servidor

Los componentes interactivos se ejecutan en el servidor. Cada usuario conectado mantiene una conexión SignalR abierta de vuelta al anfitrión, y cada evento de la interfaz hace viajes de ida y vuelta al servidor.

Compensaciones:

WebAssembly

Los componentes interactivos se ejecutan en el navegador como código compilado .NET. La función del servidor se reduce a servir archivos estáticos y los endpoints HTTP API del framework bajo /api/auth/* y /api/*.

Compensaciones:

Auto

La primera pintura proviene del servidor (para que el usuario vea el contenido inmediatamente) y el tiempo de ejecución cambia de forma transparente a WebAssembly una vez que el paquete cliente termina de descargarse. Auto = Primero el servidor, WebAssembly después, en las mismas rutas.

Compensaciones:

Propina

Este sitio de documentación funciona en modo Automático. Abre la pestaña de red de las herramientas de desarrollo del navegador en la primera carga y verás que el HTML renderizado por el servidor llega primero, luego el flujo del paquete WASM en uno o dos segundos — tras lo cual las navegaciones dejan de llegar al servidor para HTML.

Cuál elegir

Reglas generales cuando no hay una restricción específica que obligue a elegir:

Chuletas

¿Qué cambia entre los tres modos, archivo por archivo? Usa esto como referencia al comparar un proyecto generado con una de las plantillas, o al buscar una discrepancia tras un cambio manual.

Diseño del proyecto

Los tres modos generan un proyecto host de servidor Y un proyecto hermano .Client . Lo que difiere es el .ClientSDK de 's y si realmente está compilado a un paquete WebAssembly.

.csproj Diferencias

El .Client SDK del proyecto cambia, y los paquetes de framework específicos de WebAssembly solo aparecen cuando el host realmente ejecuta WASM:

Referencias adicionales de paquetes cuando WebAssembly o Auto están activos:

Server Program.cs — Registro de servicios

AddRazorComponents() recoge los pares de componentes apropiados en el modo de renderizado según los métodos de construcción encadenados:

Server Program.cs — Mapeo de puntos finales

MapRazorComponents<App>() encadena los extremos de modo de renderizado correspondientes:

App.razor — Política de renderizado por ruta

El PageRenderMode getter en App.razor decide qué renderizador utiliza cada ruta. Los anfitriones de servidor devuelven el servidor en todas partes; Los hosts de WebAssembly y Auto tienen que fijar explícitamente las /Account/* rutas para que la resolución solo IAuthService de WASM:

Por qué está fijado /Account/*

El primer paint de Auto se ejecuta bajo el renderizador del servidor, pero las páginas IAuthService de cuenta solo están registradas en el grafo DI del cliente WASM. Sin el pin explícito a InteractiveWebAssemblyRenderMode(prerender: false), un host automático no resuelve [Inject] IAuthService en el prerenderizado de sesión en frío. prerender: false se salta completamente el paso de prerenderizado en el lado del servidor, por lo que la página solo se renderiza una vez, en el entorno de ejecución WASM.

. Cliente/Program.cs — Solo cuando es interactivo

Los hosts solo de servidor no tienen .Client/Program.cs una (es .Client una biblioteca de clase Razor). Los hosts WebAssembly y Auto incluyen este archivo, que configura el entorno de ejecución WASM, registra el HttpClient reenvío de credenciales de cookies, registra los servicios cliente WASM de Power Portals Pro y pre-busca la localización transversal al inicio:

Páginas de identidad / cuenta

Power Portals Pro incluye dos conjuntos paralelos de páginas de cuenta — una para cada contexto de renderizado. El conjunto que está en tu proyecto depende del modo del anfitrión:

Próximos pasos

Si ya tienes un proyecto en un modo y quieres convertir a otro, consulta la página de Interactividad de Switch Blazor para los cambios archivo por archivo.