Silverlight 2完美征程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 Silverlight概述

1.1.1 什么是Silverlight

Silverlight的前身是WPF/E,它是微软推出的一种跨浏览器、跨平台的富互联网应用程序开发技术,具有极其优越的矢量图形、动画和多媒体支持的能力,内置支持丰富的网络通信功能,迄今为止发布了1.0和2.0两个版本,本书将以Silverlight 2为主要版本进行讲解。Silverlight 2具有如下功能。

WPF和XAML:Silverlight包含WPF技术的一个子集,大大扩展了浏览器中用于创建UI的元素。

对JavaScript的扩展:Silverlight提供对通用浏览器脚本语言的扩展,可以控制浏览器UI,包括使用WPF元素。

跨浏览器、跨平台支持:Silverlight应用程序可以在任意平台上的所有通用浏览器上自如运行,作为开发人员完全不必担心用户具有何种浏览器或平台。

与现有应用程序集成:Silverlight应用程序可以与现有JavaScript和ASP.NET AJAX代码无缝集成,以增强已有的功能。

可以访问.NET Framework编程模型和相关工具:可以使用诸如IronPython等动态语言及C#和Visual Basic等语言创建基于Silverlight的应用程序,可以使用Visual Studio的开发工具开发基于Silverlight的应用。

丰富的网络支持:Silverlight包括对TCP上的HTTP的支持,可以调用WCF或任何基于SOAP的服务并接收XML、JSON或RSS等数据,并且支持Socket通信。

LINQ支持:Silverlight包括语言集成查询(LINQ)。

1.1.2 Silverlight架构

Silverlight平台作为一个整体,由两个主要部分构成:核心表示层框架和Silverlight中的.NET Framework,前者提供面向UI和用户交互的组件和服务(包括用户输入、用于Web应用程序的轻量型UI控件、媒体播放、数字版权管理和数据绑定),表示层功能(包括矢量图形、文本、动画和图像),此外还包括用于指定布局的可扩展应用程序标记语言(XAML);Silverlight中包含一个.NET Framework的子集,其中包括数据集成、可扩展Windows控件、网络、基类库、垃圾回收和公共语言运行时。这两部分之间的关系可以用图1-1来表示。

图1-1

其中核心表示层组件包括如下几个部分。

输入:处理来自硬件设备(例如键盘和鼠标、绘图设备和其他输入设备)的输入。

UI呈现:呈现矢量和位图图形、动画及文本。

媒体:具有播放和管理各种类型音频和视频文件(例如,.WMP和 .MP3文件)的功能。

控件:支持可通过应用样式和模板来自定义的可扩展控件。

布局:可以动态定位UI元素。

数据绑定:可以链接数据对象和UI元素。

DRM:可以对媒体资产启用数字版权管理。

XAML:为XAML标记提供分析器。

Silverlight中的.NET Framework包括如下几个部分。

数据:支持语言集成查询(LINQ)和LINQ to XML功能,这些功能简化了集成和使用不同源数据的过程,还支持使用XML和序列化类来处理数据。

基类库:一组.NET Framework库,这些库提供了基本编程功能,例如字符串处理、正则表达式、输入和输出、反射、集合和全球化。

WCF支持:提供的功能可简化对远程服务和数据的访问。其中包含浏览器对象、HTTP请求和响应对象、对跨域HTTP请求的支持、对RSS/Atom联合源的支持及对JSON和SOAP服务的支持。

CLR:Silverlight中的公共语言运行时称之为CoreCLR,提供了内存管理、垃圾回收、类型安全检查和异常处理。

WPF控件:Silverlightk中提供了一组丰富的控件,其中包含Button、Calendar、CheckBox、DataGrid、DatePicker、HyperlinkButton、ListBox、RadioButton和ScrollViewer等。

动态语言运行时(DLR):支持动态编译和执行脚本语言,以编写基于Silverlight的应用程序。包括一个可插接式模型,用来添加Silverlight所使用的其他语言的支持。

1.1.3 Silverlight的跨平台能力

由于Silverlight的应用程序是跨平台的,因此它们可以在当今大多数Web浏览器中运行,下表为微软官方公布的Silverlight所支持的操作系统与浏览器对照表。

虽然目前微软官方并没有提供针对Linux的开发程序和安装包,但是在社区中有一个开源项目“Moonlight”,将Silverlight从Windows平台移植到了Linux平台,该项目的目标是让Silverlight运行在Linux平台下,并且提供在Linux平台下的Silverlight开发包。Moonlight的官方站点是http://www.mono-project.com/Moonlight,如图1-2所示。

图1-2