第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 grid = new Grid();\grid.setItems(persons);\grid.addColumn(Person::getFirstName)\ .setCaption(\"First Name\");\grid.addColumn(Person::getLastName)\ .setCaption(\"Last Name\");\\\
请注意第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\\u0026amp;\u0026amp; cd vaadin-app \u0026amp;\u0026amp; 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