专家评微软“Flash”杀手——Silverlight

  • 霍泰稳

2007 年 4 月 18 日

话题:.NET语言 & 开发

微软公司在 4 月 16 日的一次会议上,向外界宣布其针对下一代 Web 展现层所推出的新技术——Silverlight,被业界成为 Adobe Flash 产品的“杀手”。

Silverlight 技术集成多种现有的 Web 技术和设备,可以在 Windows、Mac 等操作系统上跨平台上运行,同时支持 IE 和 Firefox,甚至包括 Apple 的 Safari Web 浏览器。值得一提的是,在应用 Silverlight 技术时,无需对现有的网站设计进行移植,甚至包括直接利用 Adobe Flash 设计的内容。在谈到 SilverLight 和 Flahs 的区别时,微软的一位高层人士透露说:

WPF/E(Silverlight 的以前称呼)程序并不是传递给 Flash 播放器的一个编译好的二进制文件,相反,所有的代码都是基于标准的,且图像都使用了 XAML。同时,与 Flash 的内容不方便搜索引擎收录不同,SilverLight 是以 DOM 型式公开它的元素树,内容能很好被搜索引擎收录。

关于 SilverLight 的产品介绍可以参见 Sohu IT 的一篇报道。在台湾地区著名的微软技术专家王森的博客里,他提到了“WPF 和 SilverLight 的区别”:

XAML 对 WPF 来说是一种把.NET 语言改用 XML 来描述的方式,也就是说,XAML 用在 WPF 上,像是另外一种编程语言,和 C#、VB、IronPython 类似。所以 XAML 能做的,C# 和 VB 也能做,但是反过来 C#、VB 能做的,XAML 不一定能做到,因为 XAML 是为了配合开发工具,特别设计出来的一种语言,本身有它的局限性,需要配合正规的语言才能完成一个真正有用的程序。

而 XAML 对 SilverLight 来说,本质则比较接近 SVG,XAML 用来描述构成画面的结构树,然后配合 JavaScript 去操作这棵表示 UI 的树,以达到互动的效果,所以对 SilverLight 来说,XAML 像是用来扩充 HTML/CSS 原本不足的一组 Tag。就像在 Firefox 中,一样可以用 JavaScript 去操作 SVG 所描述的画面,以达到多媒体的效果。

技术作家奚江华(《圣殿祭司的 ASP.NET 2.0 开发详解——使用 C#》一书的作者)在他的博客中列举了 Silverlight 的几个典型特性:

  • 轻量级的浏览器 plug-in:Silverlight 的安装组件(Runtime Component)只有 1.1MB 大小,轻薄短小的特性,特别适合应用在 Internet 的安装部署。
  • 原生的展现层 Runtime:Silverlight 本身是 render 为 XAML 基础,能够产生向量的文字、2D 绘图与影音的能力。
  • 具备影音播放与互动能力:Silverlight 在设计之初,便被赋予一项任务,就是要能够轻易地应付影音档在 Internet 上的播放,例如 WMV、WMA 与 MP3 格式的媒体,只需一行 XAML 程序就可以搞定了。
  • 程序开发层与现有技术的整合:Silverlight 在设计之初并不打算成为自创一格的孤岛,也就是一切都不以黑箱为目的,所以 Silverlight 本身公布了自身 WPF Object Model(即 WPF DOM),通过 JavaScript 可以存取 Silverlight 对象,并且可以与既有的 HTML、DOM、CSS 及 AJAX 技术进行整合与互动,成为一座来往便利的丰富岛屿(Rich island),让各种技术可以互相搭配运用。
  • 希望深入了解和研究 Silverlight 是怎么一回事的开发人员,可以参考博客堂的微软技术专家开心就好撰写的SilverLight 开发基础答疑系列

    .NET语言 & 开发