Microsoft Silverlight是微软所发展的 Web 前端应用程序开发解决方案,是微软丰富型互联网应用程序(Rich Internet Application)策略的主要应用程序开发平台之一,以浏览器的外挂组件方式,提供 Web 应用程序中多媒体(含影音流与音效流)与高度交互性前端应用程序的解决方案,同时它也是微软 UX(用户经验)策略中的一环,也是微软试图将美术设计和程序开发人员的工作明确切分与协同合作发展应用程序的尝试之一(另一个为 WPF)。
目前Silverlight已受到各主流浏览器的支持,包含Internet Explorer、Firefox、Opera与Safari等,同时也支持Mac OS X操作系统,在Windows Mobile 6.0和Symbian (Series 60)手机等行动设备上也受到支持。与 Silverlight 相同的开放源代码解决方案“Moonlight”则提供在Linux上的支持。
目录[隐藏] |
[编辑] 特色
Silverlight 是微软前端用户界面技术 Windows Presentation Foundation (WPF) 的一个子集,同时也是 XAML (eXtensible Application Markup Language) 的子集,具有向量式的绘图能力,以及多媒体与图形显示的支持,开发人员能够使用声明式开发 (declarating development) 来发展 Silverlight 应用程序,而声明式开发的特性也让它能够和设计工具来集成,因此微软特别为 Silverlight 和 WPF 发展了 Microsoft Expression Blend 工具供设计人员使用。
Silverlight 支持流媒体能力,特别是针对 Windows Media 的 Streamming Media 支持,以及 MP3 等音效流支持,让企业得以使用 Silverlight 发展出多媒体型应用程序,在图像支持方面,Silverlight 2.0 的 Deep Zoom 技术可以让大型的图片或图像得以利用分段下载的浏览方式来显示在前端,Deep Zoom 技术已受到台湾国立故宫博物院的采用,并开发出清明上河图的Silverlight版本[1]
Silverlight常被视为与Adobe Flash竞争的web技术。
[编辑] 版本
[编辑] Silverlight 1.0
Silverlight 1.0 由许多内核展示层架构组成,这关系到用户界面(UI),用户输入(user input),基本用户界面控制组件(basic UI controls),图形(graphics)和动画(animation)、媒体播放(media playback),数字权管理(DRM)的支持,以及DOM的集成。。[2] 其组件如下:
- 输入(Input)- handling input from devices like keyboard, mouse, stylus etc.
- 用户界面内核(UI core)- managing rendering of bitmap images(including compressed raster images like JPEG), vector graphics, text and animations.
- 媒体(Media)- playback of MP3,Windows Media and VC-1 streams.
- XAML - to allow the UI layout to be created using XAML markup language.
一个银光程序(Silverlight)的起点是从网页调用银光组件(Silverlight control)开始,必须加载XAML 档。The XAML file 包含一个 Canvas 对象,扮演着一个placeholder的角色。Silverlight 提供各种不同的几何基元,像是:线、椭圆以及其它形状
一个典型的 Silverlight 1.0 程序的 HTML hosting 如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>UntitledProject1</title> <script type="text/javascript" src="Silverlight.js"></script> <script type="text/javascript" src="Page.xaml.js"></script> <style type="text/css"> .silverlightHost { height: 480px; width: 640px; } </style> <script type="text/javascript"> function createSilverlight() { var scene = new UntitledProject1.Page(); Silverlight.createObjectEx({ source: "Page.xaml", parentElement: document.getElementById("SilverlightControlHost"), id: "SilverlightControl", properties: { width: "100%", height: "100%", version: "1.0" }, events: { onLoad: Silverlight.createDelegate(scene, scene.handleLoad) } }); } if (!window.Silverlight) window.Silverlight = {}; Silverlight.createDelegate = function(instance, method) { return function() { return method.apply(instance, arguments); } } </script> </head> <body> <div id="SilverlightControlHost" class="silverlightHost"> <script type="text/javascript"> createSilverlight(); </script> </div> </body> </html> |
[编辑] Silverlight 2
2008年10月13日,微软推出了Silverlight 2.0的RTW版,并提供了相应程序及文件的下载安装。
Silverlight 2.0支持下列新功能特色,弥补了Silverlight 1.0所欠缺的功能:
- 具备一个.NET Framework缩小版的基类库
- 大量内置的Silverlight控件:在Silverlight 1.0时,所有UI对象都必须通过XAML来自行描述绘制,并缺乏许多内置的Silverlight向量控件,针对这点,Silverlight 2.0强化控件方面的能力,内置许多向量控件供开发人员直接使用。
- Skinning and Templating外观样板的高级支持:通过Skinning and Templating的支持,可以自定义控件之外观与样板,可以迅速及动态地套用不同的外观。
- Deep Zoom:一个高分辨率的图像缩放技术,能够在Silverlight进行深度的图片图像缩放功能。
- 广泛的网络Networking支持能力:举例来说支持REST、WS*/SOAP、POX,RSS及标准HTTP服务等网络技术的调用,这部分对前端的Silverlight特别重要,通过网络程序才能访问后端Server的数据,以回传绑定显示在UI之上。
- 扩展的.NET Language支持:Silverlight 2.0不仅仅支持主流的C#及VB程序开发,亦进一步支持动态语言,例如IronPython IronRuby等等。
- Silverlight DRM的支持:Silverlight 2.0对于影音媒体内容的保护,是通过DRM技术来逹成,通过它就可以提供Content内容保护。
- 改善服务端的延展性及扩展广告客户支持:Silverligt 2.0针对流传送数据方式、效率、下载播放方式再进一步强化改善其能力。
- 活跃的的合作伙伴生态系统:微软全球知名的Visual Studio Industry Partners 合作伙伴包括了ComponentOne LLC、Infragistics Inc及Telerik,提供了Silverlight 2.0的商业组件,可在Visual Studio 2008的环境中使用。
- 跨平台及跨浏览器支持:支持Mac、Windows及Linux等平台和Firefox、Safari与Windows Internet Explorer等浏览器。
[编辑] Silverlight 3
2009年7月10日,微软正式放出Silverlight 3 RTW(3.0.40624.0)的下载,改进包括[3]:
1、平滑视频流技术
微软表示其新视频流功能提高了浏览器上的视频质量,已经可以和电视视频相比.Silverlight 3的平滑视频功能已经在流行音乐天王迈克·杰克逊的悼念晚会、温布尔登网球公开赛网络直播上大显身手.
2、数字版权管理
Silverlight 3在数字内容保护上做了提高.内容生产商从发布内容之始就可以跟踪并保护其发布的内容.
3、现场感
Silverlight 3支持更强大的3D显示功能,新增加的一些功能可以用于图片的深度缩放,现场感更强.
4、可在浏览器之外运行
在2007年刚推出Silverlight的时候,使用Silverlight必须基于浏览器.在Silverlight 3中已经没有这种限制,用Silverlight 3开发的应用可以直接运行.
5、升级的Expression Studio 3
Expression Studio是微软提供给开发者开发Silverlight应用的工具包.新发布的Silverlight 3升级了Expression Studio,提供了新工具Sketchflow.
6、增强对企业用户的支持
[编辑] 开发工具
Silverlight 的开发工具分为两个部份:
- 设计人员:使用 Microsoft Expression Blend 来进行设计。
- Expression Blend 2.0 支持 Silverlight 1.0 的设计。
- Expression Blend 2.0 Service Pack 1 支持 Silverlight 2.0 的设计。
- 开发人员:使用 Microsoft Visual Studio 来开发。
- Visual Studio 2008 支持 Silverlight 1.0 的应用程序开发。
- Silverlight Tools for Visual Studio 2008(外挂于 Visual Studio 2008 SP1)[4]支持 Silverlight 2.0 的应用程序开发。
Eclipse 也有支持 Silverlight 开发的计划。[5]
[编辑] 版本历史
版本号码 | 版本名称 | 发布日期 |
---|---|---|
1.0 CTP | 1.0.? | 2006年12月 |
1.0 RTW | 1.0.20816 | 2007年9月5日 |
2.0 Pre-Release | 1.1.20926.0 | 2007年9月5日 |
1.0 service release | 1.0.21115.0 | 2007年11月20日 |
1.0 service release | 1.0.30109.0 | 2008年1月15日 |
2 Beta 1 | 2.0.30226.2 | 2008年3月5日 |
1.0 service release | 1.0.30401.0 | 2008年4月8日 |
2 Beta 2 | 2.0.30523.6 | 2008年6月6日 |
2.0.30523.8 | 2008年7月16日 | |
1.0 service release | 1.0.30715.0 | 2008年7月27日 |
2.0 RC0 | 2.0.30523.9 | 2008年9月25日 |
2 RTW | 2.0.31005.0 | 2008年10月14日 |
2 GDR 1 | 2.0.40115.0 | 2009年2月19日 |
3 Beta | 3.0.40307.0 | 2009年3月18日 |
3.0 RTW | 3.0.40624.0 | 2009年7月10日 |
3 GDR 1 | 3.0.40723.0 | 2009年7月28日 |
[编辑] 浏览器兼容性
系统/浏览器 | IE 6 SP1 | IE 6 SV1 (SP2) | IE 7/IE 8 | Firefox | SeaMonkey | Safari | Opera | Google Chrome |
---|---|---|---|---|---|---|---|---|
Windows Vista/Windows 7 | (无) | (无) | 1.0, 2.0, 3.0 | 1.0, 2.0, 3.0 | 1.0, 2.0 | 1.0, 2.0; 通过 NPAPI | 非官方支持 | 2.0, 3.0 |
Windows XP/2003/Home Server | (无) | 1.0, 2.0, 3.0 | 1.0, 2.0, 3.0 | 1.0, 2.0, 3.0 | 2.0 非官方支持 | 1.0, 2.0; 通过 NPAPI | 非官方支持 | 2.0, 3.0 |
Windows 2000 | 2.0, 3.0 | (无) | (无) | 2.0 非官方支持[6] | (无) | 2.0; 通过 NPAPI | 已计划 | (无) |
Windows Mobile 6 | 已计划[来源请求] | (无) | (无) | (无) | (无) | (无) | (无) | (无) |
S60 | 已计划[来源请求] | (无) | (无) | (无) | (无) | (无) | (无) | (无) |
Linux | (无) | (无) | (无) | (无) | (无) | (无) | (无) | (无) |
Mac OS 10.4/10.5 PowerPC | (无) | (无) | (无) | 1.0 | (无) | 1.0 | 已计划 | (无) |
Mac OS 10.4/10.5 Intel | (无) | (无) | (无) | 1.0, 2.0, 3.0 | (无) | 1.0, 2.0, 3.0 | 已计划 | (无) |