ZK (marco) - ZK (framework)

ZK
Desarrollador (es) zkoss .org
Lanzamiento estable
9.6.0 / 10 de agosto de 2021 ; Hace 33 dias ( 08/10/2021 )
Repositorio
Sistema operativo Multiplataforma ( JVM )
Escribe Marco web Ajax
Licencia LGPL / ZOL / Comercial
Sitio web zkoss .org

ZK es un marco de aplicación web Ajax de código abierto , escrito en Java , que permite la creación de interfaces gráficas de usuario para aplicaciones web con pocos conocimientos de programación necesarios.

El núcleo de ZK consiste en un mecanismo impulsado por eventos basado en Ajax , más de 123 componentes basados ​​en XUL y 83 XHTML , y un lenguaje de marcado para diseñar interfaces de usuario. Los programadores diseñan las páginas de sus aplicaciones en componentes XUL / XHTML con muchas funciones y las manipulan en función de los eventos desencadenados por la actividad del usuario final. Es similar al modelo de programación que se encuentra en las aplicaciones de escritorio basadas en GUI.

ZK utiliza un enfoque centrado en el servidor en el que el motor realiza automáticamente la sincronización de contenido de los componentes y la distribución de eventos entre clientes y servidores, y los códigos de plomería Ajax son completamente transparentes para los desarrolladores de aplicaciones web. Por lo tanto, los usuarios finales obtienen una interactividad y una capacidad de respuesta similares a las de una aplicación de escritorio, mientras que el desarrollo de los programadores conserva una simplicidad similar a la de las aplicaciones de escritorio.

Es importante tener en cuenta que ZK no usa el mecanismo de respuesta de solicitud web estándar <=> y ​​NO envía campos de formulario al servidor usando parámetros de consulta GET + o una solicitud POST. En cambio, las solicitudes AJAX se envían al servidor para actualizar el estado interno de cada widget de pantalla. En el navegador, ZK solo descarga una descripción JSON de la página web y usa un renderizador de cliente para convertir eso en una interfaz de usuario. Es bastante eficiente y bajo una inspección más cercana, no descarga todo a la vez. Una mirada al tráfico entre el cliente y el servidor revela varias solicitudes que van y vienen entre el cliente y el navegador hasta que finalmente se completa la representación de la página.

La personalización opcional del lado del cliente permite al desarrollador aprovechar los recursos del lado del cliente con la llamada fusión servidor + cliente, para la personalización y para reducir el tráfico Ajax.

Además de la programación basada en componentes de una manera similar a Swing , ZK admite un lenguaje de marcado para una rica definición de interfaz de usuario llamado ZUML.

  • ZUML está diseñado para que los desarrolladores no programadores diseñen interfaces de usuario de forma intuitiva.
  • ZUML permite a los desarrolladores fusionar diferentes lenguajes de marcado, como el lenguaje Mozilla XUL y XHTML, sin problemas en la misma página.
  • ZUML permite a los desarrolladores incrustar scripts en lenguaje Java puro (interpretado por BeanShell ) y usar expresiones EL para manipular los componentes y acceder a los datos.

Características

interfaz webui de iDempiere bajo ZK6
  • Simplemente Java. ZK es conocido por su enfoque "Ajax sin JavaScript", que permite a los desarrolladores crear aplicaciones web enriquecidas de forma transparente sin ningún conocimiento de Ajax y JavaScript.
  • Temas de diseño receptivo junto con compatibilidad con Bootstrap
  • Compatibilidad con HTML 5 y CSS 3
  • Más de 100 componentes Ajax ofrecen a los diseñadores de UI una variedad de componentes ricos en funciones para satisfacer las demandas de las aplicaciones Ajax empresariales.
  • ZUML hace que el diseño de interfaces de usuario enriquecidas sea similar a la creación de páginas HTML. ZUML es una variante de XUL que hereda todas las funciones disponibles para XML y separa la definición de la interfaz de usuario de la lógica en tiempo de ejecución.
  • Modelo basado en componentes impulsado por eventos (similar a los modelos de programación de escritorio) que admite múltiples patrones de diseño de GUI impulsados ​​por eventos.
  • Soporte para patrones de diseño Model-View-Controller (MVC), Model-View-Presenter y Model-View-ViewModel (MVVM)
  • Capacidad de enlace de datos a través de anotaciones en la página ZUML que automatiza CRUD y la sincronización de estado entre la vista de la interfaz de usuario y los datos y POJO.
  • Componentes de la aplicación, como hoja de cálculo, tabla dinámica y calendario.
  • Soporte de incrustación de scripts con Java (Beanshell). Este es un beneficio importante, ya que puede utilizar un lenguaje de programación unificado tanto para la interfaz de usuario como para la programación de backend. Soporte opcional para otras secuencias de comandos Java del lado del servidor en otros lenguajes como JavaScript (Rhino), Ruby (JRuby), Python (Jython) y Groovy.
  • Soporte para la integración con marcos web existentes a través de una biblioteca de etiquetas personalizadas JSP, soporte JSF, Portlet y un filtro de servlet. Tiene soporte para Spring e Hibernate.
  • Extensible en el sentido de que los programadores pueden crear nuevos controles de interfaz de usuario personalizados. Los grupos de controles se pueden reutilizar como un componente de macro.
  • Gráficos extensos con gráficos ZK

