8 ноября 2011 г.

RIA: GWT или Vaadin

В последнее время веб-приложения приобрели огромную популярность. RIA (Rich Internet Application) - это нечто большее, чем просто сайт. Это практически полноценное приложение, которое запускается в браузере. Плюсов переноса своих десктоп-приложений в веб множество: это и платформонезависимость, и расширяемость, и оперативное исправление ошибок. Однако и минусов тоже хватает и в первую очередь стоит отметить сложность обеспечения корректной работы приложения в разных браузерах.

В современном мире быстроменяющихся стандартов эта проблема особенно актуальна, соответственно нет ничего удивительного в том, что программисты хотят переложить эту часть работы на какой-либо фреймворк, чтобы выделить время для более важных дел - например, бизнес-логике.

В языке java существует два фреймворка, которые можно считать стандартами в разработке RIA-приложений: GWT и Vaadin. Рассмотрим чуть подробнее каждый из них.


GWT (Google Web Toolkit) - это фреймворк, разрабатываемый гуглом. Его отличительной особенностью является то, что разрабатываемый java-код компилируется в javascript и выполняется на стороне клиента. Общение с сервером происходит через RPC асинхронным удаленным вызовом функций сервера. Это доставляет определенные неудобства, т.к. вы должны будете использовать DTO (data transfer object) для передачи данных от клиента к серверу.

Vaadin - фреймворк, базирующийся на GWT, обладающий одним существенным отличием - весь код исполняется на стороне сервера. Это избавляет программиста от необходимости писать html, css и позволяет сконцентрироваться только на java-коде. Однако за простоту написания и поддержки приходится платить производительностью - даже такое казалось бы тривиальное действие, как выбор компонента в  ComboBox'e требует коммуникации с сервером.

Таким образом при написании RIA-приложений вы можете руководствоваться следующими рекомендациями:

Если:
  • ваше приложение предпологает высокую нагрузку
  • у вас есть время
  • вы знаете html, css и javascript
используйте GWT.

Если:
  • вы знаете swing
  • вы знаете только java и ничего более
  • проект должен был быть сделан "на вчера"
  • производительность не так важна, как скорость разработки и поддержка
используйте Vaadin.

И напоследок приведу архетипы для системы сборки maven, чтобы вы могли сами  попробовать оба фреймоврка в действии:

GWT:
mvn archetype:create -DarchetypeGroupId=com.totsp.gwt \
    -DarchetypeArtifactId=maven-googlewebtoolkit2-archetype \
    -DarchetypeVersion=1.0.4 \
    -DremoteRepositories=http://gwt-maven.googlecode.com/svn/trunk/mavenrepo \
    -DgroupId=myGroupId \
    -DartifactId=myArtifactId  
Vaadin:
mvn archetype:generate -DarchetypeGroupId=com.vaadin \
    -DarchetypeArtifactId=vaadin-archetype-clean \
    -DarchetypeVersion=LATEST \
    -DgroupId=your.company \
    -DartifactId=project-name \
    -Dversion=1.0 \
    -Dpackaging=war

Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.