我目前正在使用GWT实现一个项目的开发,是否有人在使用GWT(和GWT-EXT)时遇到了无法克服的主要问题?从性能角度来看呢?
我们已经看到/听到的一些事情包括:
- 谷歌不能够索引内容
- CSS和样式方面似乎有点不稳定
同时也希望得到关于这些问题的额外反馈。谢谢!
我目前正在使用GWT实现一个项目的开发,是否有人在使用GWT(和GWT-EXT)时遇到了无法克服的主要问题?从性能角度来看呢?
我们已经看到/听到的一些事情包括:
同时也希望得到关于这些问题的额外反馈。谢谢!
GWT是一项技术杰作。它将客户端和服务器编程结合在一起,使其成为一个连贯的应用程序 - 这是软件在“分层”之前编写的方式,也是应该编写的方式。它消除了不同的技能集、团队成员之间的沟通问题,以及整个Web设计阶段:包括艺术和编程。而且它是最接近移动开发(例如Android)的技术。事实上,GWT旨在生成不同的本地UI,而不仅仅是HTML。尽管需要极大的纪律性来确保这种解耦 - 保持内部层呈现无关。
你应该避免的第一个错误是使用第三方扩展,比如EXT-GWT aka GXT和SmartGWT。开始使用它们漂亮的桌面小部件代替投资于自己的样式非常诱人,但我不能告诉你我在SmartGWT上遇到了多少问题,直到我终于受够了。简而言之,它将核心GWT功能集冻结在某个(相当过时的)水平上,然后在其上构建。此外,请记住,那种雕刻式的桌面外观看起来现在很傻,更不用说笨重的性能、大量的错误和兼容性特性 - 尤其是在移动设备上。你想尽可能接近本地浏览器控件,即下拉菜单呈现为本地<select>元素,而不是一些自定义绘制的控件。
由于移动趋势的影响,整个用户体验变得更加简单和扁平化,因此您不需要做太多工作来设计一个漂亮的应用程序。虽然如果您想要“3D”效果,也可以使用渐变。CSS3使一切变得容易,而GWT以优雅的面向对象方式包装它,不像原始的CSS。因此,不要因为在GWT Showcase中看到相当丑陋的基本控件而感到沮丧。GWT团队故意没有提供任何样式,因为这是开发人员的工作。如果您找不到或无法样式化现有小工具 - 阅读丰富的HTML5元素集,您始终可以包装第三方小工具。我使用了流行的jQuery FullCalendar。这并不是什么难事。其他所有内容,如Google Maps和Google Charts都有半官方的GWT包装器。
GWT非常完美。它没有得到足够的关注的唯一原因是早期互联网采用者并不来自计算机科学和面向对象语言,无法欣赏它们。他们要么有艺术背景(Photoshop/WordPress),要么有网络背景(Perl/Python)。
重复使用RPC服务对象。
这会导致竞态条件,症状看起来像应用程序挂起。