ZK - это среда веб-приложений Ajax с открытым исходным кодом , написанная на Java , [3] [4] [5], которая позволяет создавать графические пользовательские интерфейсы для веб-приложений с небольшими необходимыми знаниями программирования.
Разработчики) | zkoss |
---|---|
Стабильный выпуск | 9.5.1 / 9 марта 2021 г . [1] |
Репозиторий | |
Операционная система | Кроссплатформенность ( JVM ) |
Тип | Веб-платформа Ajax |
Лицензия | LGPL / ZOL / Коммерческий [2] |
Веб-сайт | zkoss |
Ядро ZK состоит из основанного на Ajax механизма, управляемого событиями , более 123 компонентов на основе XUL и 83 компонентов на основе XHTML [6] и языка разметки для разработки пользовательских интерфейсов. Программисты создают свои страницы приложений в многофункциональных компонентах XUL / XHTML и манипулируют ими при событиях, вызванных действиями конечного пользователя. Это похоже на модель программирования, используемую в настольных приложениях на основе графического интерфейса.
ZK использует ориентированный на сервер подход, в котором синхронизация содержимого компонентов и конвейерная обработка событий между клиентами и серверами автоматически выполняются движком, а коды сантехники Ajax полностью прозрачны для разработчиков веб-приложений. Таким образом, конечные пользователи получают такую же интерактивность и скорость отклика, что и настольные приложения, в то время как разработка программистов сохраняет ту же простоту, что и настольные приложения.
Важно отметить, что ZK не использует стандартный механизм ответа веб-запроса <=> и НЕ отправляет поля формы на сервер с использованием параметров запроса GET + или одного запроса POST. Вместо этого на сервер отправляются запросы AJAX для обновления внутреннего состояния каждого виджета экрана. В браузере ZK загружает только описание веб-страницы в формате JSON и использует клиентское средство визуализации для преобразования его в пользовательский интерфейс. Достаточно работоспособен и при ближайшем рассмотрении не скачивает сразу все. Анализ трафика между клиентом и сервером показывает, что между клиентом и браузером происходит несколько запросов, пока в конечном итоге не завершится рендеринг страницы.
Дополнительная настройка на стороне клиента позволяет разработчику использовать ресурсы на стороне клиента с помощью так называемого слияния сервер + клиент для настройки и уменьшения трафика Ajax.
В дополнение к компонентному программированию, аналогичному Swing , ZK поддерживает язык разметки для расширенного определения пользовательского интерфейса, называемый ZUML.
- ZUML предназначен для разработчиков, не являющихся программистами, для интуитивного проектирования пользовательских интерфейсов.
- ZUML позволяет разработчикам легко объединять разные языки разметки, такие как язык Mozilla XUL и XHTML, на одной странице.
- ZUML позволяет разработчикам встраивать сценарии на чистом языке Java (интерпретируемом BeanShell ) и использовать выражения EL для управления компонентами и доступа к данным.
Функции
- Просто Java. ZK известен своим подходом «Ajax без JavaScript», позволяющим разработчикам прозрачно создавать многофункциональные веб-приложения без каких-либо знаний об Ajax и JavaScript.
- Адаптивные темы дизайна вместе с поддержкой Bootstrap
- Поддержка HTML 5 и CSS 3
- Более 100 компонентов Ajax предлагают разработчикам пользовательского интерфейса разнообразные компоненты с богатым набором функций, отвечающие требованиям корпоративных приложений Ajax.
- ZUML делает дизайн многофункциональных пользовательских интерфейсов похожим на создание HTML-страниц. ZUML - это вариант XUL, наследующий все функции, доступные для XML, и отделяет определение пользовательского интерфейса от логики времени выполнения.
- Управляемая событиями модель на основе компонентов (аналогичная моделям программирования для настольных компьютеров), поддерживающая несколько шаблонов проектирования графического интерфейса, управляемого событиями. [7]
- Поддержка шаблонов проектирования Model-View-Controller (MVC), [8] Model-View-Presenter [9] и Model-View-ViewModel (MVVM) [10]
- Возможность привязки данных через аннотации на ZUML-странице, которые автоматизируют CRUD и синхронизацию состояния между представлением пользовательского интерфейса, данными и POJO.
- Компоненты приложения, такие как электронная таблица, сводная таблица и календарь.
- Встраивание поддержки сценариев с Java (Beanshell [11] ). Это важное преимущество, поскольку вы можете использовать унифицированный язык программирования как для пользовательского интерфейса, так и для внутреннего программирования. Дополнительная поддержка других серверных сценариев Java на других языках, таких как JavaScript (Rhino [12] ), Ruby (JRuby [13] ), Python (Jython [14] ) и Groovy. [15]
- Поддержка интеграции с существующими веб-платформами через библиотеку пользовательских тегов JSP, поддержку JSF, портлет и фильтр сервлетов. Имеет поддержку Spring и Hibernate.
- Расширяемость в том, что программисты могут создавать новые пользовательские элементы управления пользовательского интерфейса. Группы элементов управления можно повторно использовать как компонент макроса.
- Обширные графики с ZK Charts
ZK 9.5.0
Последняя версия 9.5.0 была выпущена 29 сентября 2020 г. [16] Она содержит более 80 изменений и предварительную версию с поддержкой WCAG.
Отличия от XUL
- ZK - это серверная структура, которая генерирует HTML и, следовательно, не зависит от присутствия Gecko на стороне клиента, что делает ее переносимой в любой браузер. ZK принимает серверные страницы ZUML (xul и xhtml) в качестве входных данных и выводит dhtml для браузера.
- ZK обрабатывает логику пользовательского интерфейса на сервере на Java. Это увеличивает выбор механизмов сценариев и библиотек приложений, которые можно использовать для создания логики. Эффекты презентации можно делегировать браузеру с помощью функции «Действия на стороне клиента», чтобы снизить нагрузку на сервер для эффектов dhtml. Выполнение логики приложения на сервере в едином контейнере приложения снижает объем кроссбраузерности и тестирования версий браузера по сравнению с обширным программированием DOM в браузере.
- В то время как ZK и XUL имеют перекрывающиеся подмножества компонентов, ZK имеет свои собственные уникальные наборы компонентов. Библиотека компонентов может быть расширена пользовательскими компонентами. Можно определить макрокомпоненты, которые представляют собой составные части компонентов.
- ZK предоставляет аннотации привязки данных на стороне сервера для декларативной привязки компонентов пользовательского интерфейса к данным на стороне сервера.
- Посмотрите и почувствуйте различия.
Системные Требования
- JRE версии 1.5 или новее
- Веб-сервер, поддерживающий Servlet 2.3 или новее
Предпосылки навыков программирования
Обязательный
- Базовые знания Java или языка сценариев Java, такого как Groovy , Rhino (Java JavaScript), JRuby (Java Ruby) или Jython (Java Python)
- Базовые знания HTML и XUL
По желанию
- Знание языка сценариев для написания логики клея (выполняется на сервере):
- BeanShell (интерпретатор Java), JavaScript , Groovy , Ruby , Scala и Python
- Объектно-ориентированное программирование
- Программирование сервлетов
- Аякс
- JavaScript (на стороне клиента)
- Декларативные привязки данных
- Язык выражений в стиле JSTL
ZUML
ZUML (язык разметки пользовательского интерфейса ZK) - это язык разметки для определения расширенного пользовательского интерфейса.
- ZUML предназначен для непрограммистов для эффективного проектирования пользовательских интерфейсов с помощью разметки ZUML.
- ZUML позволяет разработчику легко объединять различные языки разметки, такие как язык Mozilla XUL и XHTML, на одной странице.
- ZUML позволяет разработчикам встраивать сценарий на чистый язык Java (интерпретируемый BeanShell ) и использовать выражения EL для управления компонентами и доступа к данным.
- ZUML поддерживается ZK .
- Официальная документация: Справочник по ZUML
Клиентские технологии
ZK - это серверно-ориентированная структура. Технически вам не нужно знать о реализации на стороне клиента. Так работает ZK Mobile на Java Mobile VM.
Начиная с ZK 5.0 представлена так называемая архитектура Fusion [17] сервер + клиент . Разработчикам разрешен прямой доступ к виджетам на стороне клиента, если они захотят. ZK Client Engine основан на jQuery . [18] Технически вы можете использовать jQuery-совместимые библиотеки и виджеты.
Дополнения ZK
ZK Charts
Компонент построения графиков с API для отображения графиков и управления ими со стороны сервера.
ZK Pivottable
Компонент суммирования данных Ajax
ZK Spreadsheet
Компонент электронной таблицы в Интернете. Заменен Кейкаем [19]
Смотрите также
- Список полнофункциональных фреймворков веб-приложений
- Сравнение фреймворков JavaScript
- Список фреймворков Ajax
- Список наборов инструментов для виджетов на основе JavaScript
Рекомендации
- ^ "Примечания к выпуску ZK 9.5.1" . github.com . 2021-03-09 . Проверено 10 марта 2021 .
- ^ ZK 3 и более ранние версии находятся под лицензией GPL .
- ^ Чен, Анри (2008). ZK - Ajax без JavaScript . Апресс. п. 125. ISBN 978-1-59059-901-3.
- ^ Стейбле, Маркус (2008). Руководство разработчика ZK . Packt Publishing. п. 184. ISBN 978-1-84719-200-4.
- ^ Ван дер Шифф, Андре (31 марта 2009 г.). «Взгляд на фреймворки MVC» . ITWeb.
Фреймворки MVC предоставляют ограниченную функциональность по сравнению с ZK, Echo и другими веб-фреймворками Java.
- ^ «ZK Explorer» . Zkoss.org . Проверено 25 августа 2010 .
- ^ Мэсси, Саймон. «Реализация шаблонов графического интерфейса, управляемых событиями, с использованием структуры ZK Java AJAX» . www.ibm.com/ . IBM . Проверено 5 июля 2014 года .
- ^ «ZK - Справочник разработчика ZK / MVC - Документация» . Books.zkoss.org. 2014-01-27 . Проверено 2 марта 2014 .
- ^ «ZK - Small Talks / 2011 / ноябрь / Здравствуйте, ZK MVVM - Документация» . Books.zkoss.org . Проверено 2 марта 2014 .
- ^ «ZK - Small Talks / 2011 / ноябрь / MVVM в ZK 6 - Создайте свою первую страницу MVVM - Документация» . Books.zkoss.org . Проверено 2 марта 2014 .
- ^ «Легкие сценарии для Java» . BeanShell . Проверено 2 марта 2014 .
- ^ "Носорог | МДН" . Mozilla.org. 2012-08-09 . Проверено 2 марта 2014 .
- ^ «Главная - JRuby.org» . Jruby.codehaus.org. 2014-02-25. Архивировано из оригинального 30 августа 2009 года . Проверено 2 марта 2014 .
- ^ «Jython: Домашняя страница» . Jython.org . Проверено 2 марта 2014 .
- ^ «Groovy - Home» . Groovy.codehaus.org. 2014-02-18. Архивировано из оригинала на 2 марта 2014 года . Проверено 2 марта 2014 .
- ^ "Примечания к выпуску ZK 9.5.0"
- ^ Клэр, Тимоти (09.02.2010). «Сервер + клиент Fusion: архитектурное предложение» . Доктора Добба.
Хорошая архитектура фреймворка является гибкой, позволяя разработчикам и архитекторам реализовывать свои приложения умным и элегантным образом.
- ^ Махаджан, Сачин (19 октября 2010 г.). «Улучшение разработки Ajax с помощью слияния кода jQuery, ZK и Java» . IBM developerWorks.
Сочетание серверного кода Java и jQuery может помочь вам справиться с проблемами при разработке корпоративных приложений Ajax.
- ^ https://www.zkoss.org/product/keikai - ZK Spreadsheet теперь называется Keikai
Внешние ссылки
Официальный веб-сайт