《the book of dojo》介绍翻译

   都知道ajax的框架已经为数众多, 真正了解点的大框架也只有ms的asp.net ajax (atlas)以及Jquery吧,其余的都是拿来就用。最近有想作个小应用,因此想换一个其余新框架来用。dojo去年就有下过0.3.1版本,但当时用的不太舒服(多是还不了解),就 放一边。这几天无心看到了dojo1.0这个月发布了,因而带着好奇去关注了下。真的很吃惊,这个框架发展真的太快了,变得出奇的强大,已经把许多框架远远抛在了后面,使人赞叹!!因而我就想深刻下dojo。但究竟Dojo是怎么一个东西,我翻译了《the book of dojo》的introduce章节,也许能够回答一些这问题吧。另外,也但愿你们能够关注mootool,我发现它也挺好,对我目前用不Dojo,因此我会选用它。但至于你选择哪种框架,也许下文会对你的选择有所帮助,或许你也所以想有投身Dojo的冲动,至少我有点了。css

最后,但愿Dojo有更多的中文文档。。。html

 

  详细文档:http://dojotoolkit.org/book/dojo-book-0-9-0ajax

  Dojo1.0下载地址:http://dojotoolkit.org/downloadssql

CONTENTS
目录
介绍
 
Dojo 作得很是多,努力地使它在 3 个主要的层面上容易使用: Dojo Core Dijit 、和 DojoX 。这本书做为这三个层面的指导,介绍一些你须要的概念。使你在创建本身的组件、客户命名空间、单元测试这些高层次运用时,从手足难堪中解脱出来。
正如你所见, Dijit 和DojoXJ创建在为全部Dojo应用程序提供支持Dojo Core的固定基础上。因为Core和Dijit被放入可靠的API及强大品质保证(QA)、国际化(i18n),容易处理许多网页边缘化特征的能力,也是所以Dojo而为人们所知。它们也在更松散的、更有组织的DojoX项目中获得发展。咱们在整本书中都会向你展现各个部分是如何创建在彼此之上,以及如何运用每个提供的基础,优雅地去解决直到如今用基于浏览器UI也难以对付的用户体验问题。
感谢你能看Dojo和《the Dojo Book》一书。若是在这本书中你没有弄明白,就在该书的网页中评论,留下你的问题。咱们会努力地去改善。正是因为你的运用,激励了咱们创建了Dojo。正是你们不断提高toolkit的用户体验的许多事,使咱们一直坚持。正是在大家的帮助下,咱们写下了这本书。
许可受权
 
你能够在商业软件中使用Dojo。这不须要去单独获取许可证或承担其余的责任。
 
Dojo Toolkit 是双重许可。优先许可协议是 Academic Free License v2.1 http://trac.dojotoolkit.org/browser/dojo/trunk/LICENSE#L43 )。它是很是开放的,容许被作商业用途,也为次级许可受权提供支持。 Dojo 基金会的全部项目的代码都在这个许可条款下发行。由于 AFL 极其自由,于是几乎没有必要都使用双重许可受权条款的两个部分。
因为用户要面临一些 FSF 所形成的问题。这些问题有关于 AFL (L)GPL 的兼容性,模糊不清且由人为。所以, Toolkit 也许会交替使用 BSD 许可证。可是, AFL BSD 许可证都符合 Dojo 基金许可受权目标。
Dojo 的双重许可受权和许多开源项目的不一样。两个条款都是开放源码和很是自由,没有特权和麻烦的商业用途条款。在任什么时候候,你都不须要选择 AFL 外其余东西。通常状况下,你也不须要另外作什么来代表你选择了一个许可证。若是你还有什么有关 Dojo 许可受权的问题,请不要犹豫,当即同目前 Dojo 基金会的主席 Alex Russell 联系吧。
 
Dojo 基金会的角色
 
Dojo 是一个开元源软件,由非赢利性基金会发布。这个基金会是做为中立的知识产权全部者而设立。为了向基金会的项目用户明确,关于基金会的代码不存在任何模棱两可或者隐藏的责任,全部的贡献者都被要求在贡献者许可赞成书上的签名。
基金会的事务都要由 Dojo 基金会的全部委员投票决定。基金会由贡献者以透明的方式运做,而且只是依靠捐赠筹集资金。
基金会的许可受权目标归纳在 Foundation page. http://dojotoolkit.org/foundation )。
 
第三方许可证
 
Dojo 使用了其余开源项目的代码,所以也要服从他们的许可条款。这些许可证和软件版权公告列表以下:
 
