AYUDA .NET

Blazor .NET 8 (Tutorial para desarrolladores)

Actualizado 24 de diciembre, 2023
Compartir:

Blazor, el framework de interfaz de usuario web completo, ha evolucionado significativamente con el lanzamiento de .NET 8.0. Esta actualización aporta diversas funciones y mejoras que permiten a los desarrolladores crear aplicaciones web interactivas y modernas con C# y . NET.

En este artículo, profundizaremos en los aspectos clave de Blazor .NET 8.0, explorando los nuevos modos de renderizado, las plantillas de proyecto, las mejoras en las herramientas y mucho más.

Blazor .NET 8 (Tutorial para desarrolladores): Figura 1

Entender los modos de renderizado de Blazor

Blazor en .NET 8.0 introduce tres modos de renderizado:

  1. Renderizado estático del servidor: Genera HTML estático para un rendimiento óptimo.
  2. Renderizado interactivo del servidor: Utiliza el tiempo de ejecución ASP.NET Core del lado del servidor para el renderizado inicial y la interactividad.
  3. Renderización interactiva de WebAssembly: Aprovecha el tiempo de ejecución de .NET WebAssembly en el cliente para la posterior renderización e interactividad.

El versátil renderizado automático interactivo

Uno de los aspectos más destacados es el modo de renderizado automático interactivo, que combina el renderizado del lado del servidor para el contenido con el posterior renderizado e interactividad en el cliente utilizando el tiempo de ejecución .NET WebAssembly. El resultado es una experiencia de inicio de la aplicación más rápida, lo que la convierte en una opción atractiva para los desarrolladores.

Presentación de la plantilla Blazor Web App

.NET 8.0 presenta la plantilla Blazor Web App, un punto de partida unificado que combina los puntos fuertes de los modelos de alojamiento Blazor Server y Blazor WebAssembly.

Esta plantilla incorpora nuevas funciones como la renderización estática del servidor, la renderización en streaming, la navegación mejorada y el manejo de formularios. La consolidación de plantillas de proyectos simplifica el proceso de desarrollo.

Inicializadores JS optimizados para aplicaciones web Blazor

Los inicializadores JS tradicionales se han sustituido por un nuevo conjunto para Blazor Web Apps, que ofrece un mejor control sobre tareas como la personalización del proceso de carga, los niveles de registro y otras opciones. Este cambio mejora la experiencia de desarrollo y se alinea con el objetivo de unificar los modelos de alojamiento en .NET 8.0.

Splitting Prerendering y guía de integración

Con el fin de ofrecer una cobertura más específica, las orientaciones sobre preprocesamiento e integración se han dividido en artículos separados. Este cambio pretende simplificar la comprensión y la aplicación, facilitando a los desarrolladores el seguimiento de las mejores prácticas.

Persistencia de estado sin esfuerzo en Blazor Web Apps

Blazor Web Apps ahora persiste automáticamente cualquier estado registrado a nivel de aplicación creado durante la prerrenderización. Esto elimina la necesidad de utilizar el Ayudante de etiqueta de persistencia de estado de componente, lo que agiliza el proceso de persistencia y lectura del estado de componente.

Mejora de la gestión de formularios y la vinculación de modelos

.NET 8.0 incorpora funciones mejoradas de gestión de formularios a los componentes Blazor, como la vinculación de modelos y la validación de datos. El marco de trabajo respeta los atributos del contrato de datos, lo que proporciona a los desarrolladores un mayor control sobre cómo se vinculan los datos del formulario al modelo. La introducción del soporte antifalsificación añade una capa adicional de seguridad a los envíos de formularios.

Navegación y manejo de formularios mejorados

La renderización estática del servidor en Blazor .NET 8.0 introduce una mejora significativa en la navegación de páginas y el manejo de formularios. Tradicionalmente, la página completa se actualizaba al navegar o enviar un formulario.

