我很自豪能代表Sencha和ExtJS团队和大家成功的分享了ExtJS 4的预览版、3个beta版和今天发布的正式版等5个版本。
ExtJS 4从创建之初,就以最全面现代化为目标,它采用了改进的架构和加入了许多新的特性,从而使你可以创建可靠的下一代网络应用程序。框架的每个部分几乎都已升级和优化,已充分利用当今的现代浏览器,同时兼容它们的前辈。
我们的社区
我想花一点时间来感谢我们的社区成员,感谢他们对我们的不断支持!我们一起创作了世界上最先进的Javascript框架。
在正式版的道路上,我们从你们那里收到了成吨的反馈。我们希望获得更多!因此,我们也宣布改变我们的订阅政策,以前的方式是发布一个主要版本就是一个补丁版本,但从现在开始,我们会在一个主要版本发布后30天内就会发布补丁,这样,你们无价的帮助就会让我们打造出最好的ExtJS。
易于学习
随着网络成为唯一的开发环境,我们对许多来自不同背景的开发人员渴望学习更多与成功的Web技术有关的知识,感到很行为。因此,我们已经采取措施,让框架更易于使用。相对于ExtJS 3.3,在ExtJS 4,我们添加了40多个新示例,随着ExtJS 4.x,会添加更多。ExtJS 4的文档较之前任何版本多出两倍有多,其中包括了12个新指南,涵盖了从类系统到新的应用架构等许多方面。
除了新指南和扩充的文档,我们还改进了命名规则,对类名、配置、方法和事件都进行了规范化。我们将尽快在新的文档中心发布说明这些规则的ExtJS风格指南。新的文档中心可以让你方便轻松的找到你需要的东西。在未来数月,我们将开启评论和其它协作功能。
核心改进
在Sencha,我们认为这是一个完美的旅程。在ExtJS 4中,我们根据客户对产品的内在需求,已经深入检视框架的架构和重塑其基础。这些变化不单提供了产品性能,还提高了其健壮性。
测试框架
我们已经在所有支持的浏览器上对框架进行了持续全面的测试,这包括手动测试和附加的4000次新单元测试。我们已经创建了一个小工具以协助我们在21种浏览器上进行特殊行为、标准和严格测试,以确保ExtJS在测试时充分使用浏览器技术。如果有一个像素丢失,我们要抓住它。
类系统
作为Extjs 4架构更新的一部分,我们引用了一个功能更完整的类系统。 无论何时,Extjs都会提供一个优秀的类系统,这次我们进一步为它添加了动态加载、mixins和在线依赖计算等特性。
沙盒
在ExtJS历史上,ExjJS 4首次提供了完整的沙盒模式。从ExtJS 4开始,框架不再扩展数组或函数等原生对象,因此,与其它的框架同时加载到页面时,再也不会产生冲突。
更好的是,你可以选择那个全局变量作为Ext实例,从而实现在一个页面上运行多个版本的ExtJS。它甚至可以更改应用于整个框架的CSS类的命名空间。为了展示这一点,我们已经在做了一个名称为“Ext JS 4’s charts into Ext JS 3’s desktop”的沙盒示例,两个框架可以愉快的运行在同一页面。
应用架构
我们已经听到我们的客户反应,他们的ExtJ项目越来越复杂,而这些应用需要一个大的团队来处理它们。我们的许多客户希望我们能提供一个解决方案,让他们的ExtJS项目易于成长和分布式团队易于扩展。
在ExtJS 4,我们引入了一个标准化的几乎适合任何ExtJS应用程序的MVC风格的应用架构。使用MVC,开发团队只需要学习一种架构就能理解任何ExtJS 4的应用。许多开发人员经常会在一个项目结束后转移到另一个项目,如果能在不熟悉的代码中,轻松的跟上进度,是我们头等重要的工作。
如果你正在寻找有关如何使用新架构建立应用程序的信息,我们已经撰写了MVC的指南,全面介绍了所有新的类和概念。
SDK工具
现在新的应用架构使我们创建用于编写、优化和部署应用的工具容易多了。今天,我们正在测试beta版的Sencha SDK工具,在第一版本中包括了优化工具、生成器和slicer工具。这些工具可让你优化Javascript程序,以确保主题能在IE6正常工作。
新特性
除了改善架构,我们还为框架添加了数量空前的新特性。以下是一些令我们特别兴奋的亮点:
全新的图表库
ExtJS2 4中, 全新的、插件自由的图表库是最激动人心的新功能之一。它基于Web技术(SVG和VML)构建,新图表包是一次编写,不依赖于第三方任意运行的解决方案。它可工作在IE6之后的任何浏览器,因为它是使用Javascript编写的,因而可以完全实现自定义,扩展也容易。
我们创建了饼图、线图、面积图、雷达图等等,所有这些都是动画的、易于配置的和可扩展的。在这个版本,我们包含了22个图表示例以展示更多的可用配置。
世界上最好的Grid
Grid是ExtJS中最受欢迎的组件,而在ExtJS 4,我们让它变得更好。自从引入了“Features”功能,Grid现在更模块化和更容易扩展。第一次实现了组合多个功能,如列锁定、单元格编辑,而不需要单独子类。
Grid最棒的部分是最小化了框架生成的标记。只有在Grid中使用附加功能时,才会产生新的标记,从而使你的应用是轻量内存、轻量DOM和高性能成为可能。
由于这些改进,ExtJS 4的Grid现在可以在一个单一的Grid内支持无分页、无限量的数据。我们也把TreeGrid做成了框架的一部分。从而让你们可以在Grid中使用树结构。
更只能的渲染和布局
我们引入了新的渲染和布局管道,只有在需要的时候才更新DOM,从而让应用更快。我们创造性的叫它为“分裂的DOM(split DOM)”。
ExtJS 4又一套新的标准化的渲染和布局管道,从而使它更容易地创建和勾画定制组件。通过标准化每个组件的渲染处理,我们让组件渲染更迅速和更准确,更新的布局系统可以智能在需要的时候才勾画组件,从而让你的应用程序感觉更迅捷。
我们也改进了布局本身。我们已经删除了FormLayout,意味着你能使用任何布局组合创建最完美的表单。我们新增了一个称为DockLayout的全新布局,这使得dock组件可以轻松的放在其它组件里。
增压的数据包
ExtJS一个基础性的作品就是数据包。不管你将数据加载到Grid、tree或其它组件,改进的数据包,都比以往更容易。新架构还支持HTML的localStorage,数据流可轻松在你的应用中进出。
如果你在寻找更多有关数据包是如何架构的和如何使用的信息,这儿有些资源:
高级主题支持
ExtJS 4大大提高了对主题的支持。根据我们的经验和客户对Sencha Touch中的SASS和Compass的反馈,我们已经将这些功能强大工具运用到整个框架。这使得ExtJS应用比以为更容易改变主题。
更多的探索
我们已经提及的ExtJS 4的新功能只是很少的一部分,不过这里有更多的讨论。以下是ExtJS 4更新的其它改进:
垂直工具条可以被放置在容器的边栏。
新的ComponentQuery类可以让你在应用中更容易的搜索组件。
新的FocusManager可以让你在任何应用中更容易开启键盘导航。
支持浏览器IE 9和Firefox 4。
这是ExtJS 4新功能的完整列表:What’s New in Ext JS 4
ExtJS 4.x路线图
Ext JS 4.0奠定了Web应用框架的下一代基础。今后,我们打算细化编写和使用Ext JS应用的经验,引入本地RTL和ARIA的支持,以及一个升级版的PivotGrid。我们也将捆绑更多的主题和更多应用示例,包括日历的的应用示例。
你的bug报告、问题和建议,可能和已提供的版本有些区别。我们希望你能象我们享受构建过程那样享受使用ExtJS 4的过程。
作者:Ed Spencer
Written by Ed Spencer
Ed Spencer leads the development of Ext JS and supporting projects. An expert with Ext JS and JavaScript in general and with several years experience with traditional server side frameworks, he has broad experience in API design and delivery. His passion is in crafting beautiful code that supports the world-class Sencha product line.