历史
早在 2004 年以前, Alex Russell(netWindows 的创始人 ) 就开始有意聘用 DHTML 项目 Informatica 的合做者。在这个过程当中,许多 DHTML 社区的成员之间不断接触,以一封 2004 4 25 日标题为 “出售 DHTML 的将来”的邮件达到了顶点。 David Schontzler (Stilleye) Informatica 上花费了一个暑期的工做。 Dylan Schiemann 也在那时加入。就这样,在 Informatica 项目的帮助下, Alex Dylan 写下了 Dojo 的第一行代码。还有其余许多社区成员也活跃参与 Dojo 方面的设计。他们是 Joyce Park Tom Trenka Mark Anderson Leonard Lin ( 是他建议取名 Dojo) Aaron Boodman, Simon Willison Cal Henderson 以及 Dan Pupius
在许可受权、选择名字、代码规范、开发工具、服务器配置及需求上,咱们和 ng-dhtml( 如今 Dojo 的开发者 ) 用一系列邮件讨论了几个月。这以后,便开始了工做,并成立了 Dojo 基金会。这个基金会是一个 501(c)6 (美国的一个联邦法案条款)实体,这个条款用来管理代码权和知识产权 (IP) ,今天也管着一些其余项目。在 2005 3 月,来自的社区的贡献开始重于核心开发团队。今天, Dojo 0.4.x 5 个主要发布版本已经有了超过 300,000 次的下载,有超过 60 个开发者的贡献和代码。以及有一些像 IBM AOL Sun SitePen Bloglines 等等这些大用户,也不断地使 Dojo 质量获得提升、社区变得活跃。
 
为何要选择Dojo?
今天已经有几个高质量的 JavaScript 工具包,以及其余几百种质量与完整性不断改变的工具包。但为何在如此多的选择中,你就要选择 Dojo 呢?
  • 宽度和深度: Dojo是一个“full stack”(意指集成了所有所需功能的框架)。与将几个来自不一样源码的组件揉合在一块儿不一样,Dojo是在可信赖的一套高质量大厦的基础上,用整合的公共基础和多种可选的模块去使用组件。这些组件提供了很是好的用户体验问题的解决方案,可以很容易地被放入你的须要。从平板层到客户图表和图象,从数据绑定到时间测试模块系统,Dojo都是实现强大致验的坚固基础。
  • 质量: 国际化和易用性基础,贯穿在整个Dojo的结构中。按键事件能正确地响应。全部的组件拼装成一个粘接力的总体。每一件事用CSS定制很轻松。但是,只要作不多的事,就能够在全部的地方都有很是好看的UI。
  • 表现: Dojo天天都被用在高收益、高流量的网站上,使用Dojo的构建工具是主要缘由。Dojo的包系统,让管理大型UI项目开发、系统顶层建设更加的容易,使你的项目更出色。
  • 社区: Dojo是个开放社区。所以,许许多多的我的和公司一块儿加入进来,开发了你们得益的工具。工具的许可受权也尽可能作得非政治。若是你正在打算涉及这些,咱们也努力使知足你的渴望变得容易。全部的开发都是在开源环境中进行,参与近来的障碍也特地放得很是低。咱们不在乎你在哪工做或者你多有资格,我只关心你很想构件更好用户体验的产品。设计者、开发者或文档编写人员,Dojo社区尊重每一种贡献,你在社区中的地位只等于你所作工做,而不是政治口角。咱们正作工做改变关于那些人能够参与贡献开源组织的概念,咱们邀请你参与咱们一块儿绘描绘新的路径。若是你想要构建一个强大的产品以及以为本身能够帮助咱们,那么但愿你告诉咱们。
Dojo 与其余的工具包的比较
 