Con la función de navegación mejorada, Blazor intercepta la solicitud y realiza una solicitud de obtención, insertando el contenido de la respuesta renderizada sin problemas en el DOM del navegador. De este modo se evitan las actualizaciones completas de la página, lo que se traduce en cargas de página más rápidas y fluidas, al tiempo que se conserva una mayor parte del estado de la página.

La navegación mejorada se activa por defecto cuando el script Blazor (blazor.web.js) y puede activarse opcionalmente para formularios específicos. La nueva API de navegación mejorada permite a los desarrolladores actualizar la página actual mediante programación, lo que proporciona aún más control sobre la experiencia del usuario.

Renderizado de secuencias

Blazor .NET 8.0 introduce la renderización de secuencias, una potente función que mejora la experiencia del usuario en páginas que ejecutan tareas asíncronas de larga duración. Con la renderización en streaming, las páginas pueden renderizar contenido de marcador de posición mientras se realizan operaciones asíncronas.

Una vez completado, el contenido actualizado se transmite al cliente en la misma conexión de respuesta y se integra sin problemas en el DOM. Este enfoque garantiza que el diseño principal de la aplicación se renderice rápidamente y que la página se actualice en cuanto el contenido esté disponible.

Inyección de servicios con clave

Blazor ahora soporta la inyección de servicios con clave utilizando el atributo Inject. Las claves permiten el alcance del registro y consumo de servicios en escenarios de inyección de dependencias.

La nueva propiedad InjectAttribute.Key permite a los desarrolladores especificar la clave del servicio que se va a inyectar, lo que abre nuevas posibilidades de alcance del servicio.

Acceso a HttpContext como parámetro en cascada

Blazor .NET 8.0 introduce la posibilidad de acceder al HttpContext actual como parámetro en cascada desde un componente estático del servidor. Esta mejora es especialmente útil para inspeccionar y modificar cabeceras u otras propiedades relacionadas con el contexto HTTP.

Renderización de componentes Razor fuera de ASP.NET Core

Blazor .NET 8.0 abre la posibilidad de renderizar componentes Razor fuera del contexto de una petición HTTP. Esta flexibilidad permite a los desarrolladores renderizar componentes Razor directamente a una cadena o flujo independientemente del entorno de alojamiento ASP.NET Core.

Esta función es especialmente útil para situaciones en las que es necesario generar fragmentos HTML, como correos electrónicos o contenido estático de sitios web.

Secciones Soporte

En Blazor .NET 8.0, la introducción de los componentes SectionOutlet y SectionContent revoluciona la gestión de contenidos. Estos componentes permiten a los desarrolladores definir marcadores de posición en los diseños, que posteriormente se rellenan con páginas específicas.

Las secciones pueden referenciarse utilizando nombres únicos o identificadores de objeto, lo que proporciona flexibilidad y reutilización en la construcción de diseños web dinámicos.

Soporte para páginas de error

Blazor Web Apps en .NET 8.0 cuenta ahora con una sólida compatibilidad con páginas de error, lo que permite a los desarrolladores definir páginas de error personalizadas para su uso con el middleware de gestión de excepciones ASP.NET Core.

La página de error por defecto (Components/Pages/Error.razor) proporciona una experiencia de usuario coherente. Incluso cuando la interactividad está activada, la página de error se representa como un componente estático del servidor, lo que garantiza la estabilidad en situaciones de excepción.

QuickGrid: de experimental a esencial

QuickGrid, el componente de cuadrícula de alto rendimiento, ha dejado de ser experimental para convertirse en parte integrante del marco Blazor en .NET 8.

Este componente simplifica la visualización de datos tabulares al tiempo que ofrece potentes funciones como la ordenación, el filtrado, la paginación y la virtualización. Más información sobre QuickGrid en la documentación de ASP.NET Core Blazor QuickGrid.

Ruta a elementos con nombre

