Слайд 1Средства разработки web приложений
(Web frameworks) Малышкин Фёдор 2 ноября 2007
Слайд 2Содержание Введение Основа архитектуры «тонких» клиентов Средства разработки веб-приложений: JSP Struts Spring Tapestry JSF Сравнение
Слайд 3Введение Данная презентация познакомит Вас с существующими библиотеками разработки веб-приложений на языке
Java. Будут описаны основополагающие моменты, лежащие в их основе, приведены примеры их использования, описаны их преимущества и недостатки. Так же будут описаны классические модели реализации «тонких» клиентов, коим веб-приложение и является.
Слайд 4Основа архитектуры «тонких» клиентов
В качестве основы для всех клиентов, связанных с
пользовательским вводом (не обязательно «тонких»), используется MVC (Model-View-Controller). Эта архитектура разделяет приложение на: Модель данных (Model), занимающуюся хранением данных, обработкой данных (бизнес - логикой), а так же всем остальными «не визуальными» вещами. Представление (View), занимающуюся отображением и представлением данных Контроллер (Controller), занимающийся коммуникацией между данными и представлением. В веб-приложениях данная модель называется «Model-2» (что бы отделить от настольной реализации MVC) и указать, на то что она является приемником «Model-1».
Слайд 8Struts (Краткая характеристика) Положительные стороны: Много проектов реализованных с помощью данной библиотеки, подтверждает
её стабильность и надёжность Огромное количество примеров и документации HTML библиотека тэгов одна из лучших Отрицательные стороны: Программирование «контроллера» - ActionForms – задача не из лёгких Невозможно автономное тестирование Ходят слухи, что проект «мёртв»
Слайд 9Spring (Краткая характеристика) Положительные стороны: Переопределение правил связки данных на форме и в
приложении, правил навигации и проверки введённых значений Прозрачная интеграция с многочисленными средствами представления данных: JSP/JSTL, Tiles, Velocity, FreeMaker, Excel, XSL, PDF. Удобная среда для автономного тестирования Отрицательные стороны: Много XML (в области конфигурирования) Требует большого количества кода в JSP «Слишком» гибок
Слайд 22Tapestry (Краткая характеристика) Положительные стороны: Очень эффективна после изучения Шаблоны являются HTML, что очень
хорошо для дизайнеров Хорошее сообщество пользователей Отрицательные стороны: Документация достаточно сложна для восприятия Крутая кривая обучения Мало примеров Долгие циклы релизов – ведущие релизы 1-2 раза в год
Слайд 30Улучшения в следующей версии
Tapestry Богатая поддержка аннотаций Высокий уровень конфигурирования – базирование
на IoC контейнере Hivemind Требует меньше кода – более простая реализация классов реализующих логику страниц Поддержка URL дружественных к пользователю Компоненты Tacos AJAX
Слайд 31JSF (Краткая характеристика) Положительные стороны: J2EE Стандарт Быстрая и простая разработка Богата библиотека навигации (аналог
Spring Web Flow) Отрицательные стороны: Мешанина из JSP тэгов Плохая поддержка «легковесных» вызовов (REST) Нет единого источника реализации
Слайд 40Улучшения в следующей версии
JSF (1.2) Унифицированный EL – лучшая поддержка JSTL Фокусировка
на лёгком использовании Расширенная поддержка AJAX Дополнительные реализации: ADF Faces, Facelets
Слайд 41Сравнение. Критерии Сортируемые/Листаемые списки – насколько просто создать список данных с листаемыми
страницами и возможностями сортировки. Возможность создания закладок – может ли пользователь создавать закладки на страницы для последующего обращения к ним? Валидация - проверка введённых значений. Тестируемость – возможности для автономного тестирования классов, составляющих клиента, вне контейнера.
Слайд 42Сравнение. Критерии Интернационализация Модификация «на лету» - принятие исправлений без необходимости перекомпиляции или
перезапуска контейнера Поддержка разработчиками Производительность/Масштабируемость «Компонетность» - возможность создания повторно-используемых, параметризуемых модулей Возможности языка выражений
Слайд 43Сортируемые/Листаемые списки JSP – никакой поддержки Spring & Struts могут использовать библиотеки тэгов,
типа “DisplayTag” Tapestry имеет contrib:Table компонент JSF имеет h:dataTable компонент без возможностей сортировки – необходимо писать свою собственную логику для реализации данного функционала
Слайд 44Возможность создания закладок JSP, String & Strut имеют полный контроль над строкой
запроса Tapestry имеет слегка корявую поддержку создания закладок, но всё же все возможности реализованы JSF делает POST для всего – закладки даже не рассматриваются (но при желании и это можно обойти)
Слайд 45Валидация JSP – «собственные» решения, либо перенос проверки в модель данных String &
Struts используют проект Apache – Commons Validator – надёжное и зрелое решение Tapestry – хорошая архитектура валидации – хорошие сообщения (даже без необходимости корректировки под свои нужды) JSF – «некрасивые» сообщения об ошибках по-умолчанию (но легко исправляется)
Слайд 46Тестируемость Struts – необходимо использование StrutsTestCase JSP, Spring – легко тестируется с использованием
средств генерации «заглушек» (mock) (EasyMock, jMock, Spring Mock…) Tapestry – неочевидное тестирование, т.к. классы абстрактные – класс Creator помогает JSF – самое простая архитектура для тестирования – классы – просто бины
Слайд 47Интернационализация JSTL позволяет делать это легко почти в любой реализации JSP, Struts,
Spring, JSF – используют один ResourceBundle на язык Tapestry – предпочитает отдельные файлы для страниц/компонентов JSF требует, что данные с локализацией были объявлены на каждой странице
Слайд 48Модификация «на лету» JSP – самый гибкий в данном случае (конечно при
корректном использовании). JSP файлы перекомпиливаются при каждом изменении, а вот классы нет. Tapestry, Spring & Struts – всё (страницы, компоненты, библиотеки и конфигурационные файлы) (кроме классов) перечитывается при изменении. JSF – не перечитываются конфигурационные файлы.
Слайд 49Поддержка разработчиками JSP & JSF – стандарт, большое сообщество разработчиков и множество
документации Spring – большое количество примеров и документации, хорошая поддержка разработчиками библиотеки Tapestry – мало хорошей, понятной документации. Мало примеров. Struts – отсутствие поддержки со стороны разработчиков, но при этом много документации и примеров использования в больших проектах
Слайд 50Производительность / Масштабируемость JSP – хорошие показатели, в связи с отсутствием каких-либо
промежуточных уровней Tapestry – после версии 4.0 (где было удалено широкое использование интроспекции) скорость стала сравнима с JSP JSF – не самые лучшие показатели… Spring & Struts – адекватные показатели.
Слайд 51«Компонетность» JSP – тэг-файлы и тэги. Tapestry – очень ориентированная на создание и
использование компонетов, хорошая интеграция с JavaScript. JSF – хорошие возможности по созданию компонентов, но создавать не так легко как в Tapestry. Spring & Struts – лишь то же, что даёт JSP.
Слайд 52Возможности языка выражений JSP, JSF, Spring, Struts – богатые возможности EL говорят
сами за себя. Tapestry – вместо EL используется OGNL, который предоставляет ещё большие возможности.
Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.