Калитка против Ваадина - PullRequest
       26

Калитка против Ваадина

48 голосов
/ 24 августа 2010

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

Если я выберу Ваадина:

  1. , мне не придется сильно беспокоиться о внешнем виде.Он поставляется с хорошими темами.
  2. Я буду заниматься всем моим программированием на Java, в котором я очень хорош, и не буду тратить время на взлом CSS, который не очень хорош.
  3. И большинствоКомпоненты, которые мне понадобятся для бизнес-приложений, уже есть вне коробки, включая макет, похожий на рабочий стол, всплывающие подсказки, сочетания клавиш, таблицы с перетаскиваемыми и складывающимися столбцами и другие.

Однако, если яиди по пути Vaadin:

  1. Я упущу возможность декларативного создания пользовательского интерфейса.
  2. У меня не будет запасной функции, если браузер не поддерживает JavaScript - например, большинство не мобильных Webkitбраузеры.
  3. Компания Vaadin продает некоторые компоненты - например, JPAContainer, поэтому я не уверена, что компания будет стремиться предлагать полную среду с открытым исходным кодом.Деловые интересы всегда будут на первом месте.
  4. Приложения Vaadin будут в основном для внутренней сети.Они не очень подходят для интернета с веб-интерфейсом.

Если я пойду по калитке:

  1. Мне придется стилизовать свои приложения, и я смогувряд ли дать им рабочий стол внешний вид.

Есть совет?Любой, кто имеет опыт работы с любой из этих систем, расскажет мне о минусах и плюсах и о том, как вы приняли решение.

Ответы [ 6 ]

30 голосов
/ 07 сентября 2010

Я думаю, что потратил некоторое время на обе платформы. Мне действительно нравятся оба, потому что они приносят Swing-подобное кодирование в веб-разработку. И я не знаю более легких для меня (хотя есть щелчок, но мне не нравятся вещи с шаблонами скорости)

И да, есть различия.

Мне не нужно сильно беспокоиться о внешнем виде. Он поставляется с хорошими темами

верно, но каждая серьезная компания будет разрабатывать свое приложение по-разному (если вы не создаете прототип)

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

Тогда Ваадин будет «лучше».

Я потеряю возможность декларативно создавать пользовательский интерфейс.

Каковы преимущества этого? (Кстати: вы можете написать декларативный код в groovy ;-))

Но хорошо. Я знаю, что вы имеете в виду: если вы можете усилить отдельных дизайнеров, чем калитка "лучше".

Я с трудом могу придать им внешний вид и ощущение рабочего стола.

Почему бы и нет? Или что вы имеете в виду здесь? Wicket поддерживает ajax, и есть компоненты, которые поддерживают приятные вещи, похожие на десктопы (ajaxlink, lazycomponent, автозаполнение, индикатор выполнения, см. Wicket stuff + extensions). Хорошо, для любого более сложного компонента вам придется кодировать в javascript, НО Кстати, знаете ли вы, что вы можете даже использовать GWT в калитке

Некоторые незначительные переживания:

Vaadin, безусловно, быстрее при кодировании (нет CSS, HTML). Но если вы собираетесь работать, имейте в виду, что простота программирования может привести к снижению производительности на стороне клиента: например, если вы используете «неправильные» макеты, такие как Horizontal / VerticalLayout, ... массовое использование javascript может замедлить работу старого браузера.

Но Ваадин не медленный! Используйте соответствующие макеты, такие как CssLayout или FastLayout, а также старый браузер может обслуживать его. (Хотя, если бы вы использовали CssLayout, ваш стиль кодирования действительно похож на калитку.)

Одна проблема с Vaadin состоит в том, что его немного сложнее профилировать, потому что вы не можете легко увидеть, где клиенту нужен весь ЦП, а вложенные div-ы получают загадочные id-имена.

Отличительной особенностью Wicket является его интеграция с сохранением деформации