Blazor .NET 8.0 introduce soporte para el enrutamiento del lado del cliente para navegar directamente a elementos HTML específicos de una página utilizando fragmentos de URL estándar. Al especificar un identificador para un elemento HTML con el atributo id estándar, Blazor se desplaza sin problemas hasta ese elemento cuando el fragmento de URL coincide con el identificador del elemento.

Valores en cascada del nivel raíz

Blazor .NET 8.0 mejora los valores en cascada introduciendo valores en cascada a nivel de raíz que pueden registrarse para toda la jerarquía de componentes. Ahora se admiten valores en cascada con nombre y suscripciones para las notificaciones de actualización, lo que proporciona una mayor flexibilidad y control.

Virtualizar contenidos vacíos

El nuevo parámetro EmptyContent del componente Virtualize permite a los desarrolladores proporcionar contenido cuando el componente se ha cargado y el elemento está vacío o ItemsProviderResult<T>.TotalItemCount es cero.

Esto permite a los desarrolladores crear interfaces más intuitivas y fáciles de usar.

Gestión de circuitos y supervisión de SignalR

Blazor .NET 8.0 introduce la posibilidad de cerrar circuitos cuando no quedan componentes interactivos en el servidor. Esta optimización libera recursos del servidor y mejora el rendimiento general.

Además, ahora los desarrolladores pueden supervisar la actividad de los circuitos de entrada en las aplicaciones del lado del servidor mediante el método CreateInboundActivityHandler de CircuitHandler.

Mayor rendimiento en tiempo de ejecución con Jiterpreter

El Jiterpreter, una nueva función de tiempo de ejecución de .NET 8, introduce el Just-in-Time parcial. (JIT) soporte de compilación cuando se ejecuta en WebAssembly. Esto se traduce en una mejora del rendimiento en tiempo de ejecución, ofreciendo una experiencia más fluida a los usuarios que interactúan con las aplicaciones Blazor WebAssembly.

SIMD anticipada (AOT) y gestión de excepciones

La compilación AOT de Blazor WebAssembly ahora utiliza por defecto WebAssembly Fixed-width SIMD y WebAssembly Exception handling. Esta elección estratégica mejora significativamente el rendimiento en tiempo de ejecución, proporcionando una experiencia de usuario más eficiente y receptiva.

Empaquetado Webcil para una implantación fácil en la web

Blazor WebAssembly utiliza ahora Webcil, un empaquetado de ensamblados .NET fácil de usar en la web. Esto garantiza la compatibilidad en entornos que bloquean la descarga o el uso de archivos .dll, con lo que se resuelven los problemas de implantación. Webcil está activado por defecto para las aplicaciones Blazor WebAssembly.

Mejoras en la depuración de Blazor WebAssembly

La depuración de aplicaciones Blazor WebAssembly se ha simplificado en .NET 8. El depurador descarga ahora datos de símbolos desde ubicaciones configuradas en las preferencias de Visual Studio, lo que mejora la experiencia de depuración de las aplicaciones que utilizan paquetes NuGet.

Además, ahora se admite la depuración en Firefox, que requiere la configuración para la depuración remota y la conexión a través del proxy de depuración .NET WebAssembly.

Compatibilidad de la política de seguridad de contenidos (CSP)

Blazor WebAssembly en .NET 8.0 elimina la necesidad de habilitar el origen de secuencias de comandos unsafe-eval al especificar una política de seguridad de contenidos. (CSP). Esta mejora simplifica las configuraciones de seguridad, facilitando la aplicación de un CSP robusto para las aplicaciones Blazor WebAssembly.

Manejo de excepciones fuera del ciclo de vida del componente

La introducción de ComponentBase.DispatchExceptionAsync permite a los desarrolladores procesar excepciones lanzadas fuera de la pila de llamadas del ciclo de vida de un componente Razor.

Esta función permite que el código del componente trate las excepciones como si fueran excepciones de métodos del ciclo de vida, lo que garantiza un mecanismo de gestión de errores más coherente y controlado.

Presentación de Iron Suite

