Ваадин 10 для нового проекта

Я разработчик Java, и я собираюсь начать новый проект. У меня очень ограниченные навыки разработки на стороне клиента, и именно поэтому мне очень нравится идея системы Vaadin. Я оценил приложение Vaadin 10 Bakery App Starter https://vaadin.com/start#vaadin10 и был действительно удивлен количеством пользовательских HTML/CSS/JavaScript, написанных для того, чтобы сделать это приложение работает и работает. Сейчас я действительно смущен этим и не понимаю, как это может упростить мою жизнь разработчика.

Единственное приложение, которое я могу применить в качестве моего стартера проекта, на данный момент - знаменитая панель инструментов QuickTickets https://demo.vaadin.com/dashboard/, где весь интерфейс реализован исключительно в Java. Самая большая проблема на данный момент заключается в том, что это приложение реализовано на Vaadin 8, и я не могу найти его версию для Vaadin 10. У вас есть что-то подобное для Vaadin 10? Если нет, есть ли у вас руководство по миграции от Vaadin 8 до Vaadin 10, которое я могу использовать, чтобы попытаться перенести это приложение на Vaadin 10?

Ответ 1

Используйте Ваадин 8

Я работаю с Vaadin в течение нескольких лет, и я бы рекомендовал придерживаться Vaadin 8.

Хотя с горизонтом на горизонте произошли фундаментальные изменения (замена GWT на WebComponents), я настоятельно рекомендую придерживаться Vaadin 8 для начала нового проекта. Особенно, если вы также начинаете с Ваадина.

Vaadin 10 - это предварительная версия для разработчиков. По пути будет много изменений. Кроме того, объем знаний (документация, Qaru, форум и т.д.) Значительно меньше. Кроме того, я не вижу стабильного релиза в 2018 году. Я предполагаю, что летом 2019 года он станет достаточно стабильным, чтобы заменить Vaadin 8.

Прочитайте о долгосрочных планах для Vaadin 8 в дорожной карте компании. В планы входит регулярный ежеквартальный выпуск кадров в течение нескольких лет.

Обновление 2018 март: Vaadin 10 (теперь известный как Vaadin Flow) только что вошел в бета-версию. И компания объявила о новом плане каденции релиза, с ежеквартальными выпусками и выпусками долгосрочной поддержки (LTS). Возможно, стабильный релиз случится раньше, чем я ожидал. Но я все еще рекомендую Vaadin Framework 8 для нового проекта.

Рассмотрим Ваадин 14

Обновление 2019 Август: выпущена текущая версия LTS Vaadin 14.

Если ваши пользователи будут использовать последние версии современных "вечнозеленых" веб-браузеров, если вы начинаете новый проект и если необходимые вам компоненты доступны, тогда да, я рекомендую попробовать 14. Остерегайтесь с этим скачком скорости я столкнулся и решил, когда начинал с новым проектом Vaadin 14.

Ответ 2

Попробуйте 10!

Да, это правда. Мы пока не предоставляем стартовый интерфейс только для Java. Но это не значит, что это невозможно с Vaadin 10. Хавьер уже привел хороший пример. И мы постоянно работаем над новыми серверами, и в будущем мы также позволим сторонним разработчикам.

Для перехода, пожалуйста, посмотрите на https://vaadin.com/docs/v10/flow/migration/1-migrating-v8-v10.html. Это должно дать вам хороший обзор.

Кроме того, Vaadin 10 достиг бета-статуса, и мы планируем финальную версию в этом году.

Если вы вообще никогда не работали с Vaadin, я бы предложил использовать Vaadin 10 и не начинать изучать "старый" Vaadin (даже если он будет поддерживаться годами).

Ответ 3

В то время как Vaadin 10 Bakery App Starter неплохо демонстрирует новые функции фреймворка, он в значительной степени основан на PolymerTemplate и, возможно, это не лучший пример, если вы ищете какой-то код, более похожий на Vaadin 8.

На самом деле, писать пользовательский интерфейс только для Java все еще так же просто, как и в предыдущих версиях. Например, класс MainView, описанный в Vaadin Flow Tutorial (выдержка из ниже) содержит Grid и не требует написания HTML или JS.

Если вы займетесь этим подходом, вы можете разместить свое приложение в приложении Skeleton Starter и заменить ExampleTemplate (полимер) своими собственными макетами, определенными в Java-коде.

@HtmlImport("styles/shared-styles.html")
@Route("")
@Theme(Lumo.class)
@BodySize(height = "100vh", width = "100vw")
public class MainView extends VerticalLayout {
    private CustomerService service = CustomerService.getInstance();
    private Grid<Customer> grid = new Grid<>();

    public MainView() {
       grid.setSizeFull();

       grid.addColumn(Customer::getFirstName).setHeader("First name");
       grid.addColumn(Customer::getLastName).setHeader("Last name");
       grid.addColumn(Customer::getStatus).setHeader("Status");

       add(grid);

       updateList();
   }

   //etc...
}

Ответ 4

Я сделал эту модифицированную версию приложения Beverage Buddy, которую вы можете проверить: https://github.com/OlliTietavainenVaadin/drink-starter-flow. Там используется только Java, нет CSS или JavaScript.

Ответ 5

Если у вас все в порядке с Kotlin вместо Java, вы можете попробовать https://github.com/mvysny/vaadin-kotlin-pwa. Цель этого приложения состоит в том, чтобы вообще не использовать полимерные шаблоны и организовывать все чисто на стороне сервера, как мы это делали с Vaadin 8. Все должно быть объяснено в readme для Github - если нет, пожалуйста, дайте мне знать и откройте ошибку отчет.