这一次是真的Silverlight

微软对Adobe Flash、Flex和其他几个RIA(富互联网应用)和AJAX框架的回应,Silverlight在一年多前蓬勃发展。Silverlight 1.0(参见我的2007年10月审查)使用JavaScript操纵它的多媒体用户界面WPF (Windows Presentation Foundation)。Silverlight 1.1增加了对编译后的。net语言的支持,并支持更多的。net API,当时仅作为alpha测试可用。

对于微软来说,Silverlight 1.1是一个非常重要的升级,它最终被重新命名为Silverlight 2。目前,Silverlight 2支持所有的。net语言,包括像IronPython和IronRuby这样的动态语言,它包含了大量的。net基类,包括LINQ(语言集成查询)这样的新特性。除了一组丰富的控件之外,它还有用于网络的api,包括REST、SOAP、RSS和HTTP;包括本地数据缓存和存储;并支持其他富媒体格式的高清视频。Silverlight 3计划支持H.264视频和AAC(高级音频编码)音频。

[查看幻灯片游览Silverlight 2开发环境.阅读考试中心的评论Visual Studio 2008 SP1Adobe AIRAdobe Flex Builder旋度,开源AJAX工具包.]

Silverlight的海报式部署,比如去年8月的北京奥运会,得到了好评和普遍好评。当然,硬件和操作系统不兼容的人会像往常一样齐声叫好,但没有什么意外。至少在微软看来,由美国全国广播公司(NBC)、中国中央电视台(Central Television)以及其他10个主要国家市场的广播公司提供的奥运会Silverlight网络视讯是一个巨大的成功。最近,Silverlight 2使Blockbuster能够为其MovieLink服务的PC和Mac用户提供高质量的流媒体视频。

功能和控制

鉴于它强大的语言支持、类库和良好的运行时性能,Silverlight 2最终将适合任何类型的RIA,而不仅仅是视频流。目前,对于某些应用程序来说,它可能缺少一些现成的用户界面控件:在标准的Silverlight controls工具箱中只有28个项目,在Silverlight Toolkit中还有另外12个项目,计划在接下来的几个月里总共提供100个控件。构建新的Silverlight控件并不难,许多控件已经可以从isv获得,但如果您不着急,您可能会发现微软最终会交付您需要的所有控件。

对于任何基于浏览器的应用程序来说,无论是否使用Silverlight或Flash之类的插件,跨域访问的安全性都是一个潜在的问题。Silverlight有自己的跨域安全机制,由manifest文件设置控制,默认为最安全的设置。

我在网上看到过一些指责,说尽管有这种机制,Silverlight本地数据存储可能仍然容易受到跨域攻击,但我还不能证明或反驳这一点。同一消息来源声称,Flash本地对象也会受到同样的攻击。

开发和设计

我尝试使用Visual Studio 2008 SP1和Expression Blend 2 SP1开发Silverlight 2。我在学习和使用它进行开发时没有遇到任何困难,但我已经熟悉Visual Studio、c#、. net框架和XAML。其他有。net语言背景(现在有相当多的选择,除了c#、Visual Basic . net、JavaScript等,还包括IronPython和IronRuby)和基于xml的标记(包括MXML甚至HTML)的程序员应该会发现,学习和开发Silverlight很容易。

编程XAML元素的基本方法是给它们一个x:Name标签,例如:

. Text="Message:" >

一旦设置了x:Name属性,程序就可以操作元素的属性,这与JavaScript在DHTML中操作HTML元素的精神非常相似:

将消息。Text = "Hello, " + name1.Text;

程序和XAML元素之间的这种名称联系是使用程序员和设计师团队开发Silverlight和WPF应用程序的关键。只要名称不改变,程序员就可以修改代码隐藏文件,而设计人员可以修改XAML文件,而不破坏两者之间的接口。他们甚至可能不使用相同的工具。

作为一个也做一些设计的程序员,我很失望地发现我不能将控件拖动到Visual Studio XAML设计器的图形窗格上;该窗格只是一个预览,所以我只能将控件拖动到XAML文本中。另一方面,IntelliSense很好地支持Visual Studio中的XAML编辑,当您试图获得页面的正确外观时,即时预览窗格确实有很大的帮助。

Expression Blend为XAML页面提供了一个图形设计界面,但它没有提供太多编程支持。对于大多数设计师来说,它肯定是Silverlight的首选工具。在一个理想的世界里,我可能希望有一个统一的工具来满足程序员和设计师的需求,但是Visual Studio和Expression Blend集成得很好,它们可能比统一的工具更适合他们的目标用户。

相对于Flash和AJAX

Silverlight与其他RIA技术的明显对比是,其中最突出的是AJAX、Adobe Flash和Adobe Flex。AJAX的一个优点是不需要永久安装。另一个原因是丰富的AJAX工具包、效果和可用的控件。AJAX应用程序依赖于浏览器实现和AJAX页面设计可用的相对原始的工具的趋势平衡了这些问题。还有一个性能问题:典型浏览器的JavaScript解释器相对较慢。

Flash面向的是设计师而不是开发人员,Flex面向的是开发人员而不是设计人员。然而,这两者可以结合起来。Flash设计师可能会发现Expression Blend满足了他们对Silverlight开发的需求,尽管许多Flash设计师倾向于强烈地忠于他们所选择的技术。Flex程序员可能会发现,在Visual Studio中用后台代码编写Silverlight XAML与在Flex Builder中用ActionScript编写MXML的精神非常相似;同样,除非他们也在。net应用程序上工作,否则他们可能不会有太多的热情来进行这种转换。

永远不要低估儿童或程序员的保守主义。

在我自己的比较中,Silverlight 2的性能明显优于这里提到的任何其他RIA技术,其计算和显示速度与我以前最喜欢的Curl相似。我也看到过不同的基准;这完全取决于你衡量的是什么。在某些硬件上,Silverlight 2渲染管道可能会超载并减慢它的速度。XAML支持相当多复杂的图形效果,这些效果需要一个好的GPU来实现良好的渲染速度。

大量的Flash插件已经被安装。在某些方面,这并不是非常重要。Silverlight的下载足迹还没有大到对首次使用的用户构成障碍的程度,至少对宽带用户来说是这样。尽管如此,我还是让PC Pitstop的朋友给我一个Flash安装和Silverlight安装的比较。今年9月,在该网站进行测试的大约7.5万台不同电脑中,超过90%安装了Flash,而大约33%安装了Silverlight。在接下来的几个月里,随着更多使用Silverlight 2的应用程序的推出,监控Silverlight 2的使用情况将会非常有趣。看到我的战略开发人员博客为更新。

当Silverlight被引入时,一些权威人士认为它可能是微软的“Flash杀手”。我认为事实并非如此,原因有二。一个是,许多组织已经在Flash视频服务器上进行了投资。第二个原因是,Flash和Flex的设计师和开发人员往往对他们的工具非常满意,并且对Adobe非常忠诚。他们并不真正关心微软是否有更好的东西给他们,因为他们忙着砍树,没有时间用斧子换链锯,尤其是当他们很会用斧子,还没学会使用链锯的时候。

尽管如此,Silverlight仍具有实质性的技术优势和相对较好的性能。这是一种非常强大的RIA技术,在具有。net经验的程序员和具有XAML经验的设计师手中尤其有用。

这个故事,“Silverlight,这次是真的”最初是由信息世界

加入网络世界社区有个足球雷竞技app脸谱网LinkedIn对自己最关心的话题发表评论。

版权©2008Raybet2

工资调查:结果在