尽管是件难事,我们仍然在很长时间里试图避免报道有关 Silverlight 死亡的传闻。就像在所有事情上一样,传闻往往是被夸大的或彻底捏造的。对此一个很好的例子是,曾有观点认为 Web Form 已经进入维护模式而且决不会被更新至 HTML5[1]。不幸的是,Silverlight 之终结并非传闻;如果微软不改变路线,那么随着 Windows 8 的发布,Silverlight 会像 Flash 和其他插件技术一样,将无用武之地。
就在 9 月 14 日下午 6 点 Steven Sinofsky 和 Dean Hachamovitch 宣布, Windows 8 中的 Metro 风格浏览器不支持插件。Metro 风格浏览是一款全屏、无边框的 IE 浏览器实现,预计大多数人会在 Windows 8 中使用它。尽管 Metro 风格用户界面拥有丰富的触摸功能,但是此设计旨在,使 Metro 风格用户界面成为所有使用 1024x768 或更高分辨率屏幕设备的首选界面,即便在使用鼠标和键盘的情况下也应使用 Metro 风格。“桌面”模式仍然可用,但是桌面模式被定位在仅用于遗留程序和一些复杂应用程序,例如 Photoshop 和 Visual Studio。
正如 Steven Sinofsky 所说,
此贴讲解了 Metro 风格 IE 的重大改变,它会为用户带来无插件体验。在 Windows 8 中,IE 10 既可用作 Metro 风格应用程序,也可用作桌面应用程序。当 IE 10 被用作桌面应用程序时会继续完全支持所有插件及扩展。
Dean Hachamovitch 补充道,
为推动网络向前发展,以及为使消费者获得完全的触摸优先的浏览体验,Windows 8 中的 Metro 风格浏览器尽量做到仅支持 HTML5 且无插件。目前插件所提供的浏览体验与 Metro 风格的浏览体验及最新的 HTML5 网络不太匹配。
这意味这无 Flash、无 QuickTime、无 PDF 阅读器、以及无 Silverlight。他接着解释了为什么无插件浏览是更好的,并且所有网站无论如何都应过渡到 HTML5。虽然在很大程度上他是对的,但是当由于你的工资单是份内嵌的 PDF 文件而导致你无法阅读时,那些话只是令人扫兴的安慰罢了。当你想观看只有特定媒体播放器才能播放的视频时,那些话也毫无帮助。
这为什么会发生?那么最可能的原因仅仅是 Metro 风格浏览器不能够支持插件。因为 Metro 风格应用程序不是基于 Win32 类库构建的,而是使用了全新的操作系统级的 API,被称为 Windows Runtime 或 WinRT。由于许多插件很可能是建立在例如 GDI 等 Win32 组件之上的,因此它们将不得不被完全重写以便在 Metro 下运行。随着事态进一步发展,像 Apple 和 Adobe 等公司针对每种架构(x86、x64 和 ARM)的 Windows 8 必须并行维护 WinRT 和 Win32 两个版本的插件。而且直到微软开发出一套遵守 WinRT 的运行时限制的新插件架构之前,这一切甚至都无法启动。
值得注意的是,在“桌面”模式下使用 IE 时,Flash 和 Silverlight 插件将继续运行良好。同样,用户可以选择切换至任一其他浏览器,例如 Firefox、Safari、或 Chrome。再次重申,那些浏览器都要运行在桌面模式下。
随着可上网设备的激增,其中大多数设备都不会支持插件,至少我们或许应考虑移除此类插件技术。但是目前 HTML5 还不适于创建那些能用 Flash 和 Silverlight 创建的身临其境的应用程序。最起码,对于诸如 Web Workers 和 WebSocket 等核心功能的标准而言仍有待敲定,还有可调整大小的布局问题也需解决。但更为紧迫的是 JavaScript 本身,其语法和动态特性使得很难用它编写大型的模块化应用程序。
那些已在 Silverlight 上大量投入的公司其实处在最佳位置上。这些公司采用 Silverlight 及 Flex 作为内部应用程序使用。此类应用程序通常不用 HTML,只用浏览器作为一种递送机制。由于只需出乎意料的举手之劳,这些应用程序即可被移植到 Metro 运行时。因此,除了如企业级的 Windows 应用商店等已列入工作计划的事项之外,可能还需要一种新的分发机制。
那些使用 Flash 或 Silverlight 来增强其站点的公司将遇到大麻烦。因为他们无法简单地将他们的代码移植到 Metro 中,所以他们必须使用 HTML 和 JavaScript 从头重写某些组件。
译注
[1] Web Form 已经进入维护模式而且决不会被更新至 HTML5,事实已证明此观点是个彻底捏造出来的传闻,微软将在.NET Framework 的下一版本中对 HTML5 提供更全面的支持,而且在近期发布的.NET Framework 4 更新包中,已加入部分对 HTML5 控件的支持预览,以方便开发者尽早试用。详见 HTML 5 Updates for .NET 4 。
另,特别感谢本站热心读者陆超对本文的积极回复 :)
查看英文原文: Microsoft has Abandoned Silverlight and All Other Plugins in Metro IE
译者评论
此新闻英文版初次发布时的标题为“Microsoft has Abandoned Silverlight and All Other Plugins”(微软已放弃 Silverlight 和所有其他插件),明显有标题党之嫌,随即在 InfoQ 主站内引起了读者的强烈反响,截止中译版发布时已有 22 条评论。估计作者觉得标题欠妥,才在后面追加了“in Metro IE”(在 Metro 风格 IE 中)的限制。
通读全文可知,微软为给用户提供更好的触摸优先的浏览体验,当 IE 10 被用作 Metro 风格应用程序时只支持 HTML5 并且无插件。当在“桌面”模式下使用 IE 10 时所有插件及扩展仍可运行良好。而且倒数第二段提到,对于那些已经在 Silverlight 上大量投入、并采用 Silverlight 及 Flex 作为内部应用程序使用的公司而言,微软将提供一种极其便捷的转换方案,以便那些应用程序可被轻松地移植到 Metro 运行时中。由此可见,Silverlight 并未终结。此外,微软还在 BUILD 开发者大会前两周发布了 Silverlight 5 RC 版。
其实所谓“放弃”仅限于 Metro 风格浏览器中。然而,是否放弃 Silverlight 和所有其他插件的决定权掌握在网站所有者手中,而非微软。正如最后一段提到,如果那些使用 Flash 或 Silverlight 来增强其站点的公司希望为用户提供 Metro 风格的触摸浏览体验,那么他们必须使用 HTML 和 JavaScript 从头重写某些组件。换言之,如果那些公司决定不为用户提供 Metro 风格的浏览体验,那么用户将无法通过 Metro 风格浏览器访问他们的网站,但仍可通过桌面模式下的浏览器正常访问。
综上所述,微软并未放弃 Silverlight,只是进行了战略调整。准确地说,HTML5 在 Internet 上作为主导的跨平台解决方案的最终角色毋庸置疑,而 Silverlight 被重新定位于企业级的 Intranet 应用。但是,对于仍在使用 Silverlight 开发 Internet 站点的开发者而言,确实须要认真考虑自己的职业发展何去何从,是转向 Silverlight 企业级应用,还是快速跟进 HTML5?
评论