Noticias Programación

Vaadin llega a la versión 21

El versátil marco de pila completo basado en Java que es un competidor de Spring MVC continúa innovando con su nueva versión de v21. Pero primero, ¿qué es exactamente Vaadin?

Javascript para el desarrollo front-end ya no es una propuesta de todo o nada; y no solo Javascript. El desarrollo web, incluso en el nivel más básico, requiere el conocimiento de al menos tres estándares web; el de HTML, CSS y Javascript. Digo «al menos» ya que en la parte superior se pueden agregar cosas como WebSockets, Web Workers y el resto, y la pila sigue creciendo.

El problema es más frecuente en un entorno empresarial donde tiene un grupo de dinosaurios Java, desarrolladores de errores, que son buenos para definir la lógica empresarial y crear aplicaciones sólidas, pero cuando se trata de la web y el front-end, pierden el sueño. . Esto también se ilustra en la adopción de Vaadin: en un 4% según el Informe del ecosistema JVM de Snyk 2021 y solo en un 2% según el Informe estatal de Java 2021 de Jetbrain.

Pero ese 2-4% representa el 40% de Fortune 500. Las empresas que se sabe que utilizan Vaadin en la actualidad incluyen: Disney, Wells Fargo, Bank of America, GlaxoSmithKline, Raytheon, JP Morgan Chase, Volkswagen America, Rockwell Automation, National Public Radio (NPR ) y muchos otros.

Por lo tanto, los marcos que ocultan esta complejidad y usan un solo lenguaje para escribir tanto el back-end como el front-end están en aumento. Descubrimos el lado .NET de la historia en el artículo «Curso intensivo de Blazor WebAssembly», donde descubrí que

Blazor es una forma de escribir aplicaciones web del lado del servidor y del lado del cliente con .NET y C # en lugar de usar Javascript en el front-end. El código de Blazor se compila en WebAssembly, no en Javascript.

La forma en que funciona es que un tiempo de ejecución .Net compilado en WebAssembly se descarga en el navegador del usuario, que luego ejecuta la aplicación Blazor en la misma caja de arena que ejecuta JavaScript. ¡Y gracias a esta magia de WASM, puede ejecutar aplicaciones intensivas, incluso juegos C ++, dentro del navegador!

La contraparte de Java, si excluye a Blazor de la ecuación, es Vaadin. Vaadin, la palabra finlandesa para «reno», también te permite escribir la capa de presentación en Java, renunciando a todo el drama de Javascript.

Vaadin en sus primeros días usó GWT bajo el capó para compilar código Java en JavaScript. Ya no. A partir de la versión 10, se compila en Web Components ya través de su motor JavaScript del lado del cliente comunica los eventos que suceden en el lado del navegador al lado del servidor, que decide cómo proceder, por ejemplo, modificando el DOM; es decir, Vaadin hace el lado del servidor de aplicaciones y este esfuerzo del lado del servidor se conoce con el nombre de Vaadin Flow. Mantenga este pensamiento por un momento porque hay una razón para mencionarlo.

vaadin1

Publicidad:

En cualquier caso, no tiene que pensar en el lado del servidor ni en el lado del cliente; solo tiene que seguir desarrollando en su Java favorito como lo hizo antes y dejar que el marco maneje ambos lados de la ecuación.

Como se mencionó, Vaadin solo tiene un 4% de adopción a pesar de su versatilidad. entonces cual es la alternativa? Spring MVC, que actualmente domina el mercado, con un motor de plantillas como Thymleaf + Jquery, Vue.js, etc. Pero al ir a Spring MVC, tendrá que dominar una curva de aprendizaje empinada que incluye JavaScript. Vaadin, por otro lado, ofrece temas personalizables listos para usar (colecciones de diseños para componentes) que se pueden cambiar sin afectar la lógica empresarial:

Formar componentes de entrada, como casillas de verificación, fecha y
selectores de tiempo, campos de texto y contraseña y carga de archivos
(con barra de progreso). Componentes de visualización e interacción, como cuadros de diálogo
y ventanas emergentes de notificación, cuadrículas de datos, pestañas, íconos y más. Componentes de diseño, incluido el diseño completo de la aplicación
plantillas con opciones de acceso, división y diseño de formularios.

Además, Vaadin requiere menos configuración que un proyecto Spring MVC para comenzar. Sin embargo, no son mutuamente excluyentes, también pueden trabajar juntos. Consulte «Uso de Vaadin con Spring MVC» para obtener más información. Por supuesto, ambos van de la mano con Spring Boot.

Entonces, ¿el flujo del lado del servidor es la respuesta a todos los problemas? Las últimas versiones de Vaadin han introducido otra forma de construir el front-end, la de Fusion. En un esfuerzo por atraer a los desarrolladores que trabajan con Angular, Fusion le permite ejecutar una lógica de interfaz de usuario receptiva en TypeScript mientras sigue escribiendo el backend en Java.

Hay una buena comparación entre los frameworks frontend
Vaadin y React, Angular y Vue, mientras que también hay una descripción general de las diferencias entre Flow y Fusion en la introducción de Vaadin Flow y Fusion:

Si es un desarrollador de Java que confía en Flow, tenga la seguridad de que puede continuar con normalidad e ignorar Fusion por completo. Si es un desarrollador frontend que acaba de descubrir Vaadin, Fusion es un excelente punto de entrada a la plataforma. Si trabaja en un equipo completo y necesita lo mejor de ambos mundos, puede usar ambas opciones indistintamente de inmediato.

Con todas esas configuraciones de fondo para proporcionar contexto fuera del camino, centrémonos ahora en lo que trae la versión 21:

Auxiliares de seguridad de flujo / resorte
Como dicen, ayudantes que reducen el estándar de la implementación de seguridad de Spring en su flujo de trabajo. Flow / RouteScope para la integración de Flow Spring
Con esta función, puede compartir beans dentro de una ruta entre diferentes subpartes de la interfaz de usuario, de modo que pueda usar DI para inyectar los beans en las clases de ruta y controlar cuándo se comparte el estado y cuándo se limpia. Generación de código desde Fusion / Java a Typescript.
Un tipo que acepta valores NULL en Java también se ha hecho opcional en TypeScript para que su valor pueda ser indefinido. Motor de colaboración Flow / Vaadin, colaboración en tiempo real en aplicaciones Vaadin
Utilice la nueva API de PresenceManager para mostrar a los usuarios quién está trabajando en qué, en tiempo real. Nuevas funciones en varios componentes de Vaadin, como la exportación de gráficos como datos de imagen SVG o un nuevo tipo de evento Grid. Las correcciones de errores habituales

La hoja de ruta del proyecto revela que está muy vivo con un ecosistema vibrante y de apoyo a su alrededor. Hay algunas cosas interesantes sobresalientes en esa hoja de ruta, pero la que merece atención es Stateless Fusion. Vaadin Flow usa mucho las sesiones del lado del servidor y Fusion hace lo mismo. Este cambio significaría que Fusion no crearía ni almacenaría información en las sesiones del servidor, lo que permitiría un escalado horizontal más fácil de las instancias y una alta disponibilidad de los servicios.

Entonces, dado todo lo anterior, depende de usted decidir si vale la pena dejar de lado Spring MVC, incluso por un breve momento, para darle una oportunidad a Vaadin. Y para facilitar esta transición, hay un nuevo libro sobre Apress de Alejandro Duarte del equipo de Vaadin, Practical Vaadin: Developing Web Applications with Java.

Publicidad:

También puede gustarte...