带有 Vaadin 插件的 Grails,是正确的选择吗?
Posted
技术标签:
【中文标题】带有 Vaadin 插件的 Grails,是正确的选择吗?【英文标题】:Grails with Vaadin plugin, is it the right choice? 【发布时间】:2013-01-08 00:45:21 【问题描述】:对于我的组织,我正在为我们的下一个项目评估 RICH 技术。 我们目前正在使用 grails 2.1.0,对此非常满意,尤其是 groovy 和 gorm,我们希望继续使用它。这个想法是用一些丰富的框架/库来扩展 grails。目前我正在评估:用于 ZK 的 grails 插件、用于 Vaadin 的 grails 插件、knockoutjs、angular.js、ember.js。
我已经收到了与 ZK 合作的同事的反馈(没有 grails),他们的结论是:很酷,但忘了性能,每次你在客户端做某事时 ZK 都会去服务器。
我的问题是:Vaadin(Grails 插件)也是如此吗?它如何应对繁重的单页应用程序?小鹿斑比呢?可以选择吗?
我们需要的是纸面上的 grails + Vaadin:我们想要编写 groovy/java,而不是 xml,当然也不是 javascript。这是正确的选择吗?
我知道我的问题很笼统,但我才刚刚开始评估...... 感谢您的关注!
【问题讨论】:
ZK 不会针对每个请求访问服务器。这是我的演示,它使用了大量客户端代码来提高性能:zello.herokuapp.com。披露:我是 ZK 插件作者。 谢谢!我一定会将此报告给我评估 ZK 的同事。 没问题。只是忘了告诉你用户名和密码。这是“演示”和“演示”。 【参考方案1】:-
Vaadin 与 Groovy 和 Grails 完美配合。您可以使用 Grails.get() 方法获取服务(实际上是 Spring bean),并通过 Grails.i18n() 方法进行本地化。因为所有代码都将使用 Groovy 而不是 Java 编写,所以它会变得不那么繁重(更少的代码行等等......)。
Vaadin 不会在服务器上执行任何用户操作。您可以通过在任何组件上设置 setImmediate(false) 来影响它。
当您在 Vaadin 中制作复杂的应用程序时,您需要注意在页面上放置了多少组件。如果您预计单个页面上会有数千个组件,那么浏览器渲染器在处理它时会遇到性能问题(当然渲染速度取决于您的计算机硬件)。更多提示是here。
我建议 - 尝试在 Vaadin 和假数据库中构建 UI。然后看性能再切换到真实数据库。通常人们会责怪 Vaadin,但问题出在其他地方,例如在数据库中,索引,一次加载到许多项目......
如果你不想玩 JavaScript,那么我想 knockoutjs、angular.js、ember.js 都出局了。
您需要确定Vaadin components 是否是您所需要的。我真的建议尝试一下并在 Vaadin 中进行概念证明。如果没有,Vaadin 7 会简化 integration with JavaScript!因此,您可以轻松地将 Vaadin 服务器代码与任何 JavaScript 库(例如 highcharts 等)集成。
您需要延迟加载容器 (check this)
我认为您应该从 Vaadin 7 开始(这里是 tutorial)
Vaadin 7 中将有更多的性能优化(在 7.0.1 或 7.0.2 版本中)
【讨论】:
非常感谢!我有一个战略问题:插件有多成熟,长期前景如何?我不想冒险采用一种将在一年内停止使用的技术......我正好在第 6 点。我按照教程并使用示例进行操作。我有问题,但为此我将创建一个单独的问题。 Vaadin 插件实际上只做三件事:将 Vaadin 依赖项添加到 Grails 项目,提供对 bean 的访问 (get(SomeService)) 以及通过方法 i18n("key.to.value) 提供对本地化文件的访问”)。我认为插件上不会有什么东西会造成麻烦。自上周以来,更多信息在vaadinongrails.com 如果能处理scss编译就更好了(生产环境发现的问题=>link以上是关于带有 Vaadin 插件的 Grails,是正确的选择吗?的主要内容,如果未能解决你的问题,请参考以下文章
Grails、Vaadin 7 和 SpringSecurity:授权不起作用
带有 Spring Security 的 Grails 4 审计日志不记录“演员”