14.1 Silverlight概述
Silverlight中文翻译为银光,它是如今互联网RIA技术领域中的新宠。随着Silverlight版本的不断进化,其技术已经日趋成熟和健壮,并以其开放式的界面语言(XAML),优雅的编程语言(C#)等特点吸引了大批开发人员的目光。
14.1.1 Silverlight简介
Microsoft Silverlight是一种跨浏览器、跨平台的.NET Framework实现,用于为Web生成和提供下一代媒体体验和丰富的交互式应用程序。Silverlight统一了服务器、Web和桌面的功能,统一了托管代码和动态语言、声明性编程和传统编程以及WPF的功能。
对于互联网用户来说,Silverlight是一个安装简单的浏览器插件程序。用户只要安装了这个插件程序,就可以在Windows和Mac等多种浏览器中运行相应版本的Silverlight应用程序,享受视频分享、在线游戏、广告动画、交互丰富的网络服务等。
对于开发设计人员而言,Silverlight是一种融合了微软的多种技术的Web呈现技术。它提供了一套开发框架,并通过使用基于向量的图像技术,支持任何尺寸图像的无缝整合,对基于ASP.NET、Ajax在内的Web开发环境实现了无缝连接。Silverlight使开发设计人员能够更好的协作,有效地创造出能在Windows和Macintosh上多种浏览器中运行的内容丰富、界面绚丽的Web应用程序——Silverlight应用程序。
简而言之,Silverlight是一个跨浏览器、跨平台的插件,为网络带来下一代基于.NET媒体体验和丰富的交互式应用程序。对运行在Macintosh和Windows上的主流浏览器,Silverlight提供了统一而丰富的用户体验,通过Silverlight这个小小的浏览器插件,视频、交互性内容,以及其他应用能完好地融合在一起。
Silverlight将多种技术组合到单个开发平台,主要提供下列功能。
1.WPF和XAML
Silverlight包含WPF技术的一个子集,从而大大扩展了浏览器中用于创建UI的元素。Silverlight允许创建图形、动画、媒体和其他丰富的客户端功能,使基于浏览器的UI远超单独使用HTML提供的效果。XAML提供用于创建元素的声明性标记语法。
2.对JavaScript的扩展
Silverlight提供对通用浏览器脚本语言的扩展,可以控制浏览器UI,包括使用WPF元素。
3.跨浏览器、跨平台支持
Silverlight可以在所有通用浏览器(以及任意平台)上自由运行。开发人员可以设计和开发应用程序而不必担心用户具有何种浏览器或平台。
4.与现有应用程序集成
Silverlight可以与现有JavaScript和ASP.NET Ajax代码无缝集成,以增强已具有的功能。
5.可以访问.NET Framework编程模型
可以使用诸如C#和Visual Basic的语言创建Silverlight应用程序。
6.工具支持
可以使用诸如Visual Studio和Expression Blend之类的开发工具快速创建Silverlight应用程序。
7.网络支持
Silverlight包括对TCP上的HTTP的支持。可以连接到WCF、SOAP或ASP.NET Ajax服务并接收XML、JSON或RSS数据。
8.LINQ
Silverlight包括语言集成查询(LINQ),这种查询允许使用直观本机语法和.NET Framework语言中的强类型对象来编程进行数据访问。
14.1.2 Silverlight结构
Silverlight平台作为一个整体,主要由如下三部分组成。
1.核心表示层框架
面向UI和用户交互的组件和服务(包括用户输入、用于Web应用程序的轻量型UI控件、媒体播放、数字版权管理和数据绑定)以及表示层功能(包括矢量图形、文本、动画和图像)。此外还包括用于指定布局的可扩展应用程序标记语言(XAML)。
2..NET Framework for Silverlight
.NET Framework中包含组件和库的一个子集,其中包括数据集成、可扩展Windows控件、网络、基类库、垃圾回收和公共语言运行时。
.NET Framework for Silverlight的某些部分是通过应用程序部署的。这些Silverlight库是未包括在Silverlight运行时中但将在Silverlight SDK中提供的程序集。在应用程序中使用Silverlight库时,它们会与应用程序打包在一起,并下载到浏览器中。这些库包括新的UI控件、XLINQ、整合RSS、XML序列化和动态语言运行时。
3.安装程序和更新程序
这是一个安装和更新控件,可简化用户首次安装该应用程序的过程,以及提供以后的自动更新功能。
如图14-1所示演示了Silverlight结构中这些组件及相关组件和服务。
图14-1 Silverlight结构图
14.1.3 与WPF的比较
Silverlight是WPF的一个子集,它提供了运行在Web浏览器中的应用程序。从3.0版本开始,Silverlight应用程序也可以独立运行。
Silverlight和WPF在许多方面都是类似的,但是两者之间也有重要的区别。Silverlight由核心显示架构、.NET Framework for Silverlight、安装程序和更新程序组成;WPF应用程序运行在Windows系统上,至少需要.NET Client Profile。Silverlight使用一个插件模型,并驻留在Web浏览器中。除了IE之外,Silverlight也可以用于Firefox、Safari、Opera和Chrome等浏览器中。
编译WPF应用程序时会得到一个可执行的程序集,其中包含二进制格式的XAML代码和资源。而对于Silverlight应用程序,编译器会创建一个XAP文件,这是一个ZIP包,其中包含程序集和配置信息。
.NET Framework for Silverlight中的类与完整的.NET Framework相同,但并不包含.NET Framework中的所有类。前者删除了后者中的一些类,同时增加了一些适用于Silverlight的类。
从Silverlight 3开始不可以使用WPF中的流文档和固定文档。在Silverlight中可以用2D模拟3D,但这完全不同于WPF的3D功能。与Windows窗体的交互操作功能也不适用。无论如何,最好用XAML编写新的UI界面,而不是集成Windows窗体控件。
WPF与Silverlight应用程序的区别还体现在如下几点。
(1)画笔:Silverlight没有DrawingBrush、VisualBrush和TileBrush画笔,但是可以使用VideoBrush画笔添加视频。
(2)字体:并不是所有字体都可以在所有平台上使用,所以Silverlight只能使用它内置的字体。
(3)控件:Silverlight没有Menu、ToolBar、Window和WebBrowser控件。但是Silverlight提供的一些控件也不适用于WPF。随着时间的推迟,这些区别会消失。
(4)联网:为了避免UI线程的阻塞,只有异步调用可用。在Silverlight 4中只能通过WCF使用BasicHttpBinding和PollingDuplexHttpBinding,但还可以使用二进制编码。
(5)文件系统访问:Silverlight 3应用程序不允许读写客户端系统,但可以读写独立的存储器。在运行Silverlight的控件上单击鼠标右键会出现配置菜单,其中的Application Storage选项卡提供了通过独立存储器使用数据的应用程序的相关信息,还可以删除它。
(6)浏览器集成:因为Silverlight控件一般运行于Web浏览器中,所以与浏览器的集成很重要。可以定义能从JavaScript中调用的.NET类,使用System.Windows.Browser命名空间中的类还可以在Silverlight中调用HTML和JavaScript。
(7)媒体:这是Web应用程序中得到Silverlight特别支持的一个重要方面。通过流,可以使用渐进下载和平滑流等功能,还可以给流添加时间轴标记。利用DeepZoom技术和MultiScaleImage控件,可以创建令人印象深刻的用户体验,允许用户放大从几个图像文件中构建的大型图像。
如表14-1所示列出了WPF与Silverlight在功能上的对比。
表14-1 WPF与Silverlight功能对比
共有条评论 网友评论