微软silverlight技术介绍
目录
这篇文章的内容
l 目录
l 概述
l 什么是silverlight
- 定义
- 支持平台
- 丰富的交互式应用程序
- 富客户端应用技术统计
- 为什么选择silverlight
- Silverlight VS. flash
- Silverlight VS. WCF
- 丰富 VS 达到
- 功能展示
- 深度缩放技术
l Silverlight内核
- Silverlight 和 XAML(Extensible Application Markup Language,扩展应用程序标记语言)
- 部署过程
- Silverlight架构
l Silverlight 5
l 开发工具和坏境
- Microsoft visual studio 2010
- Microsoft expression studio 4
l Silverlight展望
l 总结
概述
这篇文章将要给出微软公司silverlight技术的简单介绍,看看它到底是如何和当今的其他技术相融合的,到底能起到什么作用。让我们开始吧!
什么是silverlight
定义
Silverlight是微软公司一种致力于帮助开发者创建丰富的web交互应用程序从而使用户得到良好体验效果的技术。Silverlight作为一个有效的插件程序,使他支持当下的大多数主流浏览器。他被用来开发下一代媒体应用和web应用。
(图1 siverlight商标)
当我们说丰富的应用程序的时候,我们并不是指那些有惊人的接口和很多的图片。事实上,我们指的是那些很多的标准的web应用程序所不具备的功能。常见的富交互应用程序是在线文件编辑和图像处理。他们交互性都非常的强,并且提供了许多标准的web应用程序所不能万层的功能。实质上那才是Silverlight技术的主要目的所在,它的主要目标就是在web上交互性强的应用程序。
支持的平台
并不像微软公司的其他技术一样,Silverlight应用程序可以运行在任何地方。据说这项技术是跨平台,跨浏览器,跨设备的。Silverlight可以跑在Windows,Linux,甚至是苹果操作系统上;Silverlight可以跑在IE浏览器,火狐浏览器,谷歌浏览器还有其他主流的浏览器上;Silverlight可以跑在PC机上,手机上,还有其他装置上。这是真的,Silverlight可以不改变代码就可以运行在任何地方。
还有一个相当有趣的事情是Silverlight应用程序可以被托管在人任何服务器上。您可以将Silverlight应用程序托管在Windows,Linux,甚至是在苹果服务器上,而不需要对代码或配置做任何的修改!
丰富的交互式应用程序
我们已经讨论富交互应用程序有一段时间了,那么,就让我们来看一下富交互应用程序到底指的是什么吧!
一个内容丰富的交互式/互联网应用(RIA)是一个Web应用程序与用户的互动,并有大量的功能。就交互性这一功能特征来说,富交互应用程序非常类似于桌面应用程序。然而,富交互应用程序是一个web应用程序,运行在浏览器上而不是桌面上。所以,我们可以这样说,在web应用程序和桌面应用程序中,RIA应用程序是最具交互性的,功能是最强的。
(图2 RIA 富交互应用程序)
丰富的交互式应用程序
现在,有很多的技术都可以创建RIA应用程序,最流行的就是Adobe公司的Flash技术,微软公司的Silverlight技术和Sun的Java。值得一提的是,上面提到的每一种平台技术(当然包括Silverlight)都必须在浏览器上安装一个插件才是可行的,也就是说他们各自的运行时,这样才能运行基于这些技术创建的RIA应用程序。
富客户端应用技术统计
现在,有人会问,到底谁才是赢家?哪一个才是值得开发者花费时间和精力去学习的技术平台?
(图 3 RIA开发平台统计)
首先,我们先来看一下下面代表着Flash,Silverlight,Java的市场普及率的统计图片吧。这第一幅图来自http://riastats.com。 图3显示了Adobe Flash以96%的入网电脑安装率排在第一位;Silverlight则以74%的普及率排在第二位;Java则以73%的普及率排在第三位。
(图 4 来自StatOWL的统计数据)
图4 的更为详细的数据则显示了一些不同。
通过观察上面的图片,我们可以得知微软的Silverlight技术在一个很短的时间(Silverlight的第一版在2007年发布)内取得了长足的进步。然而,我们有不能完全的相信这些数据,因为大家都知道,微软的Silverlight插件是在Windows系统更新的时候自动的安装上去的。
现在,我们来看一下微软的Silverlight技术的特征和研究一下到底是什么让Silverlight成为开发RIA的最好的平台!
为什么选择silverlight
除了Silverlight是微软公司研发的以外,它还具备了:
- 是免费的;
- 可以在主流的平台,浏览器和设备上;
- 很轻松的创建优秀的UI界面,看起来有超棒的效果;
- 支持业务应用程序开发;
- 支持二维三维的动画和图片;
- 生来就支持CLR(公共语言运行时)和.net framework 3.0;
- 自动的引用JavaScript;
- 支持多种媒体(音频/视频)与数据流的转换;
- 支持多种丰富的控件包括DataGrid;
- 支持企业技术包括WCF。
另外,Silverlight还被认为是Windows Phone的主要开发框架。
(图 5 Windows手机操作系统)
Silverlight VS. flash
Silverlight技术和Flash技术是非常相似的,那么,那一个更好呢?由于我是一名微软的开发者,又由于你是在阅读一篇.net的博客,尽管我并没有进行了Flash应用程序的开发,但是我要说Silverlight是迄今开发RIA应用程序的最佳平台。但是,我们是很认真的!
Infoworld公司做了一个关于Silverlight和Flash对比的调查。调查的结果是如此令人兴奋!Silverlight的支持得分为8.3,超越了Flash!Flash才只得了7.8分而已。
(图 6 Silverlight VS Flash来自Infoworld)
Silverlight VS. WPF
WPF(Windows Presentation Foundation)是一个图像的子系统,利用DirectX技术补充基于Windows的应用程序的用户界面,它是由微软开发的作为.net framework 3.0 和 vista的一部分介绍出来的。WPF被看作是Windows窗体程序的升级品,因为WinForms是基于老一代的图像处理GDI子系统的,而WPF是基于DirectX的。
在另一方面,Silverlight是WPF的一个子集,Silverlight以前的代号为WPF / E的(无处不在)的WPF,因为它被认为是跨平台的WPF版本。WPF是以桌面应用程序为中心的,而Silverlight是以web应用程序为中心的。
(图 7 Silverlight VS WPF)
丰富 VS 达到
图 8 对比了一些可用的丰富的Web开发技术(即用户界面功能),达到(平台和浏览器的支持)。
从图 8 我们可以看到WPF拥有着最好的UI功能。然而WPF主要致力于桌面应用程序的开发,而且它只能在Windows平台山运行。
另一方面,ASP.net应用程序可以可以跨平台运行,不幸的是,他不支持当今web应用程序所要求的UI功能。
最后呢,Silverlight是拥有最好了UI功能,同时可以支持多种平台和浏览器(每发布一次版本都扩大了对平台和浏览器的支持)。
(图 9 丰富对比达到)
功能展示
为了得知到底Silverlight能做什么,我们在世界范围内查出了一些基于Silverlight应用的例子:
Deep Earth (http://deepearth.codeplex.com)
Hard Rock Memorabilia (http://memorabilia.hardrock.com/)
Sobees (http://sobees.com/web)
Bing Maps Streetside (http://www.bing.com/maps/explore/)
PhotoSynth (http://photosynth.net)
PivotViewer (http://www.silverlight.net/learn/pivotviewer/)
Fantasia (http://nokola.com/fantasia/)
Nibbles Tutorials (http://www.nibblestutorials.net)
SilverlightShow (http://www.silverlightshow.net/Books.aspx)
Shidonni (http://www.shidonni.com)
Justin Angel (http://justinangel.net)
而最令人印象深刻的应用之一是SilveOs(http://silveos.com/);迷你操作系统为Web。
在这里还有成千上万的基于Silverlight应用的例子:
http://www.silverlight.net/showcase.
深度缩放技术
Silverlight的另一个比较强大的功能就是深度缩放技术,是作为Silverlight技术的一部分被微软公司引出的。深度缩放技术是你能够看非常高分辨率的图像。它通过只下载最原始分辨率的能被看到的图片从而减少了加载的时间。当用户需要看其他部分的图片时,再加载其他部分的图片。
(图 9 深度缩放,微软Silverlight)
Silverlight内核
Silverlight 和 XAML(Extensible Application Markup Language,扩展应用程序标记语言)
像WCF一样,Silverlight的接口是定义在一种被称为可扩展的标记语言里的(或者是XAML)。XAML是基于一种有微软公司创建的用来初始化结构值和对象的XML语言。XAML语言标记(例如:<Button>是直接映射一个Button对象)是被直接映射到公共语言运行时上的。
(图 10 XAML Logo)
以前的ASP.net的开发人员可能或多或少的对XAML语言的特征有一定的了解。你有一个所见及所得的XAML设计师来设计您的应用程序界面。这些界面的代码是通过代码隐藏文件变得有效,在那里你可以写你喜欢的.net语言。
为一个页面创建两个代码文件的主要目的是使他们在应用程序开发的过程中各司其职,一个是界面设计,一个是逻辑开发。界面设计者可以在XAML文件里工作,逻辑开发者可以在后台代码里工作,并且两个文件是联系在一起的。这也是促成了一个将界面设计和业务逻辑分离开来的松耦合的设计。
(图 11 设计者和开发者)
部署过程
你必须遵守什么样的步骤才能将您的基于Silverlight的应用程序部署给您的客户呢?那就是这一部分将要解决的问题了!
当您在创建您的Silverlight应用程序时,XAML和其他的代码以及其他所有的资源文件一样被编译进.net程序集中被以ZIP的方式压缩,并存储在一个扩展名为.xap的文件里。
(图 12 XAP文件)
这个XAP文件存储在一个web服务器上,然后被一些声明了Silverlight插件对象的网页引用。这样,当一个用户导航到这些页面的时候,这些XAP文件就被下载到用户的主机上,被Silverlight运行时在网页山执行。
(图 13 Silverlight应用程序的部署过程)
这样,您需要做的只是开发您的应用程序,得到这些XAP文件,在网页上安装Silverlight插件,最后将这些网页和XAP文件发布到网上。
Silverlight架构
下面的这幅图构建微软的Silverlight应用程序必须的框架和组件。这幅图同时也展示了界面核心组件与.net组件,Silverlight组件是如何相互配合的,相互提供服务的。
(图 14 Silverlight框架)
Silverlight 5
目前最稳定的Silverlight版本是Silverlight 4。在2010年的PDC(Professional Developers Conference)大会上就介绍了Silverlight应用的第五版,现在仍然在测试阶段,据推测很快就会发布。
(图 15 Silverlight 5 Logo)
这里有一个简单的对Silverlight 5特征的介绍:
² 媒体
l 硬件视频解码
l 更好的电源管理
l 支持远程控制
² 文本显示
l 更好的文本显示功能
l 支持完全开放格式
² 图像显示
l GPU加速图片处理
l 支持三维图形
² XAML
l 支持XAML调试
² 应用程序开发
l 支持云端作业系统
l API功能调用
² 测试性能
l UI自动检错
l 快速启动
l 硬件加速
l 支持64位系统程序
在这里找更多的Silverlight 5 的资料:http://www.microsoft.com/silverlight/future.
开发工具和坏境
工具
Silverlight的最常见的工具就是Microsoft Visual Studio 2010 and Microsoft Expression Studio 4.
(图 16 微软的VS2010)
在这里找对开发者和设计者都有用的信息:http://www.microsoft.com/visualstudio/en-us.
(图 17 Microsoft Expression Studio 4)
Microsoft Expression Studio 4包括了5个工具:
- Microsoft Expression Blend
- Microsoft Expression Web
- Microsoft Expression Design
- Microsoft Expression Media
- Microsoft Expression Encoder
Silverlight展望
要想开始学习Silverlight,您必须安装一下几个组件:
- Silverlight SDK (core components only):
http://bit.ly/silverlight-4-sdk - Silverlight 4 Tools for VS 2010 (core components + additional tools for VS2010):
http://bit.ly/silverlight-4-tools - Silverlight 4 Toolkit (additional components):
http://silverlight.codeplex.com
总结
Silverlight是开发和运行RIA应用程序的框架
Silverlight的运行时是跨平台,跨浏览器,跨设备的
Silverlight的主要开发框架是为window phone设计的
Silverlight是WPF的一个子系统,所以利用XAML设计UI
利用XAML设计界面,利用我们熟悉的.net语言写程序
XAML和代码一样被编译到.net程序集里,被压缩在xap文件里
Xap文件被已经加载的网页引用,当用户访问这些页面的时候被下载到客户机上
目前Silverlight 4 是最成熟的开发Silverlight应用的框架
Silverlight 5目前正在测试中,很快就会被发布
您可以使用Visual Studio 2010 和Microsoft Expression Studio 4 开发您的Silverlight应用
如果您是一个设计者,那么Microsoft Expression Studio 更适合您