Tapestry

Материал из Seo Wiki - Поисковая Оптимизация и Программирование
Перейти к навигацииПерейти к поиску
Apache Tapestry
Apache Tapestry Logo
Тип Веб-фреймворк
Разработчик Apache Software Foundation
Написана на Java
ОС Кроссплатформенное ПО
Версия 5.1.0.5 (6 мая 2009)
Лицензия Apache License 2.0
Сайт http://tapestry.apache.org (англ.)

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

Tapestry 4

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

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

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

Tapestry 5

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

Version 5 объединяет фреймворки Prototype и Scriptaculous Javascript со специфическими библиотеками Tapestry для поддержки технологии Ajax.

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

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

Tapestry 4 используется в фреймворке Trails Framework.

Примечания

  1. Tapestry in Action — Preface by Howard Lewis Ship

Литература

Ссылки

cs:Tapestry de:Tapestry en:Tapestry (programming) es:Tapestry framework fr:Apache Tapestry ja:Apache Tapestry zh:Tapestry

Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....