Веб-приложение, реализованное с помощью Vaadin Flow | |
Разработчик (и) | Vaadin Ltd. |
---|---|
Стабильная версия | 14.1.17 / 10 Февраль 2020; 8 месяцев назад (2020-02-10) |
Репозиторий | Репозиторий Vaadin |
Написано на | Java, JavaScript |
Платформа | Кросс-платформенность |
Тип | Веб-фреймворк |
Лицензия | Лицензия Apache 2.0 |
Веб-сайт | vaadin.com |
Vaadin (финское произношение: ) - это платформа с открытым исходным кодом для разработки веб-приложений. Платформа Vaadin включает набор веб-компонентов, веб-фреймворк Java , а также набор инструментов и стартеров приложений. Его флагманский продукт, платформа Vaadin (ранее Vaadin Framework), позволяет реализовать веб-интерфейсы пользователя HTML5 с использованием языка программирования Java.
Разработка сначала началась как адаптер поверх веб-платформы Millstone 3 с открытым исходным кодом, выпущенной в 2002 году. Он представил основанный на Ajax движок клиентского взаимодействия и рендеринга. Затем в 2006 году эта концепция была разработана отдельно как коммерческий продукт. Как следствие этого, большая часть server-side API Vaadin все еще совместима с Swing-подобными API-интерфейсами Millstone.
В начале 2007 года название продукта было изменено на IT Mill Toolkit, и была выпущена версия 4. Он использовал проприетарную реализацию JavaScript Ajax для рендеринга на стороне клиента, что значительно усложняло реализацию новых виджетов. К концу 2007 года проприетарная реализация на стороне клиента была прекращена, и GWT был интегрирован поверх компонентов на стороне сервера. В то же время лицензия на продукт была изменена на лицензию с открытым исходным кодом Apache License 2.0. Первый готовый к производству выпуск IT Mill Toolkit 5 был выпущен 4 марта 2009 года после более чем одного года бета-тестирования.
11 сентября 2008 г. было публично объявлено, что Майкл Видениус - главный автор оригинальной версии MySQL - инвестировал в IT Mill, разработчика Ваадин. Размер инвестиций не разглашается.
20 мая 2009 г. компания IT Mill Toolkit изменила свое название на. Название происходит от финского слова, обозначающего лань, точнее говоря, самка северного оленя. Его также можно перевести с финского как «я настаиваю». Помимо изменения названия, был запущен предварительный выпуск версии 6 вместе с веб-сайтом сообщества. Позже IT Mill Ltd, компания, стоявшая за Vaadin Framework с открытым исходным кодом, сменила название на Vaadin Ltd.
30 марта 2010 года был открыт каталог Vaadin. Он добавил канал для распространения дополнительных компонентов к ядру Vaadin Framework, как бесплатно, так и на коммерческой основе. На дату запуска для загрузки уже было доступно 95 надстроек.
22 февраля 2017 года была выпущена Vaadin Framework 8. Улучшения включают переписанный API привязки данных с использованием современных функций Java, таких как параметры типов и лямбда-выражения, а также более эффективное использование памяти и ЦП.
25 июня 2018 года Ваадин 10 был освобожден. Vaadin 10 сделал возможным использование компонентов Vaadin из любой технологии, совместимой с веб-компонентами и улучшенным каталогом Vaadin для включения распространения веб-компонентов. Vaadin Flow - следующее поколение Vaadin Framework - был представлен как серверная веб-платформа Java поверх компонентов Vaadin.
5 сентября 2018 г. был выпущен Vaadin 11 с интеграцией Gradle, несколькими новыми компонентами и диаграммами Vaadin 6.1.
5 декабря 2018 г. был выпущен Vaadin 12.
6 марта 2019 г. был выпущен Vaadin 13.
14 августа 2019 г. был выпущен Vaadin 14. Это последняя версия LTS (долгосрочная поддержка) с бесплатным обслуживанием в течение 5 лет. Одна из основных новых функций - поддержка npm и Bower (в режиме совместимости).
Последней стабильной версией по состоянию на 24 мая 2020 г. является Vaadin 14.2.0, выпущенная 20 мая 2020 г.
Vaadin 14.2.0 рассматривает внедрение pnpm в качестве диспетчера пакетов.
Компоненты Ваадина представляют собой полный набор Веб-компонентов для разработчиков приложений. Компоненты могут использоваться в веб-документах (без фреймворков) и в веб-фреймворках, совместимых с веб-компонентами. Эти компоненты являются ядром Vaadin Flow, веб-инфраструктуры Java, которая предлагает Java API поверх каждого компонента Vaadin.
Компоненты Vaadin обычно устанавливаются с npm или Bower. Например, следующая команда устанавливает компонент vaadin-button
:
bower install vaadin / vaadin-button
После установки компонент можно использовать на веб-странице следующим образом:
Щелкните меня
Ниже приведен снимок экрана с предыдущей страницы:
В следующей таблице показан список бесплатных веб-компонентов с открытым исходным кодом, включенных в Vaadin:
Компонент | Имя элемента | Описание |
---|---|---|
Кнопка | vaadin-button | Элемент для настраиваемых кнопок |
Флажок | vaadin-checkbox | Элемент для настраиваемых флажков |
Поле со списком | vaadin-combo-box | Показывает список элементов с фильтрацией |
Контекстное меню | vaadin-context-menu | Показывает контекстно-зависимые элементы для любого элемента на странице |
Выбор даты | vaadin-date-picker | Выбор даты поле с прокручиваемым месячным календарем |
Dialog | vaadin-dialog | Показывает модальные диалоги |
Раскрывающееся меню n menu | vaadin-dropdown-menu | Настраиваемый веб-компонент для раскрывающихся меню |
Макет формы | vaadin-form-layout | Настраиваемый адаптивный макет для элементов формы |
Grid | vaadin-grid | Data grid / data table element |
UI icon set | vaadin-icons | A Коллекция из 600+ значков |
Элемент | vaadin-item | Контейнер для элементов элемента |
vaadin-list-box | Многоразовые списки | |
Уведомление | vaadin-notification | Настроенные уведомления |
Упорядоченный макет | vaadin-orders-layout | Выровнять HTML-элементы по горизонтали или вертикали |
Тематический ввод элементы управления | ||
Индикатор выполнения | vaadin-progress-bar | Настроенные индикаторы выполнения |
Переключатель | vaadin-radio-button | Настраиваемый переключатель кнопки |
Разделить макет | vaadin-split-layout | Разделить макет на области с изменяемым размером |
Вкладки навигации | вкладки vaadin | Настраиваемые вкладки |
Загрузить | vaadin-upload | Загрузить несколько файлов с индикатором выполнения |
Разработчик (и) | Vaadin Ltd. |
---|---|
Стабильный выпуск | 2.0.10 / 3 сентября 2019 г.; 13 месяцев назад (03.09.2019) |
Предварительный выпуск | 3.0.0.alpha1 / 16 августа 2019 г.; 14 месяцев назад (2019-08-16) |
Репозиторий | Flow Repository |
Платформа | Java |
Тип | Веб-фреймворк |
Лицензия | Лицензия Apache 2.0 |
Веб-сайт | vaadin.com/flow |
Vaadin Flow (ранее) - это веб-платформа для создания веб-приложений и веб-сайтов. Модель программирования Vaadin Flow похожа на модель Vaadin Framework - она использует Java в качестве языка программирования для создания веб-контента. Vaadin Flow имеет серверную архитектуру, что означает, что большая часть логики выполняется на сервере. На стороне клиента Vaadin Flow построен на основе стандартов веб-компонентов.
Vaadin Flow включает поддержку веб-компонентов для разработчиков Java и позволяет использовать шаблоны HTML (на основе Polymer ) с автоматическим обменом данными между клиентом и сервером. Он также включает API для маршрутизации (подключение компонентов пользовательского интерфейса к URL-адресам), связывание данных (синхронизация полей ввода с моделями данных на стороне сервера) и DOM <на стороне сервера. 33>манипуляции.
Ниже приведен элементарный пример использования Vaadin Flow:
@Route ("hello-world") открытый класс MainView расширяет VerticalLayout {public MainView () {TextField textField = новое текстовое поле ("Введите свое имя"); Кнопка button = новая кнопка («Нажми меня», событие ->добавить (новый диапазон («Привет,» + textField.getValue ()))); добавить (текстовое поле, кнопка); }}
Ниже приведен снимок экрана предыдущего приложения:
Vaadin Flow позволяет использовать существующие компоненты интерфейса и реализовать новые, используя код Java, работающий на стороне сервера. Можно создавать и изменять DOM со стороны сервера. Конструктор в следующем фрагменте кода показывает, как создать новый элемент HTML div
, установить его атрибут id
и добавить прослушиватель кликов:
@Route ("") открытый класс MainView расширяет Div {общедоступный MainView () {Div div = new Div (); div.setText («Нажми меня»); div.getElement (). setAttribute ("идентификатор", "основной"); div.getElement (). addEventListener ("щелчок", событие (DomEventListener) ->add (new Span ("Hello, World"))); добавить (div); }}
Интеграция веб-компонентов обеспечивается с помощью аннотаций @Tag
и @Import
. В следующем фрагменте кода показано, как обернуть существующий веб-компонент в компонент Java на стороне сервера:
@Tag ("juicy-ace-editor") @HtmlImport ("bower_components / juicy-ace-editor / juicy-ace -editor.html ") открытый класс JuicyAceEditor расширяет Div {public void setMode (строковый режим) {getElement (). setAttribute (" режим ", режим); }}
Маршрутизатор - это основная концепция Vaadin Flow, обеспечивающая навигацию по URL-адресам. Маршрутизатор позволяет подключать URL-адреса к компонентам пользовательского интерфейса. Он основан на API истории HTML5, который позволяет конечным пользователям перемещаться по страницам, сохраняя при этом состояние страницы. В следующем фрагменте кода показано, как использовать аннотацию @Route
для отображения аннотированного компонента, когда конечный пользователь запрашивает URL-адрес типа http://yourdomain.com/hello/world
:
@ Route ("привет / мир") открытый класс HelloWorldComponent расширяет Div {public HelloWorldComponent () {setText ("Hello, World!"); }}
Привязка данных выполняется через класс Binder
. Это позволяет синхронизировать значения в полях ввода с моделями данных на стороне сервера. В следующем фрагменте кода показано, как привязать поле Java name
(через соответствующие методы получения и установки ) гипотетического класса Person
со значением в TextField
компонент:
TextField nameField = new TextField (); Подшивкаподшивка = новая подшивка <>(); binder.bind (nameField, Person :: getName, Person :: setName);
Vaadin Flow позволяет определять HTML-шаблоны с автоматическим обменом данными между клиентом и сервером и привязкой данных (при использовании шаблонов на основе Polymer ). Ниже приведен пример шаблона на основе полимера:
[[приветствие]]
Следующий фрагмент кода показывает, как подключить предыдущий шаблон к серверному компоненту Java:
@Tag ("hello-world") @HtmlImport ("src / hello-world.html") открытый класс HelloWorld расширяет PolymerTemplate{открытый интерфейс HelloWorldModel расширяет TemplateModel {String getName (); void setGreeting (Строковое приветствие); } @EventHandler private void greet () {getModel (). SetGreeting ("Привет," + getModel (). GetName ()); }}
Настройка внешнего вида может быть выполнена с помощью CSS, пользовательских стилей HTML или с помощью готовой конфигурации тем.
Vaadin Flow включает интеграцию Spring Framework 5 и Spring Boot 2.
.
Vaadin предлагает 2 платных сертификационных курса, которые принимаются онлайн (недоступны по состоянию на 8 ноября 2019 г.). Это должно было продемонстрировать навыки разработчика и знания о Vaadin Framework и связанных инструментах для успешной разработки веб-приложений.
Чтобы пройти сертификацию, вам нужно было просмотреть всю документацию и заполнить пару веб-приложений, используя фреймворк. Экзамены также проверяют ваши знания в определенных областях Java SE, Java EE, GWT (Google Web Toolkit) и HTML / JS / CSS.
Сертификаты для Vaadin 8, 10 и 14 теперь доступны после выпуска Учебного центра 3 декабря 2019 года. Они состоят из серии видеороликов, разделенных на два основных трека: Foundation и Professional, и финальный. тест, чтобы получить сертификат.