`
sp42
  • 浏览: 147333 次
  • 来自: Canton
文章分类
社区版块
存档分类
最新评论

像了解爱人一样了解ExtJs

阅读更多
投入项目前先做好功课 

EXT无疑是最近前端开发最受关注的话题。在近一年的YUI-Ext 0.30/ExtJS 1.X开发之后,上周五ExtJS又推出它的升级版本2.0,而更多的开发者也参与到前端开发这一领域来。 在Web2.0/Enterprise2.0声势、日益强调用户体验的情况下,选择EXT是否明智?这些都需要开发者慎重决策。

项目参与EXT切忌盲目 
    据资深IT分析人士表示,目前界业内的Ajax热浪,一方面是由于2005年以来的Google一线产品使人带来极大的用户体验,另一方面来自对旧事物新改造的关注。

    第一只“出海”的YUI-Ext只是作者Jack打算对基于BSD协议的Yahoo!UI库进行自定义的扩展,但后来一度风头盖过其父辈YUI,足以说明大家对它的热情,很多人把它投入项目人并不十分了解它。分析人士打了一比喻:就好比尚未谋面, 并不了解一个人的家庭、教育、品行等背景,只因为他有一副精致漂亮的外观,就对其陷入了疯狂的倾慕之中。因此分析人士建议,在投入项目前,要认真仔细地了解EXT的内在原理和与其他Ajax库不同地方。

               Ext的UI组件模型和开发理念脱胎、成型于Yahoo组件库YUI和Java平台上Swing两者,并为开发者屏蔽了大量跨浏览器方面的处理。相对来说,EXT要比开发者直接针对DOM、W3C对象模型开发UI组件轻松。

Ajax库各有不同 
    目前业界中Ajax库的主要是服务端系(服务端生产JS代码)和原生系(直接浏览器的JS代码控制),有消息说今后各JavaScript库团队也准备推出UI产品。不同的“家族”背景,决定了它们开发的Ajax库应用与风格的不同。

    从数目上来看,目前服务端系的Ajax库如(DWR、GWT、MS Ajax.Net)占据相当的市场份额,是较多用户的选择。

    原生系的Ajax库近期也迅猛发展,在ExtJS顺利试水之后,jQuery的UI库也已经发行,Mootools则在年底之前推出,其它元老如Dojo也在积极筹备新版1.0。

    原生系的Ajax开发在我国还是个新生事物,目前推出的Ajax库IDE支持方面普遍不足,需要大量的手工编码,各种浏览器之间的调试工具也不尽相同,属于较小开发者所掌握的技能,风险和人力成本都会相对比较高。

    今后如果各JavaScript库团队推出自己的UI组件库,--由于大多数是开源的项目,因此其文档是否完善,案例、范例是否足够多,是否易于使用,都属于选型的相关指标。相对来说其社区越旺盛,其风险也就越小。

    研究不同类别的Ajax库,开发者可以知道它的投入项目价值和怎么迎合自身开发需求,而各测试报告、DEMO演示则比较可以帮助开发者分析风险收益,进而根据客户需求目的、预期和风险承受能力,来选择心仪的一个库。比如为快速将数据生成到前端,适合选择服务端系的产品; 而追求较佳的用户体验,对界面设计,用户交互操作有一定要求者,则可以EXT、Dojo专业UI库来实现。而希望学习成本低的开发者,可以使用微软的Ajax.Net库,允许方便地“可视化编程”。

决定实施之前多作比较 

    实际上,目前关于是否应该封装EXT“控件”存在着两种完全不同的意见。已有实践开发EXT经验的朋友甚至原作者Jack都表示,手工JS编码更适合EXT开发,这样各组件的耦合颗粒度更细,项目整体的灵活度机会高。而另一派的观点则认为,在Java/.Net的大背景下,多数开发者希望利用IDE或类似VB的GUI“画出”控件这样强大的支持来解决表示层的方案,以提供工作效率;另一方面,大量JavaScript投入项目产生,开发者会因JavaScript另外一本质---基于函数式编程(LISP但是C语法系)的困惑而对项目设计而大打折扣,我们没有道理离开熟悉的领域到陌生的地方去冒险。

    由于绝大多数EXT产品的都在实践和测试之中,因此,国内的开发者确实需要慎重思考,认真研读相关JS库的文档和资料,并将其与自己熟悉的JS库比较,确实了解其风险与客户需求再作决定。

    另外对于打算购买商业许可的用户,开发者还需要注意不同的商业的价格是不一样的。每种许可一般分为仅源码、源码+技术支持和1.x的升级。而企业级的EXT许可证的门槛更高,大多在两万元人民币以上。

许可解读 
    EXT使用双重协议,其中之一是基于LGPL 3.0协议进行许可,另外是针对技术支持的商业许可。

    而很多用户对EXT协议的理解目前暂时还是“雾里看花”。

    按照官方网站的有关解析,如果商业使用不付费也是可以的,只要项目遵守LGPL 3.0的开源协议。
             
“Are using Ext in a commercial application that is not a software development library or toolkit, you will meet LGPL requirements and you do not wish to support the project”

    “如果您应用Ext在一个商业应用中(即商业应用不是作为软件开发库或工具箱,一般可以认为是第三方组件),您可以参见LGPL要求(如果你不想支持Ext项目)”。
分享到:
评论
11 楼 sp42 2007-11-16  
补充一下,Jack本人是反对将UI写成Tag Language的。

引用
Why try to write an app in a tag language? You end up with something very cumbersome and difficult to maintain. Why write the UI in Java at all when JavaScript can be so much faster to develop with?


详见:
http://extjs.com/forum/showthread.php?t=5730
10 楼 WWQQ 2007-10-24  
这个标题怎么那么熟悉...
像了解爱人一样了解ie ->精华
像了解爱人一样了解ExtJs ->支持->精华
9 楼 过河卒 2007-10-24  
ajax库越来越多,而且每个js库的实现机制有各有不同,用起来确实不象java库那么轻松。这个是现在最郁闷的事情,给你一个java库你上手,拿到手上有API心里面有底,而JS库心还悬着...
8 楼 cheng022074 2007-10-14  
fangzhouxing 写道
引用
投入项目前先做好功课


建议选择一个小项目来作为练习或评估,许多东西还是需要通过实际做才能体会到。

直接做OA集成项目,开发速度增快45%,原来需要三个合作,现在一个人就可以承担所有的工作,而且开发时间也缩短了
7 楼 fangzhouxing 2007-10-03  
引用
投入项目前先做好功课


建议选择一个小项目来作为练习或评估,许多东西还是需要通过实际做才能体会到。
6 楼 hax 2007-10-01  
xyz20003 写道
hax 写道
BTW,楼上这个抢沙发只能给一星了。

hax老大言重了。在下是看到frank老大在群里发的留言,才过来看一下。估计只比hax老大早点提交了几秒吧?


不是说你,那个抢沙发的已经被隐藏了。

顺便补充一下,如果ext像爱人,那prototype像什么?小情人?还有jquery、mootools、dojo、mochikit……
5 楼 xyz20003 2007-10-01  
hax 写道
楼主的标题有点耸人,难道是翻译来的?我个人认为还没有哪一个ajax库需要像了解爱人一样去了解。。。我自己的项目那也是像了解儿子一样了解。。。

BTW,楼上这个抢沙发只能给一星了。

hax老大言重了。在下是看到frank老大在群里发的留言,才过来看一下。估计只比hax老大早点提交了几秒吧?

爱人这个说法,其实我挺理解的,没女朋友只好把代码当爱人啦。比如在下。。。


虽然不知道ror在前端是如何操作的,但感觉extjs做的前端基本可以脱离后台依赖,只需要提供对应格式的json就可以跑得好好的。在下正在用extjs+java做个东西,数据调用都是使用的json,前台基本上只有html了。

这是一个新闻发布,还处在很初级的阶段,有兴趣的话,过来一起研究一下
http://code.google.com/p/anewssystem/
4 楼 fsword 2007-10-01  
插一句话,ror对前端的封装粒度过细,也就适合封装prototype和scriptaculous这样的工具库,象extjs, jquery-ui(不是jquery), dojo这样的完整组件库,应该用更大粒度的封装方式,可惜现在没有人做这件事。
3 楼 hax 2007-10-01  
楼主的标题有点耸人,难道是翻译来的?我个人认为还没有哪一个ajax库需要像了解爱人一样去了解。。。我自己的项目那也是像了解儿子一样了解。。。

BTW,楼上这个抢沙发只能给一星了。
2 楼 Hidden 2007-10-01  
好文章,顶...
传说中的沙发?
1 楼 xyz20003 2007-10-01  
就是说,如果只是把extjs包含在自己的项目中,而且这个项目是不是卖给用户做二次开发的工具箱,或组件库,就可以遵守LGPL协议免费使用。你可以不用为ext的发展而捐赠一分钱。

相关推荐

    extJs3升级extjs4方案

    ExtJS3 升级到 ExtJS4 方案 ExtJS3 升级到 ExtJS4 需要修改大量代码,主要是因为 ExtJS4 配备了一类新的系统,不向后兼容。在 ExtJS 3 里生成表的几个框架组件,ExtJS4 大多生成 div,这使得 CSS classes 将会失败...

    Extjs例子Extjs例子

    Extjs例子Extjs例子Extjs例子Extjs例子Extjs例子

    extjs资料extjs资料extjs资料

    ExtJS是一种基于JavaScript的开源富客户端框架,专为构建企业级Web应用程序而设计。它提供了丰富的组件库,包括数据绑定,强大的布局管理,以及高度可定制的用户界面元素。这个压缩包包含了一系列关于ExtJS的学习...

    extjs图标大全extjs图标大全extjs图标大全extjs图标大全

    ExtJS图标大全是一个集合了多种图标的资源库,特别适合用于Web开发,尤其是使用ExtJS框架构建用户界面时。ExtJS是一款强大的JavaScript UI框架,它提供了丰富的组件和工具,帮助开发者构建功能丰富的、响应式的Web...

    ExtJS快速入门 ExtJS快速入门 ExtJS快速入门

    ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门ExtJS快速入门 ExtJS快速入门 ExtJS...

    Extjs4.1 小例子(适合extjs初学者学习使用)

    通过这些小例子,你可以了解如何使用ExtJS 4.1来创建用户界面,包括布局管理、组件系统、数据绑定、事件处理等核心概念。 描述中提到的".直接导入myeclipse即可",意味着这些示例代码是用Eclipse的MyEclipse插件...

    extjs流程界面设计器参考_ExtJS工作流设计器_extjs工作流_extjs_

    ExtJS是一种广泛使用的JavaScript库,专门用于构建富客户端的Web应用程序。它提供了丰富的组件和工具,使得开发者可以创建出功能强大、用户界面友好的Web应用。在“extjs流程界面设计器参考”中,我们主要关注的是...

    Extjs 2.2 Extjs 3.21 js

    ExtJS是一种广泛使用的JavaScript库,专门用于构建富客户端Web应用程序。这个压缩包包含了ExtJS的两个重要版本:2.2和3.2.1。这两个版本在Web开发领域都有着广泛的运用,它们各自拥有不同的特性和改进,对于理解...

    ExtJs学习笔记 ExtJs Api

    适合ExtJs开发人员extjs技术上手以及深入

    EXTjs图开编程EXTJS

    1. **图表类型**:了解EXTJS支持的各类图表,如条形图、饼图、线图、面积图、雷达图等,以及它们各自的适用场景。 2. **数据绑定**:学习如何将数据模型与图表系列关联,实现实时数据更新。 3. **配置选项**:掌握...

    extjs-OA extjs-oa

    一个extjs的OA项目 extjs-OA extjs-oaextjs-OA extjs-oa

    extjsapi/extjs3.4

    extjsapi,extjs文档,api手岫

    让我们开始EXTJS之旅EXTJS_WEB开发指南

    有用的资源,在正式开始开发之前,有必要对这个包中的相关资源有所了解。图2-1就是解开 ExtJS-2.0.2.zip之后的文件目录结构。 ExtJS-2.0.2开发包中有8个文件子包与8个文件,下面 分别对这些资源进行简单介绍。 • ...

    JBPM4 SSH EXTJS JBPM SSH EXTJS

    JBPM4 SSH EXTJS JBPM SSH EXTJS JBPM4 SSH EXTJS JBPM SSH EXTJS JBPM4 SSH EXTJS JBPM SSH EXTJS JBPM4 SSH EXTJS JBPM SSH EXTJS 希望对大家有帮助。

    ExtJS经典皮肤集合

    ExtJS是一款功能强大的JavaScript前端框架,它为开发者提供了构建富客户端Web应用的工具。这款框架以其丰富的组件库、可定制的界面和强大...通过深入了解和灵活运用这些皮肤,我们可以创建出既专业又个性化的用户界面。

    extjs 3.4 开发前准备

    "程序,可以了解EXTJS的基本架构和组件使用方法。 通过上述准备工作,开发者可以顺利地开始EXTJS 3.4的开发工作。EXTJS的强大在于其丰富的组件库和高度可定制化,学习EXTJS不仅需要理解其API,还需要实践和调试以...

    ExtJS 界面设计器

    对于新用户,可能需要花时间了解每个组件的功能和使用方法,以及如何通过设计器进行有效的布局和样式设置。 8. **兼容性和性能**:由于ExtJS是基于浏览器运行的,所以需要考虑兼容性问题,确保设计的界面能在不同...

    extjs技术文档资料

    这些文档通常会涵盖EXTJS的安装配置、组件使用、事件处理、数据管理、主题定制等多个方面,有助于开发者全面了解EXTJS的体系架构和技术要点。 标签“EXTJS”进一步确认了主题,EXTJS是一个由Sencha公司开发的前端...

    ExtJS2.0教程.chm +Extjs2.2.1压缩包

    `ExtJS2.0教程.chm`:这是一个帮助文件,通常用于提供详细的教程和API参考,帮助开发者了解ExtJS 2.0的各种组件、布局、数据绑定以及事件处理等。在chm文件中,用户可以查找函数、类和方法的用法,学习如何创建用户...

Global site tag (gtag.js) - Google Analytics