WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте
Apache Tapestry
Тип Веб-фреймворк
Разработчик Apache Software Foundation
Написана на Java
Операционная система Кроссплатформенное ПО
Последняя версия
Состояние Active
Лицензия Apache License 2.0
Сайт tapestry.apache.org

Tapestry (с англ.«гобелен, тканое полотно») — объектно-ориентированный Java фреймворк для создания веб-приложений, реализующих модель MVC. Tapestry был создан Howard Lewis Ship (рус. Говард Льюис Шип) и продолжает активно развиваться. Фреймворк является проектом верхнего уровня в организации Apache Software Foundation. Основной акцент в Tapestry сделан на продуктивность разработчика, лёгкость использования, невозможность программистами создания больших кусков «glue code». Tapestry использует модульный подход к веб-разработке, используя биндинг между компонентами (объектами) пользовательского интерфейса на веб-странице и соответствующими им java-классами. Эта компонентно-ориентированная архитектура почерпнула большое количество идей из WebObjects (англ.)[2].

Tapestry 4

Текущим стабильным релизом Tapestry является версия 5.3.8. Версия 4 и более ранние довольно похожи, в то время как версия 5 содержит значительные изменения.

В Tapestry 4 веб-приложения разбиваются на страницы и компоненты. Страницы описывают уровень компонент, в то время как компоненты определяют функциональность. Этот подход разделяет цельное веб-приложение на легкоуправляемые фрагменты кода, которые управляют взаимодействием с пользователем, бизнес логикой и состоянием (англ.). Компоненты также делятся на базовые (core) и дополнительные (supplemental). Базовые компоненты являются основными «строительными кирпичами» приложения, такие как валидаторы форм, средства для построения интерфейса или объекты состояния. Дополнительные компоненты определяют, каким образом группа базовых компонент может взаимодействовать с другими базовыми компонентами в группе.

Шаблоны компонентов в Tapestry представляют собой XHTML файлы. Как правило, маппинг между java-классами и XHTML-объектами, которыми они управляют описывается в XML файле. Взаимодействие между backend'ом (java класс) и frontend'ом (XHTML объект) осуществляется с помощью OGNL. Разметка страницы производится иным образом, нежели в PHP, ASP, и JSP, в которых используются специальные теги для разделения переменных шаблона и кода.

Tapestry 5

Разработка пятой версии Tapestry началась вскоре после релиза версии 4. Разработчики поняли, что оригинальная архитектура, основанная на наследовании от базовых классов, затрудняет улучшение и развитие фреймворка с сохранением обратной совместимости в каждом релизе. Кроме того, она не позволяла решить большое количество проблем преследовавших разработчиков которые использовали данный фреймворк. Новый подход (и новая кодовая база) основывался на POJO, аннотациях и конвенции об именовании. Аннотации и конвенции об именовании практически полностью вытеснили файлы дескрипторов в формате XML предыдущих версий. Единственный XML файл требуемый проектом — web.xml. Кроме того, была устранена необходимость в перекомпилировании, архивировании, деплое и перезапуске сервлетов при каждом изменении в коде. Данная возможность получила название «живая перезагрузка классов» («live class reloading»). Все перечисленные возможности делают Tapestry 5 необычайно гибкой платформой для разработки веб-приложений.

Version 5 объединяет фреймворки Prototype и script.aculo.us со специфическими библиотеками Tapestry для поддержки технологии Ajax. Начиная с версии 5.4 Tapestry использует более современную библиотеку jQuery.

В Tapestry 5.1 была улучшена производительность и снижено потребление памяти, а также добавлены дополнительные функции для улучшения производительности, такие как автоматическая компрессия трафика с помощью GZIP и агрегация JavaScript библиотек. Несмотря на большое количество нововведений и улучшений, Tapestry 5.1 полностью сохраняет обратную совместимость с Tapestry 5.

Tapestry 5.2 объединяет спецификацию JSR 303 (валидация данных) со своими внутренними механизмами проверки. Живая перезагрузка классов (Live class reloading) была усовершенствована, и теперь также поддерживает перезагрузку реализаций сервисов (под сервисом имеется в виду связка интерфейса и класса реализации).

Tapestry 5.3 улучшает производительность, уменьшает использование памяти, добавляет новые компоненты. Переработан внутренний механизм работы с байт-кодом, полная поддержка HTML5.

Tapestry 5.4 находится в активной разработке и доступна только в виде исходного кода. Релиз несет серьезные изменения в работе с JavaScript. Tapestry 5.4 включает в себя RequireJS, асинхронный загрузчик JavaScript, на основе которого строится вся работа с JS файлами (модулями и библиотеками). Также новый релиз поддерживает автоматическую компиляцию LESS файлов. Обновлён пользовательский интерфейс — Tapestry использует Twitter Bootstrap UI фреймворк.

Связанные проекты

  • Tapestry 4 используется во фреймворке Trails Framework.
  • В Tapestry 5 по умолчанию доступна Blackbird консоль для отладки JavaScript[3]. Начиная с версии 5.3 консоль Blackbird убрана из фреймворка без замены[4].
  • Tapestry5-jQuery[5] — проект заменяет Prototype на jQuery и предлагает множество компонентов из jQuery UI[6]
  • Множество других компонентов и библиотек доступны на сайте фреймворка[7].
  • Поддержка IDE — для Tapestry 5 доступны плагины для Eclipse и IntelliJ IDEA.
  • Tapestry JumpStart — демонстрация возможностей фреймворка без использования дополнительных плагинов, и объяснение принципов его работы.[8]

Интеграция с другими фреймворками

В Tapestry 5 по умолчанию предусмотрена интеграция с

  • Twitter Bootstrap UI фреймворк. Доступен начиная с версии 5.4.
  • RequireJS JS фреймворк асинхронной загрузки JS модулей. Доступен начиная с версии 5.4.
  • jQuery JS библиотека. Доступен начиная с версии 5.4.
  • Spock фреймворк для модульного тестирования, написанный на Groovy. Базовый артефакт в maven repository: tapestry-spock.
  • Hibernate для поддержки ORM
  • Spring для внедрения зависимостей, DI англ. Dependency Injection
  • Spring-Boot для запуска внутри embedded-контейнера и поддержки двусторонней связи между tapestry и spring сервисами
  • Spring Security (ранее Acegi) для обеспечения безопасности
  • JBoss Seam для упрощения реализации бизнес логики
  • prototype/scriptaculous — со стороны пользователя (англ. frontend) Tapestry использует связку из двух JavaScript фреймворков.

Примечания

Литература

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии