Silverlight 的工作原理

比尔·盖茨图片集 比尔·盖茨在2008年消费电子展上谈论Silverlight。查看更多比尔·盖茨的图片。
罗宾·贝克/法新社/盖蒂图片社

自20世纪90年代初以来,浏览万维网发生了很大变化。那时,大多数网页由静态文本、少量图片和偶尔循环播放(通常令人恼火)的MIDI音频文件组成。但多年来,万维网变得越来越复杂。如今,您可以访问整合了视频、动画、声音和交互式功能的网站。最先进的网站几乎就像被拉入电影一样。但是,为了构建、查看和与这些新功能进行交互,程序员不得不创建新的应用程序。其中一个应用程序就是微软的程序 Silverlight

Silverlight 难以简单解释。在许多方面,它与 Adobe Flash 相似。Silverlight 要求开发人员和用户下载客户端——如果没有此下载,Web 浏览器无法处理 Silverlight 内容。它使 Web 开发人员能够将流媒体视频、音频和动画整合到网页中。程序员可以使用 Silverlight 技术创建复杂的、用户交互式的 Web 应用程序。在万维网上,这些应用程序有一个特殊名称:富互联网应用程序RIA)。

广告

­随着 RIA 变得越来越复杂,桌面应用程序(存储在硬盘上的程序)和基于 Web 的程序之间的区别开始消失。随着我们使用互联网来满足数据处理和存储需求,Web 浏览器最终可能发展成为成熟的基于 Web 的操作系统。以这种方式利用互联网被称为云计算——程序和数据存在于互联网的“云”中,而不是在个人用户的机器上。

Silverlight 只是旨在帮助程序员创建更好 RIA 的众多工具之一。微软工程师将 Silverlight 构建为其他微软项目的扩展,但该应用程序本身是独立的。微软将 Silverlight 推广为一种跨平台、跨浏览器技术。这意味着 Silverlight 应用程序应可在 PC 或 Mac 电脑上运行,并在 Internet ExplorerFirefox 或 Safari 等浏览器中运行。Silverlight 也将很快与 Linux 电脑兼容——一个名为 Mono 的开源项目正在牵头创建 Linux 版本。

尽管 Silverlight 是一项年轻的技术,但它并非没有麻烦或争议。一些开发人员和用户并不热衷于另一种需要下载插件才能运行的 Web 技术。而与 NBC 在2008年北京奥运会期间的合作可能并未达到微软所希望的轰动效果。

但在我们深入探讨所有这些之前,让我们先来仔细看看 Silverlight 的内部结构。

广告

Silverlight 测试版

像 Thomas Wilmes 这样的工程公司正在使用 Silverlight 构建整个网站。
(HSW 截图 -- 无注明)

关于 Silverlight 的一个棘手之处在于,截至本文撰写之时,它有两个版本:Silverlight 1 和 Silverlight 2 测试版。Silverlight 1 支持用 JavaScript 编程语言编写的应用程序。Silverlight 2 的测试版支持额外的编程语言,如 C#(发音为“C sharp”)和 Visual Basic。这两个版本的 Silverlight 都在 .NET 框架内工作。

那么 .NET 是什么?它是微软的另一个产品。.NET 框架是一种编程模型。程序员可以在此模型中构建应用程序——特别是依赖于可扩展标记语言XML)的 Web 应用程序。

广告

.NET 框架的两个主要组成部分是公共语言运行时类库。公共语言运行时就像一个管理员——它监视应用程序并分配这些应用程序正常运行所需的资源(如内存或处理能力)。类库包含多个可重用的软件对象,程序员在创建应用程序时可以依赖它们。一个软件对象有两个特征:状态行为。对象的状态指的是该对象可以拥有的不同条件。例如,一个程序可以有“运行中”、“暂停”和“停止”的状态(尽管不能同时拥有所有状态)。行为指的是一个对象可以做什么。在我们的例子中,这将包括“开始”、“暂停”和“结束”。

而这仅仅是 Silverlight 周围的框架!在 Silverlight 内部,微软包含了 Windows Presentation Foundation (WPF) 技术以及对可扩展应用程序标记语言 (XAML) 的支持。应用程序开发人员可以使用 WPF 和 XAML 来创建 Web 应用程序。WPF 和 XAML 都在 .NET 框架内无缝工作。微软开发 WPF 是因为超文本标记语言 (HTML) 存在局限性——Web 浏览器能够执行 HTML 无法支持的过于复杂的功能。

WPF 使用基于矢量的渲染引擎为应用程序生成图形。它支持2D和3D图形,并为开发人员提供了在 .NET 框架内工作以驱动其应用程序的手段。XAML 的主要目的是让开发人员能够调整其应用程序的外观。WPF 和 XAML 共同定义了 Silverlight 应用程序的外观和行为。

虽然 WPF 和 XAML 决定了应用程序的外观和行为,但程序员使用其他计算机语言来构建应用程序本身。Silverlight 1 仅支持 JavaScript,而 Silverlight 2 的测试版则支持多种动态语言。程序员在 .NET 框架内使用这些语言构建应用程序,并使用 WPF 和 XAML 将应用程序集成到 Web 浏览体验中。所有 Silverlight 应用程序都在 Web 浏览器中运行。

让我们来看看 Silverlight 平台的架构,了解这些元素如何协同工作,为程序员提供构建 RIA 所需的平台。

广告

Silverlight 开发

微软设有一个专门的论坛网站,Silverlight 开发人员可以在那里提问和交流技巧。
(HSW 截图 -- 无注明)

与所有软件一样,Silverlight 平台具有一种称为架构的特定功能和特性布局。程序的架构可以告诉你程序如何工作的大量信息。它以逻辑方式将任务组合在一起,并展示程序的各个部分如何协同工作以提供整体服务。微软在 Silverlight 上的目标是为下一代基于 Web 的应用程序创建一个强大而简单的平台。

微软将 Silverlight 平台的架构分为两个主要组件,并附加一个安装程序和更新元素。这两个主要组件包括核心演示框架和适用于 Silverlight 的 .NET 框架。让我们依次看看每个组件。

广告

核心演示框架包含以下内容

  • 一个用户界面 (UI) 渲染引擎,用于生成应用程序内的所有图形、动画和文本
  • 一个输入接口,处理来自键盘鼠标和数字绘图板等设备的用户输入
  • 一个支持多种音频和视频文件格式的媒体引擎
  • 一个数字版权管理元素,允许开发人员维护对其应用程序内媒体的控制
  • 支持可自定义的应用程序控件
  • 支持动态 UI 布局——此功能允许开发人员实时更改应用程序 UI 的外观
  • 支持数据绑定——将 UI 元素链接到应用程序内的数据对象
  • 一个 XAML 解析器

.NET 框架具有以下功能

  • 支持语言集成查询 (LINQ) 功能——LINQ 允许开发人员集成来自不同来源的数据
  • 一个支持基本编程功能(如加密)的基类库
  • 一套称为 Window Communication Foundation (WCF) 的功能,旨在使应用程序轻松访问远程数据和服务
  • Windows Presentation Foundation (WPF)
  • 动态语言运行时 (DLR),支持用各种编程语言编写的应用程序的元素
  • 公共语言运行时 (CLR),处理内存管理和其他关键功能的组件

演示核心和 .NET 框架主要通过 XAML 进行交互。在某种程度上,XAML 充当了这两个组件之间的桥梁。安装和更新器元素非常不言自明。它旨在让用户初始安装应用程序尽可能顺利。它还提供了自动应用程序更新的框架。

此外,Silverlight 还有一些其他功能可以帮助开发人员创建 RIA。这些功能中的许多都侧重于数据安全和应用程序管理。例如,它有文件管理功能、隔离存储功能和 XML 库。

接下来,我们将了解 Silverlight 开发人员能够构建的应用程序类型。

广告

Silverlight 应用程序

Echo myPlace 应用程序使用 Silverlight 将新闻故事与地理位置关联起来。
(HSW 截图 -- 无注明)

Silverlight 的应用几乎无限。Silverlight 的工具使开发人员能够创建从实用工具到具有挑战性的视频游戏等各种基于 Web 的程序。尽管 Silverlight 仍然是一个相对年轻的编程平台,但 Web 上已经有数十种应用程序可用。