ZK 9.5.0

La última versión 9.5.0 se lanzó el 29 de septiembre de 2020. Viene con más de 80 cambios y una versión preliminar del soporte WCAG.

Diferencias de XUL

  • ZK es un marco del lado del servidor que emite HTML y, por lo tanto, no depende de la presencia de Gecko en el lado del cliente, lo que lo hace portátil a cualquier navegador. ZK toma las páginas del lado del servidor ZUML (xul y xhtml) como entrada y genera dhtml para el navegador.
  • ZK procesa la lógica de la interfaz de usuario en el servidor en Java. Esto aumenta las opciones en los motores de secuencias de comandos y las bibliotecas de aplicaciones que se pueden usar para crear lógica. Los efectos de presentación se pueden delegar en el navegador mediante la función Acciones del lado del cliente para reducir la carga del servidor para los efectos dhtml. La ejecución de la lógica de la aplicación en el servidor en un único contenedor de aplicaciones reduce la cantidad de pruebas entre navegadores y versiones de navegadores en comparación con la programación exhaustiva del DOM en el navegador.
  • Mientras que ZK y XUL tienen un subconjunto de componentes superpuestos, ZK tiene sus propios conjuntos de componentes únicos. La biblioteca de componentes se puede ampliar con componentes personalizados. Se pueden definir componentes macro que son compuestos de componentes.
  • ZK proporciona anotaciones de enlace de datos del lado del servidor para vincular de forma declarativa los componentes de la interfaz de usuario a los datos del lado del servidor.
  • Mira y siente las diferencias.

Requisitos del sistema

  • JRE versión 1.5 o posterior
  • Un servidor web compatible con Servlet 2.3 o posterior

Requisitos previos de habilidades de programación

Requerido

  • Conocimientos básicos de Java o un lenguaje de motor de secuencias de comandos de Java como Groovy , Rhino (Java JavaScript), JRuby (Java Ruby) o Jython (Java Python)
  • Conocimientos básicos de HTML y XUL

Opcional

  • Conocimiento de un lenguaje de secuencias de comandos para escribir la lógica de pegamento (que se ejecuta en el servidor):
  • Programación orientada a objetos
  • Programación de servlets
  • Ajax
  • JavaScript (en el lado del cliente)
  • Vinculaciones de datos declarativas
  • Lenguaje de expresión estilo JSTL

ZUML

ZUML (ZK User Interface Markup Language) es un lenguaje de marcado para la definición de interfaces de usuario enriquecidas.

  • ZUML está diseñado para que los no programadores diseñen interfaces de usuario de manera eficiente con el marcado ZUML
  • ZUML permite al desarrollador fusionar diferentes lenguajes de marcado, como el lenguaje Mozilla XUL y XHTML, sin problemas en la misma página.
  • ZUML permite a los desarrolladores incrustar secuencias de comandos en lenguaje Java puro (interpretado por BeanShell ) y utilizar expresiones EL para manipular los componentes y acceder a los datos.
  • ZUML es compatible con ZK .
  • Documentación oficial: Referencia ZUML

Tecnologías del lado del cliente

ZK es un marco centrado en el servidor. Técnicamente, no es necesario que conozca la implementación en el lado del cliente. Así es como se ejecuta ZK Mobile en Java Mobile VM.

Desde ZK 5.0, se introduce la denominada arquitectura Fusion Server + Client . Los desarrolladores pueden acceder directamente a los widgets del lado del cliente si así lo desean. ZK Client Engine se basa en jQuery . Técnicamente, puede usar bibliotecas y widgets compatibles con jQuery.

Complementos de ZK

Gráficos ZK
Un componente de gráficos con API para mostrar y controlar gráficos desde el lado del servidor

ZK Pivottable
Un componente de resumen de datos Ajax

Hoja de cálculo ZK
Un componente de hoja de cálculo web en línea. Reemplazado por Keikai

Ver también

Referencias

enlaces externos

Página web oficial