第 7 版发布 4 年后, Vaadin 近日发布了第 8 版 Polyglot 框架,该框架可用于通过 UI 组件构建 Web 应用,此版本在包含下列 21 项改进:
- 类型安全(Typesafe)Java API:
- 有关 Vaadin 的改进:
- 组件
- 验证器
- Grid
- 异常消息
- 新增的
ItemCaptionGenerator
- 类型安全 Lambda 表达式
- 有关 Vaadin 的改进:
- Default 的改进:
- Null 值
- 有序布局(Ordered layout)
- 性能改进:
- 降低内存中数据集的开销
- 降低大规模数据集的 CPU 需求
- 面向未来趋势的改进:
- 取消了对老版本 Java 和 Servlet 规范的支持
- 须具备 Java 8 和 Servlet 3.0
- 取消了对遗留浏览器的支持
- 取消了对老版本 Java 和 Servlet 规范的支持
范例 – 第 7 和第 8 版的差异
下列 Grid 包含的类型安全 Lambda 表达式演示了相对与第 7 版,第 8 版 Vaadin 所实现的简化:
第 7 版:
Grid grid = new Grid(); grid.setContainerDataSource( new BeanItemContainer(persons)); grid.removeAllColumns(); grid.addColumn("firstName"); grid.getColumn("firstName") .setHeaderCaption("First Name"); grid.addColumn("lastName");
第 8 版:
Grid<person> grid = new Grid(); grid.setItems(persons); grid.addColumn(Person::getFirstName) .setCaption("First Name"); grid.addColumn(Person::getLastName) .setCaption("Last Name"); </person>
请注意第 8 版的容器中取消了数据包装(Wrapping)。Vaadin 的Container
接口也已从 API 中移除。
Vaadin 还更新了第 8 版中使用Vaadin 创建CRUD UI 的范例(位于 Spring Guides 中)。
上手
下列命令使用 Maven 发起了一个应用程序构建:
mvn -B archetype:generate -DarchetypeGroupId=com.vaadin -DarchetypeArtifactId=vaadin-archetype-application -DarchetypeVersion=8.0.4 -DgroupId=org.test -DartifactId=vaadin-app -Dversion=1.0-SNAPSHOT && cd vaadin-app && mvn package jetty:run
该命令可创建一个简单的单模块范例应用(通过-DarchetypeArtifactId
指定),创建了一个子文件夹(通过-DartifactID
指定),将目录更改至该子目录,启动了一个 Jetty 实例,并运行应用程序产生如下结果:
若要创建更复杂的多模块范例应用,可直接替换-DarchetypeArtifactId
中的vaadin-archtype-application-example
值。
在 Vaadin 8 的发布说明中,Vaadin 产品营销经理 Matti Tahvonen 介绍了他们的后续短期目标:
虽然 Vaadin 8.0.0 包含了很多不错的改进,但这些只是后续进一步完善的基础。通过取消对老版本 JDK 和已停止维护的 Internet Explorer 版本的支持,我们将能更快速地为大家提供更多新功能。在计划于四月发布的下一个小版本中,我们将提供大家期待已久的层次结构,以及 Grid 组件的拖拽和组件支持。
当然我们同时也会继续通过新版修复各种 Bug,因此如果你遇到“.0 bugs”问题,请通过 GitHub 反馈给我们。
相关资源
- Vaadin上手指南。
- Vaadin 开发者主管 Tahvonen 和 Pekka Hyvönen 录制的,演示 Vaadin 8 新功能的视频。
- 如何从 Vaadin 7迁移至 Vaadin 8。
- InfoQ 在 Vaadin Spring 活动中对 Tahvonen 的采访。
阅读英文原文: Vaadin Releases Version 8 of Their Polyglot Framework
评论