我的后端是Google应用引擎。现在我需要一个RIA。我的选择应该是什么? 智能GWT? Ext GWT? 还是瓦丁?
或者如果您知道除JSF和Flex之外的任何其他RIA UI技术,请告诉我。
答案 0 :(得分:1)
我有同样的需求:评估SmartGWT和Vaadin在GAE上托管的RIA应用程序。
到目前为止比较它们我认为 SmartGWT 真的更快更丰富,因为所有GUI逻辑都被编译为javascript并且它们非常懒惰地请求服务器端,只有当客户端需要未加载的新数据时浏览之前+一些灵活的缓存等等。 随着SmartGWT发布更多小部件,它越来越丰富。
但是你必须自己实现所有服务器端的东西(或购买许可证),这是一个主要的缺点,因为你必须重新实现他们专有的DataSource协议,大多数数据绑定gui元素都是基于这些协议。
另一个缺点 - 第一页加载需要很长时间,因为有很多静态资源和编译的javascript东西。
Vaadin 使用完全相反的方式 - 您使用功能齐全的java在服务器端编写所有业务代码,并使用预定义的元素(使用javascript为其编译)构建GUI。
主要区别在于它生成GUI并处理服务器端的大多数浏览器事件!因此,在浏览器中更改GUI状态的任何操作(如单击网格单元格,按钮或选项卡)都会向服务器端生成特殊请求并获得类似的aswer:
for(;;);[{"changes":[["change",{"format": "uidl","pid": "PID168"},["14",{"id": "PID168","width": "100.0%"},"Selected: [AS]"]]], "meta" : {}, "resources" : {}, "locales":[]}]
表示应该如何更新GUI。因此,Vaadin为您的GUI逻辑提供了完整的Java支持,但您可以通过处理服务器端的所有gui事件来为此付费。
因此,我认为 Vaadin更适合Intranet,并且开发应用程序的时间更短,而SmartGWT更适合更复杂的GUI或不稳定的连接,而其他往返事项非常重要。
P.S。对于GAE,我选择SmartGWT,因为GAE对服务器请求号,带宽等有限制。
答案 1 :(得分:1)
您使用GAE(Google App Engine)标记了此问题。 Vaadin有一个可怕的缺点:它几乎需要粘性会话以获得足够的性能,背景如下:
http://dev.vaadin.com/ticket/6349
..但是GAE不支持粘性会话,也不会支持。 Bug关闭了WontFix:
https://code.google.com/p/googleappengine/issues/detail?id=1320
GXT和SmartGWT都不需要粘性会话,也不会受到Vaadin.com上讨论的问题的困扰。完全披露:我是SmartGWT公司的首席技术官。
答案 2 :(得分:0)
或者只是简单的GWT。或者只是HTML ;-)您有什么需求?你的申请做了什么?
答案 3 :(得分:0)
我一直在使用普通的GWT,我非常喜欢灵活性和性能。另一方面,我错过了一些信息组织。很多主题都在几个论坛中分散在帖子中,需要大量的黑客攻击。恕我直言,这个框架的用武之地以及用途没有明确的概念。
另一方面,我测试过的Vaadin具有非常有趣的功能,开箱即用,并且是免费的,但支持社区要小得多。
Flex看起来非常注重内容显示,而GWT及其继承人(SmartGWT,Vaadin,...)似乎更适合类似于业务的应用程序。