Статьи

Интервью: Хосе Ноэда о IWebMvc Framework

IWebMvc , веб-инфраструктура, которая анонсировала выпуск Milestone 5 несколько дней назад, является частью (очень) многолюдной области. Однако его сочетание Dojo / Hibernate / Spring / DWR и, возможно, Groovy делает его, по крайней мере, интересным. Недавно его автор, Хосе Ноэда, обсуждал переполненную область веб-фреймворка в своем блоге и, чтобы узнать больше, Джавалобби берет у него интервью ниже. ( Нажмите здесь для загрузки, включая скринкасты.)

Хосе, еще один веб-фреймворк! Почему, о, почему?

В настоящее время веб-фреймворки на Java — это десятки, это точно. Каждый из них нацелен на разные типы людей. Фреймворк, такой как AppFuse, похоже, фокусируется на начале проекта; Нажмите на компонентно-ориентированный дизайн; Grails на Groovy и т. Д. На прошлой неделе я прочитал о Web4J — новой (коммерческой) среде, которая не поможет разработчику с AJAX.

У каждого есть аудитория. IWebMvc заполняет пробел, предлагая современное и надежное серверное решение, основанное на JEE5, Spring 2.5 и Hibernate-JPA, а также полностью интегрированный интерфейс AJAX. Другие проекты предлагают интеграцию DWR, а некоторые могут включать в себя плагин Dojo, но они не были разработаны с учетом этого, и это видно! IWebMvc с самого начала рассматривал управление клиент-серверными коммуникациями как центральную часть работы. Кроме того, я являюсь коммиттером DWR, что дает мне преимущество, поскольку я могу интегрировать функции между обоими проектами так, как не смог бы сделать ни один другой разработчик.


Конечно, все веб-фреймворки предоставляют несколько ключевых функций, таких как CRUD, i18n, привязка и проверка.
Это может иногда быть изобретением колеса.

В двух словах, можете ли вы указать три причины, по которым я бы использовал IWebMvc?

  • Готовая функциональность
  • Завершите предопределенный стек. Нет плагинов, нет соображений, тесная интеграция, меньше проблем
  • Современное состояние: AJAX, Spring 2.5.4, Spring Security 2.0, Spring Webflow 2.0, Dojo 1.1.1, API Google …

Там нет ничего лучше!

Каким образом другие платформы не предоставляют эти возможности?

Я уже говорил об интеграции DWR и о том, как ее нельзя сопоставить (на самом деле, IWebMvc является единственной платформой, которая в настоящее время включает v3). Пару дней назад в списке рассылки Dojo обсуждалась нехватка функций (фреймворков) MVC, доступных для Dojo. IWebMvc был упомянут как мощная альтернатива.

Кроме того, IWebMvc оборачивает dijit в расширенные виджеты, которые объединяют другие технологии, такие как Flash или API Google AJAX. Я почти уверен, что я тоже здесь один.

Конечно, внутренний уровень переполнен, но IWebMvc находится на одном уровне с другими платформами, интегрируя Spring, JPA, TX, AOP, Security, CRUD, потоки …

Можете ли вы провести нас через шаг за шагом, быстрый старт?

Установка всего не может быть проще. Просто скачайте и распакуйте или оформите заказ в Subversion. IWebMvc предоставляет рабочие скрипты сборки на основе Ant + Ivy. Он будет прозрачно управлять переходными зависимостями. Нет проблем.

Запуск демонстрационного приложения одинаково прост, поскольку он включает в себя цель Ant (которая может быть запущена из пакетного файла в Windows), которая выполняет встроенный сервер Jetty. Вот это развернуто в Eclipse:

Разработчик может сразу же открыть проект в обоих NetBeans 6.1 …

… или Eclipse 3.3:

… и развернуть либо Glassfish, либо Tomcat. После развертывания фреймворк автоматически создаст схему БД, поэтому опять никакой дополнительной работы там не будет (просто создайте пустую базу данных при использовании MySQL).

Примечание. В IWebMC код платформы находится рядом с кодом приложения. Там нет реального разделения. Это сделано для того, чтобы любой разработчик мог изменить класс платформы / widget / tag / JSP, как если бы он был частью приложения. В финальном выпуске будут доступны три версии: одна с расширенной платформой, одна с платформой, упакованной как JAR (внутри WEB-INF / lib), и одна со встроенным демонстрационным приложением.