几个其余的工具包经常被用来和 Dojo 做比较。这里的比较也不全面,但也是一些高层次的比较。包括了它们的特征和设计目标,以及它们与 Dojo 特征和开发工序及原理的比较。
  • MochiKit:MochiKit是一个高质量的JavaScript工具包,它使得写Javacript代码更出神入化而且达到出色的表现效果。它和Dojo同样,采用了许多旧的打包、命名、全局名字空间的惯例。主要由Bob Ippolito所写。它有大量的文档和测试。可是不像Dojo,它没有一个小组件系统(widget system)和可扩展的组件套。一些代码被Mochi和Dojo共享(固然,在CLA许可协议下)。Mochi没有被一个基金会所援助,代码门第也未得证实,可是它被很自由地许可。
  • Prototype+Scriptaculous: 这两者是个广泛使用的库,提供了许多和Dojo Core一样的功能。可是,在关于全局命名空间、常使用方法简命名偏好,及其它所关心的方面上,它们和Dojo保持了不一样的原理。这两个库主要有良好的文档和普遍的社区支持,还能够与Ruby On Rails(以及其余框架中)紧凑的整合在一块儿。Scriptaculous提供了一些控件,好比自动完成输入框(auto-complete)、滑动条(sliders)等,但都不是组件工具包,也没有为轻松构件组件提供支持。虽然许多第三方扩展(add-on)库能够用在Prototype+Scriptaculous上,但是一样没有和库一块儿发布,也没有具备特点的包和构建系统。Prototype和Scriptaculous Mochi没有被一个基金会所援助,代码门第也未得证实,可是它们很是自由的被使用。
  • YUI: YUI是由Yahoo内部开发,以可扩展性、高质量的文档和示例为特点。目的是为实现快速,锁定专业PHP开发者设计。其实说实话,YUI主要是为知足Yahoo规模的应用程序的须要而设计的。工具包中的可用控件日渐变多,都使用了好用的标准化布局样式表CSSYUI没有使用包系统,可是分发了向上滚动(roll up经常使用功能文件,并用文档清楚告诉用什么顺序装载。不能用CSS查询、标记驱动组件(markup-driven widget)。YUI有活跃的社区和大方的许可受权,可是外部的贡献者并不被容许进入这个项目,Yohoo也没有澄清代码的血统和其余工具包的知识产权(IP)YUI没从源头控制任何的数据访问。在Yahoo CDN上使用的YUI都被边缘缓存(edge-cached)。
  • JQuery:一个最初关注于操纵如今DOM结构的小型系统。它以混合Xpath/CSS查询语言(Dojo使用的是标准的CSS3.0查询)为特点,为查询结果提供了一套丰富的选择和操做。JqueryAjax、效果和其余一些运用装入一个核心(除了Mootools,赛过其余全部的)然而Jquery中没有足见和包系统,可使用在Jquery上创建的第三方组件库。Jquery社区高度活跃,经常也颇有帮助,外部的贡献和补丁也被接受。JqureyMITGPL双重许可,John Resig具备全部版权。可是并不清楚在什么条款下,其余贡献者如何把知识产权(IP)分给了John。有几个框架(特别是Drupal)已将Jquery整合了进去。
  • EXT:有点相似DojoDijit系统,EXT是一个组件库。它以数量庞大的一致且好看的小组件(widget)为特点,这些组件实现了跨浏览器的纯像素布局和仿桌面UI。最初EXT是为在YUI和后来的Jquery上运行而设计。现在,它有本身的低层库,不须要依赖第三方。EXT社区很是活跃,具备良好的库文档。依据LGPL许可受权,有多种形式的商业许可证。可是,外部的贡献者是否被承认(在哪些条款下),以及在某些方面,无名子版本的访问受不受那些项目资金提供者的限制,都还不清楚。
  • GWT:GWT注意到JavaScript应是个要被解决的bug,应运用高级编译器技术让开发者在Java中编写,并生成以JavaScript为基础的动态Google风格的UI。所以,GWT直接整合了服务器端开发和客户端开发。默认的小组件(widget)系列彻底是Dijit所提供的子系列,可是要充分地运用全部的代码生成却至关辛苦。不断增大的第三方扩展库很宝贵,可为默认组件作了很多提高。不像YUIEXTGWT是以一个开源项目进行的,容许来自外部的贡献者(committer)。在开源环境下进行开发,然而这也使得在管理知识产权(IP)的问题上用了很复杂方式(CLA、代码检查,许多地方很像ApacheDojo)。GWT应用程序只能用Java来写,而且不少是要依赖于Java的容器。良好的文档和不断成长的社区提供了颇有帮助。
为了比较 , Dojo :
  • 接受外部贡献者,并使用CLA许可协议(如同GWT和Apache)来保证没有知识产权的争论。
  • 许可受权很是自由,为每一个人都提供了匿名SVN访问。权利也获得了保证。
  • 提供一个比较丰富的客户端组件套,但不要求和任何服务器端语言(“是协议,而不是API”)紧密绑定。
  • 尽可能在网线中传输大小和经常使用功能之间提供一种平衡。Dojo的基础库(Dojo Base)大小和Prototype接近。
  • 很是注意使你的页面不会侵犯到其余代码,而且都保留了它们的全局命名空间。
  • AOLs CDN上的全部使用都会能够被边际缓存(edge-cached)。
  • 提供包系统,使你知道在假设的问题上以什顺序进行加载的。
容许经过标记进一步增进。提供了易用的小组件( widget )系统构建你本身的可重用组件( component ),这些都能很是容易经过标记实例化。