电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

gwt和echo2的对比


发布日期:2018/8/15
 

综合对比

两个都是非传统的b/s框架都是用AJAX来构造动态网站编程过程都和SWT/Swing差不多

区别在于一个运行于客户端一个运行于服务器

gwt把代码编译为html+js 目前只支持java规范echo没这限制

gwt可以运行于任何web server echo则需要传统的servlet容器(意义不大现在哪有静态网站啊后台交互肯定还是需要的)

echo的客户端引擎通过ajax提交用户动作对用户界面增量更新

性能

gwt的页面logic都在浏览器上所以很快但是如果需要和中间层交互就会碰到同样的网络问题

echo的代码跑在server上所以所有的交互都需要反馈给serverecho在设计上尽量减少这种交互比如客户对文本的修改都是延迟发送到服务器而服务器只发送页面的变化部分到浏览器

gwt应用被编译成一个页面虽然应用的复杂化这个编译结果也随之变得可怕……(个人认为随着编译器的发展不同的页面可以做到lazy load)

echo的js模块是lazy加载到浏览器的界面上呈现哪些控件才去加载并且缓存对应的js模块发送到客户端的不是逻辑代码只有用户状态(个人认为echo现在过于lazy导致初始化阶段多次访问server加载一些基本的js模块应该揉合到一起另外因为echo逻辑代码在服务器上相对来说可以防止盗版)

中间层和数据访问

如果要访问数据gwt还是要回到传统的模式通过rpc访问servletgwt提供把远程服务透明的包装起来中间传送pojo 尽管包装了中间的安全和和校验还是必须要开发者考虑

echo支持SOA但是不必须大多数情况下安全不是问题因为数据和逻辑都不会暴露到浏览器上(以前给echo提过建议浏览器用户很可能去模拟一个被disabled按钮提交这种问题现在无需考虑)

运行环境

gwt运行在浏览器上并非所有的java类都能编译成jsgwt现在只支持javalang/javautil下面的一个子集(版本 classes interfaces and exception(这让人想起了jme开发) 一些现有的类库就别想了

调试 gwt调试需要一套和运行时完全不同的环境HOST模式代码作为真正的java在运行(个人认为这里因为是纯java调试比echo的web调试要稍微方便一些做单元测试也更方便些但不是对最终browser的测试)

echo调试就是传统的servlet调试

授权

gwt的api是开源的编译器和host模式浏览器不公开整体来说free (个人认为如果要扩充gwt可能会遇到麻烦)

echo开源mozilla public license free(个人认为echostudio也free就好了nextapp毕竟要生存)

应用

gwt可以嵌入传统的静态html 也能作为一个完整应用做大应用要考虑编译后的重量本地化库支持等问题(关于n 可以在gwt支持论坛上搜索in似乎已经有方案)

echo成熟得可以适用各种应用但是不能作为静态页面的一部分使用(有点吹牛在大访问量下服务器的压力肯定不会小)

个人结论

开发方式都很优秀用纯java开发b/s

gwt可用于大型网站把压力转嫁给客户端

echo可用于快速开发复杂的企业应用把压力丢给服务器(企业里面最清闲的就是前台和服务器)

两个产品都很优秀GWT是年的IT飓风波及后面几年M$的日子要难过了 GOOGLE的确是个令人头痛的对手

然而还有比gwt/echo更美好的未来吗?

有!把他们的输出变成flash用java开发flash应用去年探索过一段时间原型已经出来因为flash开发调试太ugly 没有继续下去

另外微软的WPF(AVALON)相当值得关注

上一篇:必须执行清除

下一篇:VBScript基础教程之一什么是VBScript