(Guice может быть интегрирован в Vaadin и Wicket)

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

Последнее, но не менее важное: создание списков / таблиц в Vaadin ОЧЕНЬ легко по сравнению с калиткой.

10 голосов
/ 25 августа 2010

Я много работал с Wicket, но у меня не было опыта работы с Ваадином, так что это может быть (немного) предвзятым.

Я бы порекомендовал Wicket по понятным причинам, но что, вероятно, вас интересует, это открытость калиток. Как справедливо заметил Гвебз, в качестве основы Wicket использует базовую разметку HTML, поэтому любые структурные или косметические изменения часто тривиальны для реализации.

Лично одной из вещей, которые мне действительно нравятся в работе с калитками, является поток между представлением интерфейса и сервером данных, мы внедрили Spring & JPA / Hibernate, что означает, что любые изменения в интерфейсе могут быть переведены обратно база данных с одной строкой кода благодаря архитектуре на основе модели Wickets.

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

9 голосов
/ 02 сентября 2010

(продолжение комментария в первом ответе, связанном с Wicket)

Основное различие между Vaadin и Wicket заключается в том, как пишется состав пользовательского интерфейса и код на стороне клиента.С Vaadin вы обычно создаете свой пользовательский интерфейс без каких-либо шаблонов или HTML вообще, и вы получаете гладкий, полностью Ajax-ориентированный пользовательский интерфейс из коробки.Однако, если вы предпочитаете шаблонный подход, просто используйте CustomLayout, который делает именно это.

Кодирование на стороне клиента редко требуется, но когда это происходит, вы делаете это с GWT на основе Java, который IMO намного приятнее, чемнаписание Javascript вручную.Кроме того, с GWT вы автоматически получаете кросс-браузер-совместимое решение вместо того, чтобы решать эти проблемы самостоятельно.

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

7 голосов
/ 24 августа 2010

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

Я также упомяну, что любой фреймворк потребует некоторой стилизации. Wicket начинается с простого старого HTML, а Vaadin по умолчанию запускается с MacOSX-подобной темой, но практически любое веб-приложение, которое вы пишете, требует как минимум НЕКОТОРЫХ настроек. Имея это в виду, настроить CSS приложения Wicket значительно проще, чем Vaadin, по той простой причине, что вы управляете разметкой. Vaadin скрывает от вас разметку и генерирует элементы со странными идентификаторами и структурами, что затрудняет настройку внешнего вида. Просто запомните это при принятии решения.

4 голосов
/ 01 февраля 2016

В настоящее время я работаю с Wicket и работал на перевале с Ваадином. Я буду короток в своих наблюдениях:

  • Ваадин имеет право быть свободным, но ИМО, не такая красивая. Если вам нужна поддержка, помощь, документация для тех болезненных и хитрых проблем, с которыми вы сталкиваетесь, то вы облажались, потому что у вас нет такой хорошей документации / сообщества по сравнению с Apache Wicket. У Ваадина есть ребята, чтобы помочь вам, но вы должны заплатить за это.;
  • Чтобы программировать в калитке, нужно быть сильным программистом. Vaadin также требует хороших знаний Java, но вы можете легко сделать спагетти-код, если хотите (просто сказать, не делать ..);
  • Apache Wicket действительно отделяет веб-технологии (Javascript, HTML и т. Д.) От фреймворковой технологии (Java). Ваадин тоже пытается это сделать, но ИМО не настолько элегантна и прозрачна в этом.

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

Редактировать: Да, и насчет внешнего вида, например, у вас всегда есть Wicket Bootstrap

3 голосов
/ 30 декабря 2013

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

Например - если вам нужно интегрировать хорошее решение для построения диаграмм, такоекак Highcharts, вам придется заплатить и купить расширение vaadin charts (хотя high-чарты доступны бесплатно для приложений FOSS, встроенный плагин vaadin charts, который не предоставляется бесплатно для приложений FOSS).

...