开发人员使用 Silverlight 创建流媒体播放器并不令人惊讶。这些媒体播放器类似于 Flash 媒体播放器——YouTube 等网站使用的那种应用程序。这些程序将视频和音乐从互联网流式传输到用户的浏览器。Silverlight 允许开发人员创建提供特定内容的主题视频播放器。例如,Futbol Mexicano Silverlight 应用程序将墨西哥足球比赛的视频流式传输给用户。但 Silverlight 不仅能播放视频。

广告

Silverlight 应用程序可以相对简单,例如英雄栏。英雄栏是网页横幅,其中包含简短描述和指向网站更深层内容的链接。开发人员可以使用 Silverlight 创建一个英雄栏,该英雄栏可以从 RSS 源中提取信息和链接。当网站管理员向网站添加新内容时,英雄栏会自行更新。

程序员还可以使用 Silverlight 与其他 Web 服务交互。Twitterlight 是一个 Silverlight 应用程序,它利用了Twitter 微博服务。通过 Twitterlight,用户可以访问他们的个人 Twitter 动态并发布新消息。

Buzzoggi 使用 Silverlight 从多个新闻 RSS 源中收集热门关键词,并将其显示在云中。
(HSW 截图 -- 无注明)

TeamLive 在线生产力软件应用程序允许 Silverlight 用户协作处理项目。TeamLive 赋予用户截取应用程序或网站屏幕截图并与其他用户共享的能力。这使得身处不同位置的团队成员之间的协作更加容易。团队可以实时协作解决问题或简化设计。

在 Silverlight 上运行的游戏可以从简单到身临其境的冒险游戏。例如,您可以找到 Silverlight 形式的传统游戏,如“Hangman”(猜词游戏),但您也可以找到街机风格的游戏,例如太空主题的冒险游戏“Zero Gravity”。与 Flash 一样,Silverlight 为开发人员提供了创建用户可以通过 Web 浏览器访问的强大游戏体验所需的资源。

这些应用程序只是冰山一角。随着 Web 变得越来越复杂,人们获得更多带宽,用户将对其浏览体验提出更高要求。越来越多的人转向互联网获取新闻、娱乐和生产力应用程序。开发人员将不得不使用 Silverlight 等工具来满足消费者需求。

Silverlight 已经通过与更多传统媒体的几项战略合作取得了巨大成功。我们将在下一节中仔细研究这些关系。

广告

Silverlight 视频

NBC 使用 Silverlight 通过网络向美国特定用户广播奥运赛事。
(HSW 截图 -- 无注明)

比尔·盖茨是2008年消费电子展 (CES) 的主旨演讲嘉宾。此次演讲标志着他作为微软董事长的最后一次 CES 演讲。当晚,盖茨先生发布了许多新的微软项目、产品和服务。其中包括与 NBC 合作,在美国境内在线广播奥运会

NBC 已经获得了在美国境内转播奥运会的电视转播权。除了传统的电视转播外,NBC 还与微软合作,在其网站上提供奥运会在线报道。访问者必须下载并安装 Silverlight 到他们的电脑上才能观看视频。一些科技记者质疑这一决定——尽管 Silverlight 是一个强大的平台,但 Adobe Flash 在市场上的占有率要大得多。大多数 PC 已经安装了 Flash,而下载 Silverlight 的人相对较少。在一些记者看来,NBC 正在进行一项有风险的实验。

广告

这次合作成功了吗?这取决于讲述故事的人。根据《纽约时报》的一篇文章,NBC 的奥运网站在奥运期间向观众提供了超过7200万次的视频流 [来源:Stelter]。但 TechCrunch 等博客声称,其他报道奥运会的网站——那些根本没有视频的网站——的访问者比 NBC 的网站更多 [来源:Schonfeld]。一些博客还报道了广告商对 NBC 的在线表现不满的传闻。

或许如果 NBC 选择 Adobe Flash 作为其流媒体视频平台,它会有更多的在线观众。或者如果 NBC 没有限制在线广播的赛事,也许会有更多人通过网络观看比赛。但即便有些人称这次实验令人失望,微软知道数百万用户下载了 Silverlight。在微软看来,这就算是一种胜利。

微软已经与美国其他知名公司建立了合作关系。2007年末,美国职业棒球大联盟的流媒体视频播放器改用了 Silverlight。CBS 在创建用户生成内容的互动网络平台时选择了 Silverlight。美国国家篮球协会也为他们的在线媒体播放器选择了 Silverlight。

