- Windows8应用开发实战:使用JavaScript
- (美)Chris Sells Brandon Satrom Don Box
- 1079字
- 2021-04-05 07:07:13
Chris Anderson序
Windows 8代表了微软开发者生态系统中的一个重大变化。Windows 8以消费者为导向,做出了许许多多改变,在吸引了不少公众目光(新的用户体验、触摸操作方式、平板电脑,等等)的同时,其内核也有了结构性的变化。在Windows 8中,开发者有了一个可选择的编程环境来构建他们的杰作,比如DirectX、XAML和HTML等。除此以外,现在Windows 8还有了一个内置的平台,开发者可以藉此将他们的产品变成真金白银。
过去的两年中,我作为开发负责人和架构师,从事Windows Library for JavaScript(即WinJS)方面的工作。在我们一开始考虑让HTML和JavaScript成为构建原生Windows应用程序的最佳平台时,我们所面临的一个最大的挑战就是:如何才能在基于标准的HTML/JS的世界和Windows原生平台的特性之间做出平衡。Windows Runtime(WinRT)出现之后,虽然我们有了技术上的手段,可以简单地将新特性集成到Web平台,但是,我们还是要在坚持标准和创新之间不断权衡。
我们在WinJS团队中奉行的原则是——“按标准编码”。在实现WinJS的过程中,我们对WinRT的使用是非常保守的,因为我们觉得,最好是让开发者自己去决定应用程序对平台的依赖程度。
在JavaScript世界里,充满着各种各样的工具包。人们为了完成工作,经常会把JQuery、require、Modernizer和Backbone混合在一起使用。在构建WinJS的时候,我们也尝试创建了一套工具包,可以和其他现成的工具包混搭在一起使用。所以,你可以轻松使用Knockout去处理WinJS ListView控件的绑定;也可以简单地在WinJS声明式的控件处理中插入jQuery UI控件。我们在这些地方构建了大工具包(ListView是最明显的例子),而在其他地方,又有一些非常小的工具包(例如,包含在base.js中的CommonJS Promise/A的实现)可供使用。
我们在构建WinJS的时候,不断地对设计模式进行调整,试图把JavaScript社区现有的约定俗成的东西无缝地融入其中。我记得我们早前尝试使用模式之一是把许多构造函数的原型定义给固定下来,但很快就被告知,这可不是JavaScript开发者会干的事。于是我们又转向可变原型,并且也认识到在运行的时候能够给原型定义打上“猴子补丁”[1]确实具有很大的作用。
在微软,我有幸与Chris Sells一起工作了几年。但从未与Brandon Satrom共事过。不过从这本书的质量来看,我觉得他应该有着开发者所共有的那种激情,对编程肯定也十分热爱,并且,他和Chris Sells一样,掌握了写作的艺术。
可以说,你现在拿在手中的这本书可以开启一段非常精彩的旅程,它将带你领略如何使用HTML和JavaScript去构建、分发Windows 8应用程序,并从中获益。虽然过去的两年,我一直在从事与Windows 8相关的工作,但坦诚地说,这本书还是让我学到这个平台的不少新东西,我已经迫不及待,马上就想用这些技术去开发应用程序了。
愿你喜欢这本书,谨祝编程愉快!
——Chris Anderson,微软公司杰出工程师,WinJS开发者
2012年8月
[1]monkey-patch,是一种修改或扩展动态语言的运行时代码的方式,不需要修改原始的代码。——译者注