Iron Suite desarrollado por Iron Software, consta de siete útiles bibliotecas que permiten a los desarrolladores crear potentes aplicaciones Blazor.

Si desea añadir funcionalidad PDF, Excel o archivos CSV, reconocimiento de imagen a texto, generación y lectura de códigos de barras y QR, y comprimir o extraer archivos.

Iron Suite es la opción perfecta a tener en cuenta para el desarrollo web utilizando el modelo de alojamiento Blazor WebAssembly, o cualquier tecnología de Microsoft, incluyendo la aplicación Blazor WebAssembly, aplicación de servidor Blazor, ASP.NET Core MVC APP, ASP.NET core WEB APIs, o cualquier aplicación construida en tiempo de ejecución .NET ya sea cualquier versión.

Bibliotecas de Iron Suite

  1. IronPDF para crear, manipular y extraer datos de archivos PDF sin problemas.
  2. IronOCR (Reconocimiento óptico de caracteres) para extraer texto de imágenes escaneadas o PDF, mejorando la accesibilidad de los datos.
  3. IronXL para leer, escribir y manipular hojas de cálculo Excel con eficacia.
  4. IronBarcode para generar y leer códigos de barras en varios formatos, facilitando la codificación y recuperación de datos.
  5. IronQR para crear y leer códigos QR mediante aprendizaje automático
  6. IronWebscraper para extraer datos valiosos de los sitios web, mejorando las capacidades de las aplicaciones basadas en la web.
  7. IronZIP para comprimir y descomprimir archivos, agilizar el almacenamiento de datos y los procesos de transferencia.

    Blazor .NET 8 (Tutorial para desarrolladores): Figura 2

Lo que distingue a Iron Suite

  1. Acceda a toda la suite al precio de sólo dos productos individuales maximizando el valor de su inversión.
  2. Tanto si trabaja en Windows, macOS o Linux, Iron Suite garantiza la compatibilidad en todos los sistemas operativos. (casi) todas las plataformas.
  3. Disfrute de un viaje rápido de la descarga a la producción, con la posibilidad de estar en funcionamiento en tan sólo 5 minutos.
  4. Acceda a documentación detallada y ejemplos de todas las funciones, que le proporcionarán claridad y orientación durante todo el proceso de desarrollo.
  5. Un equipo dedicado de ingenieros está disponible 24/5 para ayudarle con cualquier pregunta, asegurando una experiencia de desarrollo sin problemas.
  6. Iron Suite cuenta con una política de devolución de 30 días sin preguntas, lo que proporciona confianza y tranquilidad.

Conclusión

En conclusión, el lanzamiento de Blazor .NET 8.0 marca un hito importante en la evolución del desarrollo de interfaces de usuario web completas con C# y .NET.

La introducción de nuevos modos de renderizado, la plantilla Blazor Web App, la navegación mejorada y un sinfín de características más lo convierten en una opción atractiva para los desarrolladores que deseen crear aplicaciones web modernas e interactivas.

Blazor .NET 8.0 también introduce funciones atractivas, como la mejora de la gestión de formularios, la renderización de secuencias y la posibilidad de inyectar servicios con clave, lo que añade profundidad y flexibilidad al desarrollo.

La introducción de Iron Suite por Iron Software complementa las capacidades de Blazor, ofreciendo un completo conjunto de herramientas para tareas relacionadas con documentos dentro del ecosistema .NET.

Blazor .NET 8.0 permite a los desarrolladores crear aplicaciones web sólidas y ricas en funciones utilizando Iron Suite.

La combinación de potentes funciones, rendimiento mejorado y el apoyo de una vibrante comunidad de desarrolladores posiciona a Blazor como una opción convincente para el desarrollo web moderno.

< ANTERIOR
C# KeyValuePair (Cómo funciona para desarrolladores)
SIGUIENTE >
BinaryKits.Zpl.Viewer (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.6 recién publicada

Comenzar prueba gratuita Descargas totales: 9,541,998
Ver licencias >