Silverlight是什么?作为一个Silverlight用户它能为我做什么?作为一个Silverlight开发者我能用它来做什么?下面,我们带着这些问题,让微软MVP Chad Campbell 来给我们揭开Silverlight的面纱。
“Silverlight是一个客户端运行时,这个运行时为开发者提供设计与开发的平台,并在互联网上传递丰富互动的体验”。可以想象,从我写的那本“Silverlight 2 in Action”当中的第一段提取出来的这句话,对于Silverlight那些优秀的特点根本没有起到什么说明的作用。事实上,如果你正在向他人介绍Silverlight,他们大概只会对这东西对自己有什么用处感兴趣。要做好这个介绍相当具有挑战性,因为Silverlight的很多特性对不同用户而言有着不同程度的价值。简单的说,在表现形式上,Silverlight和Adobe flash非常相似,但是Silverlight技术上更加优越。
Silverlight普通用户所要知道的
Silverlight是一个来自微软的软件,通过它,你可以实现在互联网上与一些新型应用程序的互动。这些应用程序提供了全方位观看图片或地图的新方法。这些应用程序将互联网上最丰富的媒体展现给你。至于传统的web应用程序,比如time entry应用程序,你仍然可以在Silverlight下使用它,甚至于在没有联网的情况下也可以。更令人惊讶的是,Silverlight带来的这些体验可以通过不到一分钟的下载以及一次安装来实现。
用户:什么是“全方位观看图片或地图”?
Silverlight通过一个叫做DeepZoom的特性为用户带来令人叹为观止的图片细节。DeepZoom提供的精细度足以和数码相机相比拟。比如说,想象一把吉他上的手指印,或者鱼身上一片一片的鱼鳞。这些细节都可以通过DeepZoom的“放大(zoom in)”功能,在图片上的任意一部分观测到。同时,网页加载的速度仍然很快,因为DeepZoom只抓取自己需要的!这个特性对互联网上的地图应用程序尤其的有意义。
用户:那真是不错,不过,为什么用Silverlight看视频会更好呢?
Silverlight支持互联网上最流行的音频和视频格式。除此之外,Silverlight还支持一个叫做“VC-1”的新视频格式。VC-1之所以重要,因为大公司们已经开始支持这个格式。最新的高清视频播放器(hi-def video player)支持VC-1。Xbox 360和Netflix也支持。基本上,你能够在Netflix或者360或者你联网的机子上看视频,这都托了是VC-1的福。
用户:是很好,不过我对看视频兴趣不大。我为什么要关注Silverlight?
Silverlight不仅仅是媒体播放器。事实上,Silverlight令你在断网的情况下也能体验你所喜爱的web应用程序。比如说,美国在线(Ameria Online, AOL)已经展示了用Silverlight浏览邮件的功能。这个例子之外,Silverlight还能替代你平时在工作中可能会经常用到的那些烦人的数据输入表格。
用户:那听起来真是不错,不过安装起来大概会很麻烦?
事实上一点也不麻烦。当你浏览到使用了Silverlight的网站时,如果你的机子上没安装,它会主动提示你安装。如果你同意安装,它会引导你完成大约一分钟的安装流程。更好的是,你只需安装一次。如果你在工作中,你应该让你的网络管理员通过网络安装,因为这样更加流畅。
★Silverlight新闻 ★Silverlight网站演示/应用演示
Silverlight开发者所要知道的
Silverlight是一个客户端运行时,这个运行时为你提供设计与开发的平台,并为互联网提供丰富的互动应用程序(RIA)。你可以用你喜爱的.NET支持的语言开发这些应用程序,而.NET基础类库的一些特性也会对你有用。还有,Silverlight令你创建输入表格,加载数据,上传二进制或文本信息都变得更加便捷。这一切在浏览器内外都有着闪电般的运行速度。
开发者:有哪些开发语言可以选择?
Silverlight支持动态和静态语言。具体来说就是ECMA标准的C#,JavaScript,以及流行的Visual Basic语言。另外,Silverlight还支持IronPython和IronRuby,其分别是Python和Ruby在.NET框架下的版本。
开发者:为什么基础类库很重要?
基础类库可以替你做很多麻烦的工作。比如说,通过基础类库可以使用generics,LINQ和数据流(data streams)。这样,你在设计内容复杂的收藏列表,表单以及订货单时便可以更加游刃有余,而无需担心实施的具体细节。同时,内置的LINQ令不同数据之间的查询变成可能,而且你可以使用自己选择的语言。
开发者:那真是很好。不过我怎么在博客上看到Silverlight是个连文本框都没有的媒体播放器?
那个博客发了有几年了?Silverlight对商务类和媒体类的应用程序来说都是一个绝佳的平台。它提供了100多个独立控件。使用这些控件可以有效地处理输入,排版以及视觉效果。简而言之,你对UI平台上控件的需求,Silverlight都能够满足。控件包括按钮,勾选框(check box),选项钮(radio box),文本框,复合框(combo box),以及时间日期控件等。Silverlight 3还提供了多项选单框(multi-select list box)。对于排版,Silverlight 支持画布(Canvas)上的自由排版,以及StackPanel和Grid控件提供的表格式排版。Silverlight 3中的DockPanel提供了东西南北的方向支持,WrapPanel提供了包装内容的支持。最后,还有一个包含30多个控件的在线工具盒,其中有一个特性丰富的DataGrid和Chart,其源代码也包含在其中。
开发者:这些控件听起来挺好。不过,要有效的建立起一个数据输入表格可不仅仅是把几个控件排版上去就能完成的。Silverlight提供了什么数据绑定或数据验证的功能么?
Silverlight知道,应用程序中最重要的是数据。对此从Silverlight对查询(query),绑定(bind to)和验证(validate)信息的支持可见一斑。比如,Silverlight 提供了查询数据元的三种内置LINQ选项(LINQ到对象,LINQ到XML,LINQ到JSON)。把数据和UI绑定时,Silverlight提供了单次(one-time),单程(one-way)和双程(two-way)绑定支持。Silverlight 3 还支持UI对UI元素绑定。绑定之后,你有时会需要用户验证输入的数值。为此,Silverlight 3 还添加了一个多功能验证组合,令商业流程的应用程序开发更加简便。
开发者:听起来Silverlight应用程序可以很好的处理我输入进去的数据。不过,Silverlight是在互联网上运行的,而互联网的本质是一个断开的环境。Silverlight是如何在互联网上传递数据的?
Silverlight提供了一系列特性丰富的联网功能。跨网数据传输方面,Silverlight支持POX,REST,WS*/SOAP,sockets,以及标准HTTP服务。此外还有通过Atom和RSS实现的组合内容支持。Silverlight 3 添加了二进制XML的支持,以及名为本地连接(local connection)的两个Silverlight应用程序之间通信的支持。相对于Silverlight 2而言,这样就不需要诸如HTML DOM API等用户端来实现Silverlight应用程序之间的通信了。
开发者:HTML DOM API?这些是什么?听起来挺有趣的。
HTML DOM API是在System.Windows.Browser名字空间(namespace)中.NET框架下的Silverlight附加内容。这个附加内容提供了从代码管理HTML DOM的功能。这个的有用之处在于汇编中(compile-time)以及检查中(type-checking)的全面Debug。这令Silverlight替代传统的AJAX成为可能。
开发者:我在博客上看人说Silverlight现在可以脱离浏览器并在离线状态下运行?是真的吗?
是真的!使用这个功能只需要更新AppManifest.xml文件即可。只要更新安装正确,用户便可以在本地机子上安装Silverlight应用程序。这个功能通过更新Silverlight 2下的 AppManifest.xml 文件也可以实现。
开发者:还有一个问题。Silverlight应用程序运行速度快么?
运行汇编代码的Silverlight应用程序比其他的类似产品都要快。这对于排序清单一类的日常工作都很有用。正因如此,Silverlight对于商业流程应用程序的开发而言是个很有价值的平台。对于更加复杂的情况,Silverlight还有内置的多线(multi-threading)支持。在这之上,Silverlight确实的利用到GPU和位图局部缓存来增强渲染性能。性能的提升令应用程序运行如飞。