google-app-engine - Google 应用引擎的智能 GWT 或 ext GWT 或 Vaadin?

标签 google-app-engine gwt smartgwt vaadin

我的后端在 Google 应用引擎上。现在我需要一个 RIA 在它之上。我的选择应该是什么? 智能 GWT? 分机 GWT? 还是 Vaadin?

或者如果你们中有人知道 JSF 和 Flex 以外的任何其他 RIA UI 技术,请告诉我。

最佳答案

我有同样的需求:为托管在 GAE 上的 RIA 应用程序评估 SmartGWT 和 Vaadin。

到目前为止比较它们我认为 SmartGWT 确实更快更丰富,因为所有 GUI 逻辑都被编译为 javascript 并且它们非常懒惰地请求服务器端,只有当客户端需要未加载的新数据时在浏览器之前+一些灵活的缓存内容等等。 随着 SmartGWT 提供更多小部件,它也变得更加丰富。

但是你必须自己实现所有服务器端的东西(或购买许可证),这是一个主要的缺点,因为你必须重新实现他们专有的 DataSource 协议(protocol),大多数数据绑定(bind) gui 元素都是基于这些协议(protocol)构建的。

另一个缺点 - 第一个页面加载需要很长时间,因为有很多静态资源和编译的 javascript 东西。

Vaadin 使用完全相反的方式 - 您在服务器端使用功能齐全的 java 编写所有业务代码,并从预定义元素(已经为它们编译的 javascript)组成您的 GUI。

主要区别在于它生成 GUI 并在服务器端处理大部分浏览器事件!因此,浏览器中任何更改 GUI 状态的操作,例如单击网格单元格、按钮或选项卡 - 都会向服务器端生成特殊请求并获得这样的答案:

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 或不稳定的连接,其中额外的往返很重要

附注对于 GAE,我会选择 SmartGWT,因为 GAE 对服务器请求数量、带宽等有限制。

关于google-app-engine - Google 应用引擎的智能 GWT 或 ext GWT 或 Vaadin?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3687048/

相关文章:

python - favicon.ico 无法在 Chrome 的应用程序引擎中读取

google-app-engine - 多开发环境如何使用GAE的dispatch.yaml?

GWT:没有可用于 java.io.ByteArrayOutputStream 类型的源代码

java - GWT + JDO + GAE,如何安排我的数据以提高性能

javascript - GWT 2.8 的 JsInteropt 错误

Java - 如何验证当鼠标悬停在按钮上时是否显示替代文本?

java - smartgwt - 将动态表单中的一列留空

java - 适用于 Java 的 vaadin 和 google 应用引擎

python - 用于 python 的谷歌应用引擎中 expando 属性的自动索引

java - SmartGWT:动态添加自定义小部件到VStack