Я разрываюсь между Wicket и Vaadin. Я начинаю микро-ISV, и мне нужно выбрать веб-фреймворк. Я сузил свой выбор до Wicket и Vaadin. Я использовал оба фреймворка, и мне они оба нравятся.однако мне нужно сделать выбор.
Если я выберу Ваадина:
Однако, если я пойду по пути Ваадина:
Если я пойду по пути Wicket:
Есть совет? Любой, у кого есть опыт работы с любым из этих фреймворков, любезно расскажет мне о плюсах и минусах, а также о том, как вы приняли решение.
У меня ограниченный опыт работы с каждым из них, но я предпочитаю Ваадин. Это позволило получить более богатый опыт работы с разрабатываемым мной веб-приложением. Главное преимущество, которое нас подкупило, заключалось в том, насколько легко было писать модульные тесты для наших классов пользовательского интерфейса, обеспечивая правильную работу компонентов при взаимодействии с ними ожидаемым образом. Это также возможно с Wicket, но, по моему опыту, это было сложнее.
Я также отмечу, что любой фреймворк потребует некоторого стиля. Wicket начинается с простого старого HTML, а Vaadin по умолчанию начинает с MacOSX-подобной темы, но почти любое написанное вами веб-приложение потребует хотя бы НЕКОТОРОЙ настройки. Имея это в виду, настройка CSS приложения Wicket ЗНАЧИТЕЛЬНО проще, чем Vaadin, по той простой причине, что вы управляете разметкой. Vaadin скрывает от вас разметку и генерирует элементы со странными идентификаторами и структурами, поэтому настроить внешний вид сложнее. Просто помните об этом, принимая решение.
Я много работал с Wicket, но не опыт работы с Vaadin, так что это может быть (немного) предвзятым.
Я бы порекомендовал Wicket по очевидным причинам, но что, вероятно, вас заинтересует, так это открытость Wickets. Как правильно заметил Gweebz, Wicket использует в качестве основы базовую HTML-разметку, поэтому любые структурные или косметические изменения часто несложно реализовать.
Лично мне очень нравится работа с калиткой, которая мне нравится, — это взаимодействие между внешним интерфейсом и серверной частью данных. Мы внедрили Spring и JPA/Hibernate, что означает, что любые изменения во внешнем интерфейсе могут быть переведены обратно в база данных с помощью одной строки кода благодаря архитектуре, основанной на модели Wickets.
Опять же, я не могу много сказать о Vaadin, так как никогда не работал с ним, но если вы ищете архитектуру для начала, я также рекомендую вам взглянуть на GWT.