Vaadin vs. Bootstrap - PullRequest
       23

Vaadin vs. Bootstrap

8 голосов
/ 24 февраля 2012

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

Мне нужны рекомендации от тех, кто имеет опыт разработки с Bootstrap и / или CoffeeScript и Vaadin. У меня есть два варианта:

  • Использование Bootstrap / CoffeeScript и некоторых фреймворков для серверного сайта, таких как Play Framework, Rails или Django
  • Vaadin

Критерий, который меня касается, связан с трудностями, которые могут возникнуть при проверке JavaScript и / или HTML5 на стороне клиента, а также при написании кода CSS и HTML с использованием Bootstrap. Стоит ли использовать CoffeeScript поверх Vaadin в практически ria-приложении? Я вижу, что есть много тех, кто выбрал Bootstrap, и я уверен, что у них есть свои причины.

Помогите мне с решением. Также может быть полезна некоторая соответствующая документация.

Ответы [ 2 ]

18 голосов
/ 25 февраля 2012

Vaadin

Vaadin - удивительно хороший инструмент для создания интерактивных веб-приложений в стиле рабочего стола, разработанных на чистом Java и поставляемых через обычные веб-браузеры.

Преимущества

Vaadin 6, 7 и 8 приложений работают полностью на стороне сервера. Библиотека JavaScript автоматически устанавливается Vaadin в окно браузера пользователя просто:

  • Рисует на экране все, что ему говорит серверное приложение.
  • Подача пользовательских действий (нажатие, ввод и т. Д.) Обратно на сервер, чтобы приложение могло их рассмотреть и ответить.

Таким образом, не существует «логической проверки на стороне клиента» или «проверки html5», по крайней мере, с точки зрения разработчика приложений Vaadin. Платформа Vaadin может скрывать это во внутренней реализации, но это не мое дело как разработчика приложений Vaadin. Это основное преимущество Vaadin: мне все равно, как Vaadin выводит мои формы на экран пользователя. Как разработчик приложений Vaadin, я не пишу JavaScript, HTML, DOM, CSS или AJAX. Просто чистая Java.

Стиль похож на Swing : создание макета (форма), добавление меток , добавление кнопок , добавление поля , добавить другие виджеты . Прикрепите валидаторы по мере необходимости. Гнездо дополнительных раскладок, для сложных форм. Все это выполняется в памяти на стороне сервера, все на чистой Java. Напоследок расскажу макет, чтобы показать себя. Пуад, подобно магии, Ваадин велит браузеру отображать подобие этой формы.

Если вы хотите разрабатывать приложения в стиле рабочего стола, которые могут быть развернуты через веб-браузер, Vaadin - замечательный инструмент.

Trade-Offs

Компромиссы включают в себя:

  • Много использования памяти и ЦП на стороне сервера.
  • Отказ от контроля над HTML / CSS / JavaScript.

Пересчет

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

Это может ограничить масштабирование. Но с учетом 64-битной Java, нескольких гигабайт памяти и нескольких ядер даже на самых низких машинах, таких как Mac mini, масштабирование , вероятно, является проблемой только для самых крупных и загруженных приложений.

И даже в тех редких приложениях с большим / занятым могут быть способы управления масштабированием в Vaadin. Все приложение живет в сеансе сервлета. Некоторая веб-инфраструктура позволяет перемещать такое состояние сеанса между серверами или даже сохранять его в хранилище для других серверов.

Или ваше приложение может хорошо масштабироваться. Моделирование с 11 000 одновременных клиентов было сделано. См:

Контроль над HTML, CSS, JavaScript

Если ваша команда чувствует себя более комфортно или имеет опыт работы с традиционными архитектурами веб-приложений, то Vaadin может не подойти вам. В Vaadin вы пишете свое приложение полностью на чистом Java, а Vaadin автоматически переводит его в HTML, CSS и JavaScript.

Вы можете немного настроить CSS. И даже не касаясь CSS, «темы» Ваадина ( Valo , Reindeer ) дают вам большой контроль над цветами, размерами и шрифтами, если вы хотите изменить настройки по умолчанию. Но знайте, что Ваадин находится на «месте водителя» в создании HTML и CSS; Вы всего лишь пассажир, которому разрешено небольшое «вождение на заднем сиденье».

Если ваша цель заключается не в разработке приложений в стиле рабочего стола, если вы хотите, чтобы получили полный контроль над HTML / CSS, тогда Vaadin не для вас.


Обновление

Ваадин 8 выпущен

22 февраля 2017 года Ваадин 8 был выпущен .Самым большим улучшением является переписанная модель данных и API привязки данных, использующие современные функции Java, такие как обобщенные типы с параметрами типа и лямбда-выражения.Кроме того, более эффективен с памятью и процессором.

Выпущен Vaadin 7.

Хотя в целом та же архитектура, что и у Vaadin 6, 7 лучше, чем когда-либо.Смотрите: Что нового .

5 голосов
/ 24 февраля 2012

Я бы пошел с Rails 3.2 + Bootstrap + Backbone.js, стек, который мы здесь используем.

  • Rails : Хорошее сообщество, надежная платформа, которую очень легко разрабатывать, можно развернуть в Heroku (да благословит Бог Heroku).
  • Bootstrap 2.0 : HTML5-совместимые, хорошие готовые функции, хорошее сообщество (просто посмотрите на их страницу github), разумные js-плагины.
  • Backbone.js : Очень хорошо для приложений, насыщенных клиентом, хорошо сочетается с остальной частью стека (особенно с jQuery), обеспечивает хорошее взаимодействие с пользователем при правильном использовании, ненавязчиво. Особенно хорошо для динамических форм, так как вы можете реорганизовать много кода, используя специализированные представления (автозаполнение, таблицы с несколькими элементами, связанные блоки выбора и т. Д.).

Что касается документации, то и Rails, и Bootstrap превосходны, и вы можете найти много книг о них. Backbone.js, несмотря на свою большую пользовательскую базу, более специализирован, но вы все равно можете найти много хороших скринкастов и электронных книг в сети (я рекомендую работы peepcode и мыслибота).

Удачи в вашем приложении!

PS: Еще один хороший момент использования Rails - это набор гемов и аддонов, которые вы можете использовать. Полнотекстовый поиск? Веснушка. Аудит и управление версиями? PaperTrail. BDD? Огурец. Я предлагаю вам зайти на сайт Ruby Toolbox.

...