Silverlight 会成为下一个主要的互联网标准吗?现在判断还为时过早。你可能会争辩说它比 Adobe Flash 更强大,但 Flash 在市场上的渗透率要深得多。最终,无论哪种技术脱颖而出,都将为用户提供他们想要的东西:沉浸式的网络浏览体验。

要了解更多关于 Silverlight 及相关主题的信息,请查阅下一页的链接。

广告

常见问题

Silverlight 用于什么?
Silverlight 曾是一个跨平台浏览器插件,用于流媒体和动画。它类似于 Adobe Flash Player,并支持 WMV、H.264 和 MPEG-4 视频播放。
Microsoft Silverlight 用于什么?我需要它吗?
Microsoft Silverlight 是一个网络浏览器插件,用于流媒体视频和音频,以及运行动画和应用程序。使用网络浏览器不一定需要它,但查看某些内容可能需要它。
我仍然需要 Microsoft Silverlight 吗?
是的,应用程序的某些部分仍然需要 Microsoft Silverlight。

更多信息

相关 十万个为什么 文章

更多精彩链接

来源

  • 库珀,查尔斯。“我们都爱奥运会,对吧?Adobe 不爱。” CNet。2008年8月14日。(2008年9月10日) http://news.cnet.com/8301-10787_3-10017507-60.html?tag=nefd.top
  • 弗罗默,丹。“Adobe:Silverlight 是谁?Flash 视频在全球奥运会中占据主导地位。” Silicon Alley Insider。2008年8月27日。(2008年9月9日) http://www.alleyinsider.com/2008/8/adobe-silverlight-who-flash-video-dominated- olympics-worldwide-adbe-msft-
  • 拉莫妮卡,马丁。“Linux 上的 Silverlight?Mono 创始人说,我们加入了。” CNet。2007年5月1日。(2008年9月10日) http://news.cnet.com/8301-10784_3-9714669-7.html
  • 莱尔蒙斯,迈克尔。“NFL、NBC 启用 Adobe Flash 进行橄榄球直播。” Silicon Alley Insider。2008年9月4日。(2008年9月10日) http://www.alleyinsider.com/2008/9/nfl-nbc-tap-adobe-s-flash-for-live-football
  • 麦克唐纳,马修。《Silverlight 2 视觉要点》。Apress。2008。
  • 麦克唐纳,马修。《Silverlight 与 ASP.NET 揭秘》。Springer。2007。
  • 马蒂兹齐克,克里斯。“在线广告商对 NBC 的奥运表现感到失望吗?” CNet。2008年8月18日。(2008年9月10日) http://news.cnet.com/8301-17852_3-10018721-71.html
  • 微软开发者网络。《Visual Studio 中的 .NET 框架编程》。2007年11月。(2008年9月9日) http://msdn.microsoft.com/en-us/library/k1s94fta.aspx
  • 微软开发者网络。“Silverlight。” 2008。(2008年9月8日) http://msdn.microsoft.com/en-us/library/bb188743.aspx
  • 微软开发者网络。“Windows Presentation Foundation。” 2007年11月。(2008年9月8日) http://msdn.microsoft.com/en-us/library/ms754130.aspx
  • 微软 Silverlight。“新闻。” (2008年9月10日) http://www.microsoft.com/silverlight/news/default.aspx
  • 莫罗尼,劳伦斯。《Web 开发入门,Silverlight 和 ASP.NET AJAX》。Apress,2008。
  • 肖恩菲尔德,埃里克。“无论 NBC 如何辩解,奥运网站策略都是失败的。” TechCrunch。2008年8月25日。(2008年9月10日) http://www.techcrunch.com/2008/08/25/no-matter-how-nbc-spins-it-olympics- web-strategy-comes-up-a-loser/
  • 斯特尔特,布莱恩。“NBC 和雅虎的奥运会网络观众激增。” The New York Times。2008年8月24日。(2008年9月10日) http://www.nytimes.com/2008/08/25/sports/olympics/25online.html
  • Java 教程。“什么是对象?” 2008年2月14日。(2008年9月10日) http://java.sun.com/docs/books/tutorial/java/concepts/object.html
  • 温茨,克里斯蒂安。《Silverlight 精要》。O'Reilly。2008。
  • 怀尔德姆斯,肖恩。《Silverlight 入门》。O'Reilly。2007。

广告

加载中...