`
cppmule
  • 浏览: 447106 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

ExtJS和GWT的比较

 
阅读更多


在写之前我没看任何网上关于二者的比较,就是为了能不被别人的想法影响,所以这不是大而全的比较,充其量只是我的感受罢了。 

1. 首先是license的问题,众所周知,ExtJS已经收费了。不过我们简单的分析下,你就会发现,价格很公道。学习是不用你花钱的,js天生开源特质也很好的保证了这一点,资料也很充足,我看过的深入浅出Ext JS(第2版)(附光盘) 就是很优秀的入门和cook book。另外如果你的项目是开源的,那么ok,你也是不要花一分钱的。但是商业应用了,就要拿出一些银子了,最便宜的大概是2k左右,对于一个公司来说是十分公道的。 

    GWT的license对商业用户更友好,不要花钱。SmartGWT基础版也是免费的,提供了所有的客户端解决方案,如果想要涉及服务器端的解决方案,如消息推送什么的,也要花钱买license。 

2. 工具支持。 GWT有google自家的插件。可以提供一站式解决方案。而且都是java代码,没什么好说的,后面还会说到对于浏览器也需要相关支持,因为需要神秘的动态编译。 
    ExtJs我觉得最好用的也是最轻量级的插件是spket,支持ExtJS的自动完成和语法着色。而且很轻量级。ExtJS本身是js,其他方面也不需要太多的支持,另外一个好的调试器很重要,fireBug觉得不是很漂亮,而chrome自带的javascript调试器确实很赞。值得一用,在开发过程中我几乎离不开他的。 

3. 最关注的当然是开发效率了,GWT本身也是支持动态编译的,在托管模式下,改调的java代码会即时编译成js,开发效率还是可以接受的。 
   ExtJS原生的js只不必说,开发效率是随着你对js的理解和ExtJS的理解而越来越高的,不久你就会爱上,以前不爱写的js。不过这又涉及风格问题,以后讨论。 

4. RPC的支持。不得不说,GWT在这个领域有天然的优势,因为他们的c和s的语言相同。对for java RPC的直接支持在整合原有产品上也是有天然的优势,可以给每个EJB封装一个Servlet的proxy,就可以实现无缝,甚至原有的Domain都是可重用的,不用再搞丑丑的DTO。 

   ExtJS也是有支持的,而且面向的语言更宽泛。因为事实上官方只是提供了客户端解决方案,然后留出接口给第三方实现,就是Ext Dricet。不过现实中我们是用的Dwr,效果和原理都是一样的,甚至自己实现也是很好的方式呢。额外的会有一些DTO的出现,如果分层的话服务器端也会有些代理类封装Ejb,代码量差不多吧。 

5. 风格上。 java的风格就是那个样子,古板,刻板,代码量多。写服务器端这些某种程度上说还都是优势。 
   就javascript本身的风格来说,灵活有余严谨不够,多少在可维护上还是有点弊端的,不过类似ExtJS这种大而全的js库都是会封装一些面向对象特性进去,例如Ext.extend等,还有一些如Ext.ns提供良好的命名空间等。把可重用的封装成组件等都会抵消他的劣势,而他的灵活性又带来了相应的好处,这里就不说了,在实际编写中会有感触的。 

6. 可扩展性。 这又是尤为重要的,ExtJS的组件我写过一些,比如整合Dwr的自带翻页的表格,和基于树表的更强大的树表等。总的来说很方便,而且有源码可以参考,很快便会上手,但是基于UI的一部分,主要是基于html和css,还是有点小难的,需要反复的测试和调整,还好是解释性语言了,这个到不会让人抓狂。 

    Gwt的没那么深入扩展过,没发言权,以后尝试。 


我们公司的两个项目,我们的采用了ExtJS,另一个用了Gwt,不过Gwt的项目还没有开始,无疑他们都是优秀的项目,我会持续关注的。 
分享到:
评论

相关推荐

    GWT 开发和部署文档

    **GWT(Google Web Toolkit)** 是一个开源的Java框架,允许开发者使用Java语言来创建交互式的、富客户端的Web应用程序。...通过合理使用GWT和GWT-EXT,开发者可以构建出功能强大且用户体验良好的Web应用。

    form_login.rar_extlogin_gwt

    EXTJS和Google Web Toolkit(GWT)是两个在Web应用开发中广泛使用的JavaScript框架,用于构建用户界面。在这个"form_login.rar_extlogin_gwt"压缩包中,我们看到的是一套登录界面的实现,它结合了EXTJS和GWT的优势。...

    ExtJS界面生成工具

    不过,值得注意的是,ExtJS和GWT是两个不同的技术栈。ExtJS主要依赖JavaScript和CSS,而GWT则是基于Java的。在实际应用中,如果你看到一个名为"GWTDesigner"的文件出现在与ExtJS相关的压缩包里,这可能是由于开发者...

    gwtext编写的小系统

    GWText是一个基于Google Web Toolkit (GWT) 和EXT ...下载并研究这个小系统,可以帮助你快速上手GWT和EXT GWT的实践应用,提升你的Web开发技能。记得实践是检验真理的唯一标准,动手操作才能真正理解和掌握这些知识点。

    搭建简单的EXT-GWT(GXT)的开发环境

    Google Plugin for Eclipse包含了GWT的开发工具,使得在Eclipse中编写、测试和调试GWT应用变得更加便捷。你可以从提供的链接下载这两个工具:http://code.google.com/intl/zh-CN/webtoolkit/download.html。 安装...

    ext gwt gxt初学教程

    - **创建并运行GWT项目**:利用Eclipse的GWT插件,创建新的GWT项目,随后修改项目配置以包含GXT组件,启动项目,检查URL后跟的端口地址,这是用于调用插件功能、调试和自动发布的接口。 - **浏览器兼容性与调试**:...

    extjs grid 多表头插件

    在ExtJS Grid中,多表头能够帮助用户更清晰地理解列的分组和关系,提高数据的可读性和分析性。 首先,我们来详细解释一下多表头的概念。在传统的表格中,表头通常只有一个层次,而在多表头中,我们可以设置多个层次...

    gxt-2.1.1-gwt2 最新的

    gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2

    GWT-EXT 多表头插件GroupHeaderPlugin

    标题中的"GWT-EXT 多表头...通过研究提供的源代码,开发者可以学习如何在GWT项目中实现自定义的用户界面功能,以及如何利用EXTJS库扩展GWT的功能。博客链接提供的教程和示例将有助于实际操作和理解这个插件的工作方式。

    非常好的gwt-ext培训教程

    GWT-Ext 是一个高级的网页开发控件库,它结合了 Google Web Toolkit (GWT) 和 ExtJs 的优势,为开发者提供了丰富的 UI 组件和强大的功能。GWT 是一个由 Google 开发的用于构建富互联网应用程序 (RIA) 的框架,它允许...

    GWT-Ext_体验之旅.doc

    GWT-Ext 是一个基于 Google Web Toolkit (GWT) 和 ExtJS 的开源控件库,专为构建富互联网应用程序(RIA)提供强大的功能。它允许开发者使用纯 Java 语言进行界面开发,极大地提高了开发效率。GWT-Ext 的核心特点在于它...

    ext gwt的api文档

    gxt(又叫做ext gwt)是GWT的一个框架,该框架完全copy了Extjs的用户界面,本文档是gxt的api文档,并且是chm格式的

    New of GWT Introduction--GWT开发快速入门

    1. **GWT编译器**:GWT编译器是其核心部分,它可以将Java源代码编译为优化过的JavaScript,支持大部分Java特性,包括基本类型、异常处理、java.lang和java.util包中的类和接口,以及正则表达式和序列化。 2. **跨...

    Ext + Gwt + Struts2.0开发5

    在构建和调用GWT服务时,通常涉及三个主要步骤:定义服务的同步和异步接口、实现服务以及调用服务。以下是对这些步骤的详细解释: 1. 定义GWT服务 - 同步接口:创建服务的第一步是在客户端定义服务接口。这个接口...

    use gwt dev Ajaxt--GWT 开发Ajax更方便(学习文档)

    1. **集成的开发环境**:GWT提供了一套完整的集成开发环境,使得开发者可以在Java环境下进行AJAX应用的开发和调试。 2. **强大的组件库**:GWT内置了一系列UI组件库(widgets),这些组件可以直接用于构建用户界面,...

    gwt gxt demo

    描述中提到,这个项目花费了三到四周的时间来完成,这表明它可能包含了一个相对完整的功能展示,涵盖了GWT和GXT的多个方面。开发者可能在项目中实践了从基本UI设计到数据绑定、异步通信(RPC)以及事件处理等技术。 ...

    GWT_EXT项目配置全过程

    1. 编写HTML页面:在`war`目录下创建一个`index.html`文件,设置好body标签,并引入GWT和GWT_EXT的脚本文件。 2. 创建客户端代码:在项目的`src`目录下,创建一个`Client`包,然后在此包下编写一个继承自`...

Global site tag (gtag.js) - Google Analytics