- 12/01/2020
- 6 minutos de lectura
-
- a
- s
- y
- g
- p
-
+1
«ley de Atwood: cualquier aplicación que pueda ser escrita en JavaScript, eventualmente será escrita en JavaScript.,»
– Jeff Atwood
hay dos enfoques generales para crear aplicaciones web hoy en día: aplicaciones web tradicionales que realizan la mayor parte de la lógica de la aplicación en el servidor, y aplicaciones de una sola página (SPAs) que realizan la mayor parte de la lógica de la interfaz de usuario en un navegador web, comunicándose con el servidor web principalmente utilizando API web. Un enfoque híbrido también es posible, el más simple es alojar una o más subaplicaciones ricas como SPA dentro de una aplicación web tradicional más grande.,
Use aplicaciones web tradicionales cuando:
-
los requisitos del lado del cliente de su aplicación sean simples o incluso de solo lectura.
-
Su aplicación necesita funcionar en navegadores sin soporte JavaScript.
-
Su equipo no está familiarizado con las técnicas de desarrollo de JavaScript o TypeScript.
Use un SPA cuando:
-
Su aplicación debe exponer una interfaz de usuario rica con muchas características.
-
Su equipo está familiarizado con el desarrollo de JavaScript, TypeScript o Blazor WebAssembly.,
-
Su aplicación ya debe exponer una API para otros clientes (internos o públicos).
además, los marcos de SPA requieren una mayor experiencia en arquitectura y seguridad. Experimentan una mayor rotación debido a las actualizaciones frecuentes y los nuevos marcos que las aplicaciones web tradicionales. Configurar procesos de compilación e implementación automatizados y utilizar opciones de implementación como contenedores puede ser más difícil con las aplicaciones SPA que con las aplicaciones web tradicionales.
Las mejoras en la experiencia del usuario posibles gracias al enfoque de SPA deben sopesarse con estas consideraciones.,
Blazor
ASP.NET Core incluye un modelo para construir interfaces de usuario ricas, interactivas y componibles llamado Blazor. Blazor server-side permite a los desarrolladores crear UI con C# y Razor en el servidor y para que la UI se conecte interactivamente al navegador en tiempo real utilizando una conexión SignalR persistente. Blazor WebAssembly introduce otra opción para las aplicaciones Blazor, que les permite ejecutarse en el navegador utilizando WebAssembly. Debido a que es. NET real que se ejecuta en WebAssembly, puede reutilizar el código y las bibliotecas de las partes del lado del servidor de su aplicación.,
Blazor proporciona una nueva y tercera opción a considerar al evaluar si se debe construir una aplicación web puramente renderizada por servidor o un SPA. Puede crear comportamientos ricos del lado del cliente, como SPA, usando Blazor, sin la necesidad de un desarrollo significativo de JavaScript. Las aplicaciones Blazor pueden llamar a las API para solicitar datos o realizar operaciones del lado del servidor. Pueden interoperar con JavaScript cuando sea necesario para aprovechar las bibliotecas y marcos de JavaScript.,
considere construir su aplicación web con Blazor cuando:
-
Su aplicación debe exponer una interfaz de usuario enriquecida
-
Su equipo se siente más cómodo con el desarrollo de.NET que con el desarrollo de JavaScript o TypeScript
Si tiene una aplicación de formularios Web existente que está considerando migrar a. net Core o al último. NET, puede revisar el libro electrónico gratuito, Blazor for Web Forms Developers para ver si tiene sentido considerar migrarlo a Blazor.
para obtener más información sobre Blazor, consulte Introducción a Blazor.,
cuándo elegir aplicaciones web tradicionales
la siguiente sección es una explicación más detallada de las razones mencionadas anteriormente para elegir aplicaciones web tradicionales.
Su aplicación tiene requisitos simples, posiblemente de solo lectura, del lado del cliente
Muchas aplicaciones web son consumidas principalmente de solo lectura por la gran mayoría de sus usuarios. Las aplicaciones de solo lectura (o en su mayoría de lectura) tienden a ser mucho más simples que aquellas aplicaciones que mantienen y manipulan una gran cantidad de estado., Por ejemplo, un motor de búsqueda puede consistir en un único punto de entrada con un cuadro de texto y una segunda página para mostrar los resultados de la búsqueda. Los usuarios anónimos pueden hacer solicitudes fácilmente, y hay poca necesidad de lógica del lado del cliente. Del mismo modo, la aplicación pública de un blog o sistema de gestión de contenido generalmente consiste principalmente en contenido con poco comportamiento del lado del cliente. Tales aplicaciones se construyen fácilmente como aplicaciones web tradicionales basadas en servidores, que realizan lógica en el servidor web y renderizan HTML para mostrarlo en el navegador., El hecho de que cada página única del sitio tiene su propia URL que puede ser marcada e indexada por los motores de búsqueda (por defecto, sin tener que agregar esta funcionalidad como una característica separada de la aplicación) también es un claro beneficio en tales escenarios.
Su aplicación debe funcionar en navegadores sin soporte de JavaScript
Las aplicaciones Web que necesitan funcionar en navegadores con soporte de JavaScript limitado o nulo deben escribirse utilizando flujos de trabajo de aplicaciones web tradicionales (o al menos ser capaces de recurrir a dicho comportamiento)., Los SPAs requieren JavaScript del lado del cliente para funcionar; si no está disponible, los SPAs no son una buena opción.
Su equipo no está familiarizado con las técnicas de desarrollo de JavaScript o TypeScript
si su equipo no está familiarizado con JavaScript o TypeScript, pero está familiarizado con el desarrollo de aplicaciones web del lado del servidor, entonces probablemente podrán entregar una aplicación web tradicional más rápidamente que un SPA., A menos que aprender a programar SPAs sea un objetivo, o que se requiera la experiencia del usuario proporcionada por un SPA, las aplicaciones web tradicionales son una opción más productiva para los equipos que ya están familiarizados con su construcción.
cuándo elegir SPAs
la siguiente sección es una explicación más detallada de cuándo elegir un estilo de desarrollo de aplicaciones de una sola página para su aplicación web.,
Su aplicación debe exponer una interfaz de usuario rica con muchas características
los SPAs pueden admitir una funcionalidad rica del lado del cliente que no requiere recargar la página a medida que los usuarios realizan acciones o navegan entre áreas de la aplicación. Los SPAs pueden cargar más rápidamente, obtener datos en segundo plano y las acciones de los usuarios individuales son más receptivas, ya que las recargas de página completa son raras. Los SPAs pueden admitir actualizaciones incrementales, guardando formularios o documentos parcialmente completados sin que el usuario tenga que hacer clic en un botón para enviar un formulario., Los SPAs pueden admitir comportamientos ricos del lado del cliente, como arrastrar y soltar, mucho más fácilmente que las aplicaciones tradicionales. Los SPAs se pueden diseñar para ejecutarse en modo desconectado, realizando actualizaciones a un modelo del lado del cliente que finalmente se sincronizan de nuevo con el servidor una vez que se restablece la conexión. Elija una aplicación estilo SPA si los requisitos de su aplicación incluyen una funcionalidad rica que va más allá de lo que ofrecen los formularios HTML típicos.,
con frecuencia, los SPAs necesitan implementar funciones integradas en las aplicaciones web tradicionales, como mostrar una URL significativa en la barra de direcciones que refleje la operación actual (y permitir a los usuarios marcar o enlazar profundamente a esta URL para volver a ella). Los SPAs también deben permitir a los usuarios usar los botones Atrás y adelante del navegador con resultados que no les sorprenderán.
Su equipo está familiarizado con el desarrollo de JavaScript y/o TypeScript
escribir SPAs requiere familiaridad con JavaScript y / o TypeScript y las técnicas y bibliotecas de programación del lado del cliente., Su equipo debe ser competente para escribir JavaScript moderno utilizando un marco de SPA como Angular.
su aplicación ya debe exponer una API para otros clientes (internos o públicos)
si ya admite una API web para su uso por otros clientes, puede requerir menos esfuerzo crear una implementación de SPA que aproveche estas API en lugar de reproducir la lógica en forma del lado del servidor. Los SPAs hacen un amplio uso de las API web para consultar y actualizar los datos a medida que los usuarios interactúan con la aplicación.,
Al elegir Blazor
La siguiente sección es una explicación más detallada de elegir Blazor para su aplicación web.
Su aplicación debe exponer una interfaz de usuario enriquecida
Al igual que los SPAs basados en JavaScript, las aplicaciones Blazor pueden admitir un comportamiento de cliente enriquecido sin recargas de página. Estas aplicaciones son más sensibles a los usuarios, obteniendo solo los datos (o HTML) necesarios para responder a una interacción de usuario dada. Diseñadas correctamente, las aplicaciones blazor del lado del servidor se pueden configurar para ejecutarse como aplicaciones Blazor del lado del cliente con cambios mínimos una vez que esta función sea compatible.,
Su equipo se siente más cómodo con el desarrollo de. NET que con el desarrollo de JavaScript o TypeScript
muchos desarrolladores son más productivos con. NET y Razor que con lenguajes del lado del cliente como JavaScript o TypeScript. Dado que el lado servidor de la aplicación ya se está desarrollando con.NET, el uso de Blazor garantiza que cada desarrollador de. NET en el equipo pueda comprender y potencialmente construir el comportamiento del front-end de la aplicación.,
tabla de decisiones
la siguiente tabla de decisiones resume algunos de los factores básicos a considerar al elegir entre una aplicación web tradicional, un SPA o una aplicación Blazor.,