介绍
1.1关于
qooxdoo(发音[‘kuksdu:])是一种建立用户友好,界面表现丰富的应用系统的通用JavaScript框架,它可以让您在移动设备、传统的web应用、富客户端(RIA)应用程序甚至运行在浏览器之外进行设计开发。它完全利用面向对象编程技术,并且具有集成工具链来完成任何规模应用的开发和部署。qooxdoo是开放源代码的,基于LGPL和EPL双协议,也就是说它可以免费使用,无论您是个人使用还是商业应用。Qooxdoo由世界领先的web服务供应商1&1公司维护,它还有一个充满活力的社区。
1.1.1框架
Qooxdoo的核心是完全基于类,并充分利用了JavaScript面向对象的功能。它的命名空间功能使用户很方便的管理和组织自己的代码,且很容易与其他JS类库进行集成。它支持大多数现代浏览器(如Firefox, Internet Explorer, Opera, Safari, Chrome)。它本身集成的工具链不仅可以象Javadoc那样自动生成API文档,还允许快速完整对应用系统自动构建、优化、压缩、链接和部署。它的核心功能中包括了国际化和本地化功能,可以自动生成不同国家和语言的应用程序。
1.1.2 GUI工具包
尽管qooxdoo是一个纯JavaScript框架,但它与Qt或SWT GUI工具包一样,都提供了先进的但很容易使用的用户界面设计功能。它提供了一套很全面的widget,设计的系统与桌面应用程序很难区分。它内置键盘导航、焦点、Tab处理、拖动等常用功能。widget的尺寸可以设置为固定值,也可以自动调整,拉伸,甚至根据百分比,最小/最大值进行设置。所有widget都被强大而灵活的布局管理器管理。所有的管理工作都通过JavaScript接口定义进行控制,在使用和扩展这些接口时不需要HTML。qooxdoo开发人员甚至不需要知道CSS样式,因为它有一个清晰的,容易配置的样式、颜色、边框、字体和图标的成熟主题功能。
1.1.3 网络连接
Qooxdoo框架内置了很多种不同的网络连接功能,如最底层XMLHttpRequests(XHR)以及高级的RPC API。
1.2 功能概述
一个典型的应用系统是利用qooxdoo集成开发工具,在基于面向对象的JavaScript客户端编程模型上建立的。使用qooxdoo框架,可以使开发人员把精力完全集中在创建应用程序而不用担心底层的跨浏览器问题。
1.2.1 运行时
•qooxdoo支持很广泛的JavaScript环境:
•桌面浏览器(IE,Firefox,Opera,Safari,Chrome)
•移动浏览器(iOS,Android)
•browserless JS引擎(Node.js,Rhino等)
•无插件需要(不需要ActiveX, Java, Flash,Silverlight)
•没有修改本地JavaScript对象,以便易于与自定义代码集
1.2.2 面向对象
•qooxdoo框架是完全基于类
•通过名称空间来减少全局变量的使用
•除普通类外,它提供抽象类,静态类和单例类
•构造函数和析构函数
•可以在开发过程中来通过命名约定来强制定义公共,保护和私有成员
•单继承,多态性
•和Java的接口一样
•类Ruby的mixins功能
•被称为动态properties的功能,以非常方便和强大的方式来优化setter和getter方法。
1.2.3 编程
•纯客户端JavaScript
•不需要HTML知识
•不需要CSS知识
•不需要DOM知识
•完全支持基于事件的编程
•qooxdoo应用开发支持所有平台,如Windows, Linux, 所有的类Unix, Mac OS X
•所有的用户应用程序开发都是在预先配置好的框架基础上进行
•大量的示例程序和实例
•专为高性能设计
•辅助用户避免应用程序内存泄漏
•广泛的日志记录功能(例如不同的日志增加,Firebug 支持)
•简单调试
•浏览器历史记录管理,即浏览器后退/前进、书签按钮
•Cookies
•通用的漂亮的JavaScript代码风格、统一代码格式化程序
•由第三方提供的替代发展平台
1.2.4 国际化
•构建国际化(i18n)和本地化(i10n)的支持
•支持所有的语言和方言
•Unicode常见的现场数据仓库
•著名翻译文件格式(.po)
•支持所有平台上专业,免费翻译工具(“PO编辑器”)
1.2.5 API参考
•扩展了像javadoc的源代码注释
•为框架和自定义应用程序提供API参考
•在线和离线的API浏览
•搜索功能
1.2.6 测试
•集成单元测试框架- Test Runner
•集成功能测试框架模拟器
1.2.7 部署
•生成一个独立的、易于部署的“build”版
•复杂的生成过程隐藏在用户友好的命令之下
•JavaScript压缩(空格去除等)
•JavaScript类依赖自动分析;不需要人工的“require”的声明或定制一个用户绑定
•自动链接JavaScript类(“JS Linker”)
•在“build”时自动复制所需的静态资源如图像或其他外部文件
•字符串提取
•缩短和混淆局部变量或私有成员
•根据用户定义的变量来生成不同的版本,它允许不同的产品使用相同的代码
•去应用程序部署时去除调试语句
近期评论