В последнее время веб-приложения приобрели огромную популярность. 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-приложений вы можете руководствоваться следующими рекомендациями:
Если:
Если:
И напоследок приведу архетипы для системы сборки maven, чтобы вы могли сами попробовать оба фреймоврка в действии:
GWT:
В современном мире быстроменяющихся стандартов эта проблема особенно актуальна, соответственно нет ничего удивительного в том, что программисты хотят переложить эту часть работы на какой-либо фреймворк, чтобы выделить время для более важных дел - например, бизнес-логике.
В языке 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
Если:
- вы знаете swing
- вы знаете только java и ничего более
- проект должен был быть сделан "на вчера"
- производительность не так важна, как скорость разработки и поддержка
И напоследок приведу архетипы для системы сборки 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=myArtifactIdVaadin:
mvn archetype:generate -DarchetypeGroupId=com.vaadin \ -DarchetypeArtifactId=vaadin-archetype-clean \ -DarchetypeVersion=LATEST \ -DgroupId=your.company \ -DartifactId=project-name \ -Dversion=1.0 \ -Dpackaging=war
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.