【问题标题】:Vaadin 10 for new projectVaadin 10 用于新项目
【发布时间】:2018-07-28 22:36:10
【问题描述】:

我是 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?

【问题讨论】:

  • V10 尚未发布
  • 是的,我知道。这在开发者预览版中可用。
  • 如果您现在想完成真正的工作,使用当前版本的 Vaadin 8。 Vaadin 8 建立在多年前经过验证的代码库之上。 Vaadin 8 has a long life ahead。相比之下,Vaadin 10 是实验性的下一代尖端产品,涉及新概念、新技术和新代码。 Vaadin 10 尚未准备好投入生产使用。
  • 嗨@alexanoid 你有没有在vaadin 10 中找到任何可以帮助我创建应用程序或只是这样的模板的东西。 demo.vaadin.com/dashboard 如果你能建议我,那将是可观的
  • 更新: Vaadin Ltd 公司在 2018 年 7 月发布了 blog post by Matti Tahvonen,对当今使用 Vaadin 8(框架)与 Vaadin 10 进行开发的优缺点进行了清醒的分析/11(流动)。

标签: vaadin vaadin8 vaadin10 vaadin-flow


【解决方案1】:

试试 10 个!

是的,这是真的。我们还没有为初学者提供纯 Java UI。但这并不意味着 Vaadin 10 不可能。哈维尔已经举了一个很好的例子。我们一直在努力开发新的启动器,并且将来也将允许第 3 方启动器。

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

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

如果您根本没有使用过 Vaadin,我建议您使用 Vaadin 10,而不是开始学习“旧”的 Vaadin(即使它会被支持多年)。

【讨论】:

  • 嗨@paul for vaadin 10 我想要下面链接中提到的相同的仪表板或模板。 demo.vaadin.com/dashboard 如果您可以提供或建议我,那将是可观的
  • 嘿,KuldeeP ChoudharY,很遗憾,Vaadin 10 没有这样的展示案例,而且我们也没有任何计划,afaik,因为我们完全专注于初学者。
【解决方案2】:

使用 Vaadin 8

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

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

Vaadin 10 是开发者预览版。一路上会有很多变化。此外,知识库(文档、StackOverflow、论坛等)要小得多。此外,我认为 2018 年不会发布稳定版本。我的猜测是 2019 年夏天,直到它足够稳定以取代 Vaadin 8。

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

2018 年 3 月更新:Vaadin 10(现称为 Vaadin Flowjust went into beta。还有公司announced a new release cadence plan,每季度发布一次,并发布长期支持 (LTS) 版本。也许一个稳定的版本会比我预期的更早发生。但我仍然推荐 Vaadin Framework 8 用于新项目。

考虑 Vaadin 14

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

如果您的用户将使用最新版本的现代“常青”网络浏览器,如果开始一个新项目,并且如果components you need are available,那么是的,我建议尝试 14. 当心this speed bump 我遇到并解决了开始新的 Vaadin 14 项目。

【讨论】:

  • 谢谢!我会遵循这个建议并坚持使用 Vaadin 8
  • 更新: 自 2018 年 3 月起,Vaadin Ltd 已开始推动 Vaadin 10,现在称为 Vaadin Flow (v10) 与 Vaadin框架 (v8,7,6)。该网站默认为 Flow 信息和文档。请参阅 the 2018-03-08 博客文章,了解关于带有散布 LTS(长期支持)的 Flow 的定期季度发布节奏的新计划。不过,我同意这个答案,如果您想完成真正的工作,建议您在今年(2018 年)坚持使用 Vaadin 8。 Flow 是测试版,功能还不如 Vaadin Framework 8 稳定。
  • @ssindelar,知道他们为什么跳过第 9 版吗?它与 Java 9 有关吗?
  • 我想他们说过一次,因为变化太大了。
  • 嗨罗勒!今天 2019 年 3 月 29 日 - Vaadin 10.0.12 LTS 与一年前一样的困境。您会建议我从 Vaadin 8 还是 Vaadin 10 开始?使用 Vaadin 8 更容易,因为文档非常好但不是最新的。
【解决方案3】:

虽然 Vaadin 10 Bakery App Starter 很好地展示了框架的新功能,但它主要基于 PolymerTemplate,如果您正在寻找更类似于 Vaadin 8 的代码,它可能不是最好的示例。

实际上,编写纯 Java 用户界面仍然像以前的版本一样简单。例如,Vaadin Flow Tutorial(以下摘录)中描述的MainView 类包含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...
}

【讨论】:

  • 您是否知道包含输入处理的类似示例(仅限 Java,无 html 模板)?
  • 没有,但是你看到vaadin.com/docs/v10/flow/binding-data/…了吗?
  • 看到了,但据我所知,这与基于“Simple UI App”或“Project Base”中给出的模板的示例之间的区别从未明确(即PolymerTemplate + Model interface vs活页夹)。
【解决方案4】:

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

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

【讨论】:

    【解决方案5】:

    如果你对 Kotlin 而不是 Java 没问题,你可以试试 https://github.com/mvysny/vaadin-kotlin-pwa 。该应用程序的目标是完全不使用 Polymer 模板,并在纯服务器端编排所有内容,就像我们对 Vaadin 8 所做的那样。所有内容都应在 Github 自述文件中进行解释 - 如果没有,请告诉我并打开一个错误报告。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多