ZK (каркас) - ZK (framework)
Разработчики) | Zkoss |
---|---|
Стабильный выпуск | 9.5.0 / 29 сентября 2020[1] |
Репозиторий | |
Операционная система | Кроссплатформенность (JVM ) |
Тип | Веб-платформа Ajax |
Лицензия | LGPL / ZOL / Коммерческие[2] |
Интернет сайт | Zkoss |
ZK является Открытый исходный код Аякс Фреймворк веб-приложений, написано в Ява,[3][4][5] что позволяет создавать графический пользовательский интерфейс за Веб-приложения с небольшими необходимыми знаниями программирования.
Ядро ZK состоит из Аякс -основан событийный механизм, более 123 XUL и 83 XHTML компоненты на основе,[6] и язык разметки для разработки пользовательских интерфейсов. Программисты создают свои страницы приложений в многофункциональный XUL /XHTML компоненты и манипулируют ими при событиях, вызванных действиями конечного пользователя. Это похоже на модель программирования в настольных приложениях с графическим интерфейсом.
ZK использует ориентированный на сервер подход, при котором синхронизация содержимого компонентов и конвейерная обработка событий между клиентами и серверами автоматически выполняются движком, а коды сантехники Ajax полностью прозрачны для разработчиков веб-приложений. Таким образом, конечные пользователи получают такие же интерактивные возможности и скорость отклика, что и настольные приложения, в то время как разработка программистов сохраняет ту же простоту, что и настольные приложения.
Важно отметить, что ZK не использует стандартный механизм ответа веб-запроса <=> и НЕ отправляет поля формы на сервер с использованием параметров запроса GET + или одного запроса POST. Вместо этого на сервер отправляются запросы AJAX для обновления внутреннего состояния каждого виджета экрана. В браузере ZK загружает только JSON описание веб-страницы и использует клиентское средство визуализации для преобразования его в пользовательский интерфейс. Достаточно работоспособен и при ближайшем рассмотрении не скачивает сразу все. Если посмотреть на трафик между клиентом и сервером, можно увидеть несколько запросов, идущих туда и обратно между клиентом и браузером, пока в конечном итоге не завершится рендеринг страницы.
Дополнительная настройка на стороне клиента позволяет разработчику использовать ресурсы на стороне клиента с помощью так называемого объединения сервер + клиент для настройки и уменьшения трафика Ajax.
В дополнение к компонентному программированию аналогично Качать, 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], Модель-Просмотр-Презентатор[9] и Model-View-ViewModel (MVVM)[10] шаблоны проектирования
- Возможность привязки данных с помощью аннотаций на ZUML-странице, которая автоматизирует CRUD и синхронизацию состояния между представлением пользовательского интерфейса, данными и POJO.
- Компоненты приложения, такие как электронная таблица, сводная таблица и календарь.
- Встраивание поддержки сценариев с Java (Beanshell[11]). Это важное преимущество, так как вы можете использовать унифицированный язык программирования как для пользовательского интерфейса, так и для внутреннего программирования. Дополнительная поддержка других серверных сценариев Java на других языках, таких как JavaScript (Rhino[12]), Рубин (JRuby[13]), Python (Jython[14]) и Groovy.[15]
- Поддержка интеграции с существующими веб-платформами через библиотеку пользовательских тегов JSP, поддержку JSF, портлет и фильтр сервлетов. Имеет поддержку Spring и Hibernate.
- Расширяемость в том, что программисты могут создавать новые пользовательские элементы управления пользовательского интерфейса. Группы элементов управления можно повторно использовать в качестве макроса.
- Обширные графики с ZK Charts
ZK 9.5.0
Последняя версия 9.5.0 была выпущена 29 сентября 2020 г.[1]. Он содержит более 80 изменений и предварительную версию поддержки WCAG.
Отличия от XUL
- ZK - это серверная структура, которая генерирует HTML и, следовательно, не зависит от наличия на стороне клиента Геккон делает его переносимым в любой браузер. ZK принимает серверные страницы ZUML (xul и xhtml) в качестве входных данных и выводит dhtml для браузера.
- ZK обрабатывает логику пользовательского интерфейса на сервере на Java. Это увеличивает выбор механизмов сценариев и библиотек приложений, которые можно использовать для создания логики. Эффекты презентации можно делегировать браузеру с помощью функции «Действия на стороне клиента», чтобы снизить нагрузку на сервер для эффектов dhtml. Выполнение логики приложения на сервере в едином контейнере приложения уменьшает объем кроссбраузерности и тестирования версий браузера по сравнению с обширным программированием DOM в браузере.
- В то время как ZK и XUL имеют перекрывающиеся подмножества компонентов, ZK имеет свои собственные уникальные наборы компонентов. Библиотека компонентов может быть расширена пользовательскими компонентами. Можно определить макрокомпоненты, которые представляют собой составные части компонентов.
- ZK предоставляет аннотации привязки данных на стороне сервера для декларативной привязки компонентов пользовательского интерфейса к данным на стороне сервера.
- Смотреть и чувствовать различия.
Системные Требования
Предпосылки навыков программирования
Необходимый
- Базовые знания Java или языка сценариев Java, такого как Groovy, Носорог (Java JavaScript), JRuby (Java Ruby) или Jython (Java Python)
- Базовые знания HTML и XUL
Необязательный
- Знание языка сценариев для написания логики клея (выполняется на сервере):
- Объектно-ориентированного программирования
- Программирование сервлетов
- Аякс
- JavaScript (на стороне клиента)
- Декларативные привязки данных
- Стиль JSTL Язык выражения
ZUML
ZUML (ZK User Interface Markup Language) - это язык разметки для определения расширенного пользовательского интерфейса.
- ZUML предназначен для непрограммистов для эффективного проектирования пользовательских интерфейсов с помощью разметки ZUML.
- ZUML позволяет разработчику объединять разные языки разметки, такие как Mozilla Язык XUL и XHTML на одной странице.
- ZUML позволяет разработчикам встраивать скрипт на чистом языке Java (интерпретируется BeanShell ) и используйте EL выражения для управления компонентами и доступа к данным.
- ZUML поддерживается ZK.
- Официальная документация: Справочник по ZUML
Клиентские технологии
ZK - это серверно-ориентированная структура. Технически вам не нужно знать о реализации на стороне клиента. Так работает ZK Mobile на Java Mobile VM.
Начиная с ZK 5.0, так называемые Сервер + клиент Fusion[16] представлена архитектура. Разработчикам разрешен прямой доступ к виджетам на стороне клиента, если они хотят. ZK Client Engine основан на jQuery.[17] Технически вы можете использовать jQuery-совместимые библиотеки и виджеты.
Дополнения ZK
ZK графики
Компонент построения диаграмм с API для отображения диаграмм и управления ими со стороны сервера.
ZK поворотный
Компонент суммирования данных Ajax
Таблица ZK
Компонент электронной таблицы в Интернете. Заменен Кейкай[18]
Смотрите также
- Список богатых фреймворков интернет-приложений
- Сравнение фреймворков JavaScript
- Список фреймворков Ajax
- Список наборов инструментов для виджетов на основе JavaScript
Рекомендации
- ^ а б «Примечания к выпуску ZK 9.5.0»
- ^ 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. Получено 2010-08-25.
- ^ Мэсси, Саймон. «Реализация шаблонов графического интерфейса, управляемых событиями, с использованием инфраструктуры ZK Java AJAX». www.ibm.com/. IBM. Получено 5 июля 2014.
- ^ "ZK - Справочник разработчика ZK / MVC - Документация". Books.zkoss.org. 2014-01-27. Получено 2014-03-02.
- ^ "ZK - Small Talks / 2011 / ноябрь / Hello ZK MVVM - Документация". Books.zkoss.org. Получено 2014-03-02.
- ^ "ZK - Small Talks / 2011 / ноябрь / MVVM в ZK 6 - Создайте свою первую страницу MVVM - Документация". Books.zkoss.org. Получено 2014-03-02.
- ^ «Легкие сценарии для Java». BeanShell. Получено 2014-03-02.
- ^ "Носорог | МДН". Mozilla.org. 2012-08-09. Получено 2014-03-02.
- ^ "Главная - JRuby.org". Jruby.codehaus.org. 2014-02-25. Архивировано из оригинал 30 августа 2009 г.. Получено 2014-03-02.
- ^ "Jython: Домашняя страница". Jython.org. Получено 2014-03-02.
- ^ «Groovy - Дом». Groovy.codehaus.org. 2014-02-18. Архивировано из оригинал 2 марта 2014 г.. Получено 2014-03-02.
- ^ Клэр, Тимоти (09.02.2010). "Сервер + клиент Fusion: архитектурное предложение". Доктора Добба.
Хорошая архитектура фреймворка является гибкой, позволяя разработчикам и архитекторам реализовывать свои приложения умным и элегантным образом.
- ^ Махаджан, Сачин (19 октября 2010 г.). «Улучшение разработки Ajax за счет слияния кода jQuery, ZK и Java». IBM developerWorks.
Сочетание серверного кода Java и jQuery может помочь вам справиться с проблемами разработки корпоративных приложений Ajax.
- ^ https://www.zkoss.org/product/keikai - ZK Spreadsheet теперь называется Keikai