Articulo de referencia

ZK (marco de trabajo)

\n{{cite web \n|url=https://www.zkoss.org/product/zk/releasenote/10.1.0 \n|title=ZK 10.1.0 release notes\n}} "},"latest preview version":{"wt":""},"latest preview date":{"wt":""...

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

El núcleo de ZK consiste en un mecanismo basado en eventos mediante Ajax, más de 123 componentes XUL y 83 componentes XHTML [6], y un lenguaje de marcado para el diseño de interfaces de usuario. Los programadores diseñan las páginas de sus aplicaciones con componentes XUL / XHTML repletos de funcionalidades y las manipulan en función de los eventos generados por la actividad del usuario final. Es similar al modelo de programación que se encuentra en las aplicaciones de escritorio con interfaz gráfica de usuario (GUI).

ZK utiliza un enfoque centrado en el servidor, donde la sincronización de contenido de los componentes y la gestión de eventos entre clientes y servidores se realizan automáticamente mediante el motor. El código Ajax es completamente transparente para los desarrolladores de aplicaciones web. Por lo tanto, los usuarios finales disfrutan de una interactividad y capacidad de respuesta similares a las de una aplicación de escritorio, mientras que el desarrollo por parte de los programadores mantiene una simplicidad similar a la de las aplicaciones de escritorio.

ZK no utiliza el mecanismo estándar de solicitud-respuesta web ni envía campos de formulario al servidor mediante una solicitud GET con parámetros de consulta o una solicitud POST . En su lugar, envía solicitudes AJAX 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 utiliza un renderizador del lado del cliente para convertirla en una interfaz de usuario. Es bastante eficiente y, si se analiza con detenimiento, no descarga todo a la vez. Un análisis del 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 renderización de la página.

La personalización opcional del lado del cliente permite al desarrollador aprovechar los recursos del lado del cliente mediante la denominada 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 forma similar a Swing , ZK admite un lenguaje de marcado para la definición de interfaces de usuario enriquecidas llamado ZUML.

  • ZUML está diseñado para que desarrolladores sin conocimientos de programación puedan diseñar interfaces de usuario de forma intuitiva.
  • ZUML permite a los desarrolladores combinar diferentes lenguajes de marcado, como el lenguaje XUL de Mozilla y XHTML, sin problemas en la misma página.
  • ZUML permite a los desarrolladores insertar scripts en lenguaje Java puro (interpretado por BeanShell ) y utilizar expresiones EL para manipular los componentes y acceder a los datos.

Características

Interfaz web de iDempiere bajo ZK6
  • Simplemente Java. ZK es conocido por su enfoque de "Ajax sin JavaScript", que permite a los desarrolladores crear aplicaciones web sofisticadas de forma transparente sin necesidad de conocimientos de Ajax ni JavaScript.
  • Temas de diseño responsivo con soporte para Bootstrap
  • Compatibilidad con HTML 5 y CSS 3
  • Más de 100 componentes Ajax ofrecen a los diseñadores de interfaz de usuario una variedad de componentes con numerosas funciones para satisfacer las demandas de las aplicaciones Ajax empresariales.
  • ZUML hace que el diseño de interfaces de usuario avanzadas sea similar a la creación de páginas HTML. ZUML es una variante de XUL que hereda todas las características disponibles en XML y separa la definición de la interfaz de usuario de la lógica 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. [ 7 ]
  • Compatibilidad con los patrones de diseño Modelo-Vista-Controlador (MVC), [ 8 ] Modelo-Vista-Presentador [ 9 ] y Modelo-Vista-ViewModel (MVVM) [ 10 ].
  • Capacidad de enlace de datos mediante anotaciones en la página ZUML que automatiza las operaciones 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 para scripting integrado con Java (Beanshell [ 11 ] ). Esta es una ventaja importante, ya que permite usar un lenguaje de programación unificado tanto para la interfaz de usuario como para la programación del backend. Soporte opcional para otros scripts de Java del lado del servidor en otros lenguajes como JavaScript (Rhino [ 12 ] ), Ruby (JRuby [ 13 ] ), Python (Jython [ 14 ] ) y Groovy. [ 15 ]
  • Ofrece soporte para la integración con frameworks web existentes mediante una biblioteca de etiquetas personalizadas JSP, compatibilidad con JSF, Portlet y un filtro de servlet. Es compatible con Spring e Hibernate.
  • Es extensible, ya que los programadores pueden crear nuevos controles de interfaz de usuario personalizados. Los grupos de controles se pueden reutilizar como un componente macro.
  • Gráficos extensos con ZK Charts.

Diferencias con XUL

  • ZK es un framework del lado del servidor que genera HTML y, por lo tanto, no depende de la presencia de Gecko en el lado del cliente , lo que lo hace compatible con cualquier navegador. ZK recibe como entrada páginas ZUML (xul y xhtml) del lado del servidor y genera dhtml para el navegador.
  • ZK procesa la lógica de la interfaz de usuario en el servidor mediante Java. Esto amplía las opciones de motores de scripting y bibliotecas de aplicaciones disponibles para crear dicha lógica. Los efectos de presentación se pueden delegar al navegador mediante la función de Acciones del lado del cliente para reducir la carga del servidor en los efectos DHTML. Ejecutar la lógica de la aplicación en el servidor, dentro de un único contenedor, reduce la necesidad de realizar pruebas de compatibilidad entre navegadores y versiones, en comparación con la programación intensiva del DOM en el navegador.
  • Si bien ZK y XUL comparten un subconjunto de componentes, ZK cuenta con sus propios conjuntos de componentes exclusivos. La biblioteca de componentes se puede ampliar con componentes personalizados. Se pueden definir macrocomponentes que son compuestos de otros componentes.
  • ZK proporciona anotaciones de enlace de datos del lado del servidor para vincular de forma declarativa los componentes de la interfaz de usuario con los datos del servidor.
  • Diferencias en apariencia y tacto .

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 de un lenguaje de programación para motores de scripting de Java como Groovy , Rhino (Java JavaScript), JRuby (Java Ruby) o Jython (Java Python).
  • Conocimientos básicos de HTML y XUL.

Opcional

ZUML

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

  • ZUML está diseñado para que personas sin conocimientos de programación puedan diseñar interfaces de usuario de forma eficiente con el lenguaje de marcado ZUML.
  • ZUML permite a los desarrolladores combinar diferentes lenguajes de marcado, como el lenguaje XUL de Mozilla y XHTML, sin problemas en la misma página.
  • ZUML permite a los desarrolladores incrustar código 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 framework centrado en el servidor. No se requieren conocimientos técnicos sobre la implementación en el lado del cliente. Esto permite que ZK Mobile se ejecute en la máquina virtual Java Mobile.

Desde ZK 5.0, se introduce la arquitectura denominada Fusión Servidor+Cliente [ 16 ] . Los desarrolladores pueden acceder directamente a los widgets del lado del cliente si lo desean. El motor de cliente de ZK se basa en jQuery [ 17 ] . Técnicamente, se pueden usar bibliotecas y widgets compatibles con jQuery.

Complementos

Véase también

Referencias

  1. "Notas de la versión ZK 10.1.0" .
  2. ZK 3 y versiones anteriores tienen licencia GPL .
  3. Chen, Henri (2008). ZK - Ajax sin JavaScript . Apress. pág. 125. ISBN  978-1-59059-901-3.
  4. Staeuble, Markus (2008). Guía del desarrollador de ZK . Packt Publishing. pág. 184. ISBN  978-1-84719-200-4.
  5. Van der Schyff, Andre (31 de marzo de 2009). "Una mirada a los frameworks MVC" . ITWeb. Archivado del original el 22 de agosto de 2009. Recuperado el 14 de abril de 2009. Los frameworks MVC ofrecen una funcionalidad limitada en comparación con ZK, Echo y otros frameworks web de Java.
  6. "ZK Explorer" . Zkoss.org . Consultado el 25 de agosto de 2010 .
  7. Massey, Simon. "Implementación de patrones GUI basados ​​en eventos utilizando el marco de trabajo ZK Java AJAX" . www.ibm.com/ . IBM . Consultado el 5 de julio de 2014 .
  8. "ZK - Referencia del desarrollador de ZK/MVC - Documentación" . Books.zkoss.org. 27 de enero de 2014. Consultado el 2 de marzo de 2014 .
  9. "ZK - Charlas breves/2011/Noviembre/Hola ZK MVVM - Documentación" . Books.zkoss.org . Consultado el 2 de marzo de 2014 .
  10. "ZK - Charlas breves/2011/Noviembre/MVVM en ZK 6 - Diseña tu primera página MVVM - Documentación" . Books.zkoss.org . Consultado el 2 de marzo de 2014 .
  11. "Scripts ligeros para Java" . BeanShell . Consultado el 2 de marzo de 2014 .
  12. "Rhino | MDN" . Mozilla.org. 9 de agosto de 2012. Consultado el 2 de marzo de 2014 .
  13. "Inicio — JRuby.org" . Jruby.codehaus.org. 25 de febrero de 2014. Archivado del original el 30 de agosto de 2009. Consultado el 2 de marzo de 2014 .
  14. "Jython : Página principal" . Jython.org. Archivado del original el 16 de mayo de 2009. Consultado el 2 de marzo de 2014 . 
  15. "Groovy - Inicio" . Groovy.codehaus.org. 18 de febrero de 2014. Archivado del original el 2 de marzo de 2014. Consultado el 2 de marzo de 2014 .
  16. Clare, Timothy (09/02/2010). "Fusión servidor+cliente: una propuesta arquitectónica" . Dr. Dobb's. Una buena arquitectura de marco es flexible, lo que permite a desarrolladores y arquitectos implementar sus aplicaciones de manera inteligente y elegante.
  17. Mahajan, Sachin (19 de octubre de 2010). "Mejore el desarrollo de Ajax con una fusión de jQuery, ZK y código Java" . IBM developerWorks. Archivado del original el 16 de julio de 2017. La combinación de código Java del lado del servidor y jQuery puede ayudarle a afrontar los desafíos del desarrollo de aplicaciones Ajax empresariales.

Sitio web oficial