Исходя из описанной выше ситуации, пользователям предлагается просмотреть демонстрационное приложение и увидеть его функциональность.
Следующим шагом будет создание объекта домена и проверка автоматически сгенерированных операций CRUD.

Например, этот простой POJO написан на Groovy. Обратите внимание, как легко интегрируются виджеты:

@Entity
@Indexed
@Table(name = "ITEMS")
@NamedQuery(name = "Item.findAll", query = "SELECT i FROM Item i")
class Item extends AbstractDomainEntity {

@Field
@Column(name = "REFERENCE")
@StringConstraint(minLength = 1)
String reference

@IndexedEmbedded
@JoinColumn(name = "COMMERCIAL")
@ManyToOne(fetch = FetchType.EAGER, cascade = [CascadeType.ALL])
I18nText name

@DateConstraint(maxValue = DateConstraint.DateLiteral.TODAY)
@Temporal(TemporalType.DATE)
@Column(name = "DATEPACKAGED")
Date packaged

@BeanConstraint
Rating quality

@JoinColumn(name = "WAREHOUSE")
@ManyToOne(cascade = [CascadeType.ALL])
Address storeLocation

@JoinColumn(name = "PHOTO")
@ManyToOne(fetch = FetchType.EAGER, cascade = [CascadeType.ALL])
Image image

}

Приведенный выше код автоматически получит разработчик (менее чем за пять минут):

  • Обновление схемы БД
  • Полнотекстовый поиск и фильтрация
  • Данные на нескольких языках (столько, сколько определено)
  • Проверка (в полях строки, даты и объекта)
  • Операции создания, чтения, обновления, удаления
  • Две (настраиваемые) страницы для работы
  • Защищенный URL

Смотрите один скриншот (поля могут быть расположены по-разному, используя пользовательскую страницу вместо стандартной):

Или попробуйте Groovy Script и избегайте повторного развертывания!

Можете ли вы сравнить и сопоставить IWebMvc со следующими альтернативами: JSF, Struts, GWT, Wicket.

  • JSF: IWebMvc предоставляет клиентские компоненты на основе виджетов Dojo, получает AJAX через DWR, привязку и проверку через Spring, а также внутренний компонент, представляющий собой POJO, аннотированный с использованием JPA. Я никогда не любил JSF.
  • Struts: IWebMvc полностью опирается на Spring MVC, поэтому любое сравнение между ними применимо здесь.
  • GWT: IWebMvc предоставляет все необходимые JS для разработчика. Между DWR и GWT идет какая-то работа, поэтому я могу включить некоторую поддержку в будущем …
  • Калитка: Здесь у нас есть сравнение яблок с яблоками. Это может быть делом вкуса, в IWebMvc вы не увидите никакого кода вроде add (new Label («counter», model)) ;. Конечно, стек отличается и для людей, привыкших к Spring MVC и Dojo, вероятно, IWebMvc подходит более естественно. И вы можете код в Groovy! Wicket — это проект Apache, хотя …

Почему он называется IWebMvc?

«Я» происходит от Internna , компании, которую я основал в 2005 году. Остальное, ну … Мне нужен консультант по маркетингу. 🙂

Когда и как вы начали работать над этим фреймворком?

Середина января 2008 года. Первый выпуск занял около шести месяцев, так как раньше я создавал подобные архитектуры. Я был в процессе смены работы и у меня было много свободного времени. Я был счастлив от того, как все складывалось, поэтому я продолжил.

Есть ли другие, вовлеченные в проект?

Просто я. Я открыт для вкладов и помощи!

Каковы сроки выхода следующих релизов и что вы ожидаете от них?

IWebMvc предоставляет большое количество функций к настоящему времени. Более 40 виджетов! Я призываю любого заинтересованного разработчика взглянуть на записанные видеоролики ( http://code.google.com/p/internna/downloads/list ). Они показывают большинство функций на стороне клиента. Итак, я заморозил кодовую базу. В течение последних шести месяцев моей главной заботой было добавление функциональности. Они изменились, и я просто беспокоюсь об устранении ошибок и получении версии 1.0, готовой к работе. Я ожидаю получить RC через 10 дней и окончательный выпуск до конца июня.