ЗК (каркас)
Разработчик(и) | зкосс |
---|---|
Стабильная версия | 9.6.0
/ 10 августа 2021 г [ 1 ] |
Репозиторий | |
Операционная система | Кроссплатформенность ( JVM ) |
Тип | Веб-фреймворк Ajax |
Лицензия | LGPL / ZOL / Commercial [ 2 ] |
Веб-сайт | зкосс |
ZK — это с открытым исходным кодом Ajax платформа веб-приложений , написанная на Java . [ 3 ] [ 4 ] [ 5 ] это позволяет создавать графические пользовательские интерфейсы для веб-приложений без особых знаний программирования.
Ядро 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 для управления компонентами и доступа к данным.
Функции
[ редактировать ]- Просто Ява. ZK известен своим подходом «Ajax без JavaScript», позволяющим разработчикам прозрачно создавать многофункциональные веб-приложения без каких-либо знаний Ajax и JavaScript.
- Адаптивные темы дизайна и поддержка Bootstrap.
- Поддержка HTML 5 и CSS 3.
- Более 100 компонентов Ajax предлагают дизайнерам пользовательского интерфейса множество многофункциональных компонентов, отвечающих требованиям корпоративных приложений Ajax.
- ZUML делает проектирование многофункциональных пользовательских интерфейсов похожим на создание HTML-страниц. ZUML — это вариант XUL, наследующий все функции, доступные XML, и отделяющий определение пользовательского интерфейса от логики времени выполнения.
- Модель на основе компонентов, управляемая событиями (аналогично моделям программирования для настольных компьютеров), поддерживающая несколько шаблонов проектирования графического пользовательского интерфейса, управляемых событиями. [ 7 ]
- Поддержка модели-представления-контроллера (MVC), [ 8 ] Модель-Представление-Презентатор [ 9 ] и Модель-Представление-ViewModel (MVVM). [ 10 ] шаблоны проектирования
- Возможность привязки данных с помощью аннотаций на странице ZUML, которые автоматизируют CRUD и синхронизацию состояний между представлением пользовательского интерфейса, данными и POJO.
- Компоненты приложения, такие как электронная таблица, сводная таблица и календарь.
- Внедрение поддержки сценариев с помощью Java (Beanshell [ 11 ] ). Это важное преимущество, поскольку вы можете использовать единый язык программирования как для пользовательского интерфейса, так и для внутреннего программирования. Дополнительная поддержка других сценариев Java на стороне сервера на других языках, таких как JavaScript (Rhino [ 12 ] ), Руби (JRuby [ 13 ] ), Питон (Jython [ 14 ] ) и Грови. [ 15 ]
- Поддержка интеграции с существующими веб-платформами через библиотеку пользовательских тегов JSP, поддержку JSF, портлет и фильтр сервлетов. Имеет поддержку Spring и Hibernate.
- Расширяемость в том смысле, что программисты могут создавать новые пользовательские элементы управления пользовательского интерфейса. Группы элементов управления можно повторно использовать в качестве макрокомпонента.
- Обширные графики с помощью ZK Charts
Отличия от XUL
[ редактировать ]- ZK — это серверная платформа, которая генерирует HTML и, таким образом, не зависит от присутствия Gecko на стороне клиента , что делает ее переносимой в любой браузер. ZK принимает серверные страницы ZUML (xul и xhtml) в качестве входных данных и выводит dhtml для браузера.
- ZK обрабатывает логику пользовательского интерфейса на сервере на Java. Это расширяет выбор механизмов сценариев и библиотек приложений, которые можно использовать для создания логики. Эффекты презентации можно делегировать браузеру с помощью функции «Действия на стороне клиента», чтобы снизить нагрузку на сервер для эффектов dhtml. Выполнение логики приложения на сервере в одном контейнере приложения сокращает объем межбраузерного тестирования и тестирования версий браузера по сравнению с обширным программированием DOM в браузере.
- В то время как ZK и XUL имеют перекрывающееся подмножество компонентов, ZK имеет свои собственные уникальные наборы компонентов. Библиотека компонентов может быть расширена за счет пользовательских компонентов. Макрокомпоненты могут быть определены как составные части компонентов.
- ZK предоставляет аннотации привязки данных на стороне сервера для декларативной привязки компонентов пользовательского интерфейса к данным на стороне сервера.
- Посмотрите и почувствуйте различия.
Системные требования
[ редактировать ]Необходимые навыки программирования
[ редактировать ]Необходимый
[ редактировать ]- Базовые знания Java или языка сценариев Java, такого как Groovy , Rhino (Java JavaScript), JRuby (Java Ruby) или Jython (Java Python)
- Базовые знания HTML и XUL.
Необязательный
[ редактировать ]- Знание скриптового языка для написания связующей логики (работающей на сервере):
- Объектно-ориентированное программирование
- Программирование сервлетов
- Аякс
- JavaScript (клиентский)
- Декларативные привязки данных
- в стиле JSTL Язык выражений
ТОМЛ
[ редактировать ]ZUML (язык разметки пользовательского интерфейса ZK) — это язык разметки для определения расширенных пользовательских интерфейсов.
- ZUML предназначен для непрограммистов, позволяющих эффективно разрабатывать пользовательские интерфейсы с помощью разметки ZUML.
- ZUML позволяет разработчику легко объединять различные языки разметки, такие как язык Mozilla XUL и XHTML, на одной странице.
- ZUML позволяет разработчикам встраивать скрипты на чистый язык Java (интерпретируемый BeanShell ) и использовать выражения EL для управления компонентами и доступа к данным.
- ZUML поддерживается ZK .
- Официальная документация: Справочник ZUML
Клиентские технологии
[ редактировать ]ZK — это серверно-ориентированная структура. Технически вам не нужно знать о реализации на стороне клиента. Именно так работает ZK Mobile на виртуальной машине Java Mobile.
Начиная с ZK 5.0, так называемый «сервер+клиент Fusion». [ 16 ] представлена архитектура. Разработчикам разрешен прямой доступ к виджетам на стороне клиента, если они этого захотят. Клиентский движок ZK основан на jQuery . [ 17 ] Технически вы можете использовать библиотеки и виджеты, совместимые с jQuery.
Дополнения
[ редактировать ]См. также
[ редактировать ]- Список многофункциональных платформ веб-приложений
- Сравнение фреймворков JavaScript
- Список фреймворков Ajax
- Список наборов виджетов на основе JavaScript
Ссылки
[ редактировать ]- ^ «Примечания к выпуску ZK 9.6.0» .
- ^ ZK 3 и более ранние версии лицензируются по лицензии GPL .
- ^ Чен, Анри (2008). ЗК — Ajax без JavaScript . Апресс. п. 125. ИСБН 978-1-59059-901-3 .
- ^ Стаубле, Маркус (2008). Руководство разработчика ZK . Пакт Паблишинг. п. 184. ИСБН 978-1-84719-200-4 .
- ^ Ван дер Шифф, Андре (31 марта 2009 г.). «Взгляд на фреймворки MVC» . ITWeb. Архивировано из оригинала 22 августа 2009 г. Проверено 14 апреля 2009 г.
Фреймворки MVC предоставляют ограниченную функциональность по сравнению с ZK, Echo и другими веб-фреймворками Java.
- ^ «ЗК Эксплорер» . Zkoss.org . Проверено 25 августа 2010 г.
- ^ Мэсси, Саймон. «Реализация событийно-ориентированных шаблонов графического интерфейса с использованием платформы ZK Java AJAX» . www.ibm.com/ . ИБМ . Проверено 5 июля 2014 г.
- ^ «ZK — Справочник разработчика ZK/MVC — Документация» . Книги.zkoss.org. 27 января 2014 г. Проверено 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» . БинШелл . Проверено 2 марта 2014 г.
- ^ «Носорог | МДН» . Мозилла.орг. 9 августа 2012 г. Проверено 2 марта 2014 г.
- ^ «Главная — JRuby.org» . Jruby.codehaus.org. 25 февраля 2014 г. Архивировано из оригинала 30 августа 2009 года . Проверено 2 марта 2014 г.
- ^ «Джитон: Домашняя страница» . Jython.org. Архивировано из оригинала 16 мая 2009 г. Проверено 2 марта 2014 г.
- ^ «Отличный — Дом» . Groovy.codehaus.org. 18 февраля 2014 г. Архивировано из оригинала 2 марта 2014 года . Проверено 2 марта 2014 г.
- ^ Клэр, Тимоти (9 февраля 2010 г.). «Слияние сервера и клиента: архитектурное предложение» . Доктор Добб.
Хорошая архитектура платформы является гибкой, позволяя разработчикам и архитекторам реализовывать свои приложения умным и элегантным способом.
- ^ Махаджан, Сачин (19 октября 2010 г.). «Улучшите разработку Ajax за счет сочетания кода jQuery, ZK и Java» . IBM DeveloperWorks.
Сочетание серверного Java-кода и jQuery может помочь вам решить проблемы разработки корпоративных приложений Ajax.
Внешние ссылки
[ редактировать ]