用于新项目的 Vaadin 10

Vaadin 10 for new project

我是 Java 开发人员,我将开始新项目。我的客户端开发技能非常有限,这就是我真正喜欢 Vaadin 框架的原因。我已经评估了 Vaadin 10 Bakery App Starter 应用程序 https://vaadin.com/start#vaadin10 并且对为构建此应用程序而编写的自定义 HTML/CSS/JavaScript 数量和 运行 感到非常惊讶。现在我真的对此感到困惑,不明白它如何简化我的开发人员的生活。

目前我唯一可以申请作为我的项目启动器的应用程序是著名的 QuickTickets Dashboard https://demo.vaadin.com/dashboard/,其中所有 UI 完全在 Java 中实现。目前最大的问题是这个应用程序是在 Vaadin 8 上实现的,我找不到它的 Vaadin 10 版本。你有类似的 Vaadin 10 吗?如果没有,您是否有从 Vaadin 8 到 Vaadin 10 的迁移指南,我可以使用它来尝试将此应用程序移植到 Vaadin 10?

虽然 Vaadin 10 Bakery App Starter 很好地展示了框架的新功能,但它在很大程度上基于 PolymerTemplate,如果您正在寻找更类似于以下内容的代码,它可能不是最好的示例瓦丁 8.

其实写一个Java-onlyUI还是和以前的版本一样简单。例如,Vaadin Flow Tutorial(以下摘录)中描述的 MainView class 包含 Grid 并且不需要编写 HTML 或 JS.

如果您采用这种方法,您可以将您的应用程序基于 Skeleton Starter App,并将 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...
}

使用 Vaadin 8

我用 Vaadin 开发了几年,我建议坚持使用 Vaadin 8。

虽然 Vaadin 10 即将发生根本性变化(GWT by WebComponents 的替代品),但我强烈建议坚持使用 Vaadin 8 开始新项目。特别是如果您也开始使用 Vaadin。

Vaadin 10 是开发人员预览版。一路上会有很多变化。知识库(文档、Whosebug、论坛等)也小得多。我也没有看到 2018 年会发布稳定版本。我的猜测是 2019 年夏天,直到它足够稳定以取代 Vaadin 8。

了解 long-term plans for Vaadin 8 on the company’s roadmap。这些计划包括几年的定期季度发布节奏。

2018 年 3 月更新:Vaadin 10(现称为 Vaadin Flowjust went into beta. And the company announced a new release cadence plan,每季度发布一次,并提供 Long-Term 支持 (LTS) 版本。也许稳定版本会比我预期的要早。但我仍然推荐 Vaadin Framework 8 用于新项目。

考虑 Vaadin 14

2019 年 8 月更新:Vaadin 14,当前的 LTS 版本,现已发布。

如果您的用户将使用最新版本的现代“常青树”网络浏览器,如果开始一个新项目,如果 components you need are available, then Yes I recommend trying 14. Beware of 我在开始新的 Vaadin 14 项目时遇到并解决了。

试试 10!

是的,这是真的。我们还没有为初学者提供 Java-only UI。但这并不意味着 Vaadin 10 不可能。Javier 已经给出了一个很好的例子。我们一直在开发新的启动器,将来也会允许第 3 方启动器。

关于迁移,请查看https://vaadin.com/docs/v10/flow/migration/1-migrating-v8-v10.html。它应该给你一个很好的概述。

除此之外,Vaadin 10 已达到测试状态,我们计划在今年发布最终版本。

如果您根本没有使用过 Vaadin,我建议您使用 Vaadin 10 而不是开始学习 "old" Vaadin(即使它会得到多年支持)。

如果您对 Kotlin 感到满意而不是 Java,您可以试试 https://github.com/mvysny/vaadin-kotlin-pwa。该应用程序的目标是完全不使用 Polymer 模板,并像我们对 Vaadin 8 所做的那样编排纯 server-side 的所有内容。所有内容都应在 Github 自述文件中进行解释 - 如果没有,请让我知道并打开错误报告。

我制作了 Beverage Buddy 应用启动程序的修改版本,您可以查看:https://github.com/OlliTietavainenVaadin/drink-starter-flow。只有 Java 在那里使用,没有 CSS 或 JavaScript.

编辑 (01/2020):这可能不再是一个好主意,你应该改用 Vaadin 14。