[转]关于SilverLight:你需要知道的十件事情
本帖源自: http://www.cnblogs.com/lxinxuan/archive/2007/08/23/866540.html
微软高调推出号称“Flash杀手”的Silverlight之后,虽然得到了普遍的关注,但是仅有的几个演示内容似乎仍不能让大家弄明白这到底是有什么独到之处,如果仅仅是替代Flash的已有功能的话,肯定不值得微软如此隆重的登场推介。
简单的说,Silverlight是一个跨平台跨操作系统的插件,使Web开发者能够在浏览器中建造丰富的媒体体验和RIA应用。目前发布的版本为 RC版,可用于Windows平台上的IE和Firefox浏览器,以及Mac OS X平台上的Firefox和Safari浏览器。
在公共发布版本来临之际,现在正是了解Silverlight的好时候,本文解释了微软的Silverlight 10个主要特点,希望能够帮助你更多了解Silverlight的好处和局限性。
本文作者Shawn Wildermuth是微软MVP(最有价值专家)(C#),Wildermuth Consulting Services的创始人,已经从事软件开发超过20年。目前Shawn正在全美做Silverlight的巡回授课,教人们如何在自己的项目中使用Silverlight。
1、Silverlight是跨平台/浏览器的
对于大部分开发团队,创建一个能够在所有流行的浏览器(包括IE、Firefox、Safari、Opera)上完美运行的Web站点是很具挑战性的事情。这不只是增加代码实现的问题,还要进行大量复杂的测试。
通常面对这个问题的解决方法有两个:仅支持少数最流行的浏览器或者增加质量保证人员的数量。
而Silverlight允许“一次开发,到处运行”,微软已经承诺会支持Windows和Mac上的Opera,而Silverlight的Linux版Moonlight也正在开发中。
2、Silverlight 1.1 才是好戏开场
对于目前的Silverlight 1.0 RC版,仍有很多组织在考虑是否开始在此平台上进行开发。Silverlight 1.0已经有了许多重要有趣的功能,但还有更多的精彩内容仍需到1.1版才会出现。
Silverlight 1.1(目前仍处于Alpha预览)初次开始支持.NET,包括了基本的.NET语言:C#和Visual Basic。而微软说,Silverlight 1.1将会带有.NET对动态语言的支持,例如Ruby、Python、动态VB和托管JScript。等到1.1正式发布,所有.NET语言的支持都会 加入近来,这等于给浏览器添加了.NET编译器。
3、Silverlight 使用开发者们已经掌握的技术
Silverlight由微软现有的一些技术创建而成,如XAML,JavaScript以及.NET技术。如果你已经很熟悉微软.NET和Web开发技术,这些都可以应用在Silverlight的开发中。
你选择开始新项目的Silverlight版本主要基于开发团队的技术方向。如果你的开发团队主要做ASP.NET服务器端开发(主要是C#和 VB.NET),你就需要等待1.1的正式发布,如果你的团队专攻像JavaScript这类的客户端开发,Silverlight就正适合你。
4、Silverlight的用户界面使用标记语言——就像HTML
Silverlight使用XAML来进行用户界面设计。你可能已经很熟悉另一种标记语言了:HTML。HTML文件是纯文本的,它只需要告诉浏览器如何渲染网页,XAML也是这样的,只不过,执行文本命令的不再是浏览器,而是Silverlight。
无论开发者在服务器端用什么工具进行怎样的开发,最后你总要创建动态的HTML页面。XAML是标记语言,因此你可以使用服务器端技术动态创建XAML,就像你的开发团队动态创建HTML一样。标记语言有所不同,但技术并未变化。
5、Silverlight和AJAX技术互为补充
网络是不断进化的。回到1990年代,所有人都告诉开发者应该把尽可能多的执行都放在服务器端,技术上没问题,但是这相当影响用户体验。现在AJAX已经广泛流行开来,把代码直接放置在浏览器中就可以有效改善用户体验,这方面最典型的代表就是Google Maps。
Silverlight也参照了这样的模型,允许在浏览器中创造更加丰富的用户界面,而采用AJAX和服务器端交换数据使Silverlight更加强大,结合了Silverlight丰富的用户界面和AJAX的异步数据传输,用户将得到非常舒适的交互体验。
6、Silverlight允许开发者和设计者协同工作
网络要求开发者们必须越来越多地考虑设计和美观问题,对用户的快速响应和直观的界面已经成为开发标准,这需要在开发中同时加入美术设计和用户体验规划。
然而,美术师和程序员使用完全不同的资源和工具。通常情况是,美术师把图片文件或者HTML框架发给开发者以整合应用程序代码,当设计做出更改,整合就没完没了地进行。
Silverlight能提供更好的开发模式。微软提供给Silverlight的工具包是一系列复杂工具的集合,例如Visual Studio,还有连接设计者的工具,成为Expression Studio。
对于Silverlight,主要的设计工具是Expression Blend,它可以按设计者们所熟知的方式创建XAML内容,使用起来和Adobe Illustrator或者Photoshop差不多。但不同之处在于Blend和开发者使用同样的工程项目文件,XAML和JavaScript文件, 就像在Visual Studio中那样。当设计完成并修整好,不需要进行中间的整合过程,设计者就可以看到开发人员直接将其作为项目素材加入开发项目。这样做有助于设计者和 开发人员更加紧密地协同工作。
7、Silverlight将分包发布
Silverlight会分成多个数据包发送给浏览器,也就是说代码会分成一个或多个包(JavaScript文件,编译文件等等),设计也分成一个或多个包(XAML),以及其他文件(包括图片、字体、视频)。
刚开始习惯了Flash的单文件分发模式的开发者会不大理解为什么这样做。实际上,这是有好处的。分离的包比现在的Flash完整打包更有助于在服 务器端动态地创建内容,并按照标记语言自由组合。Silverlight也提供功能可以使用zip文件把所有XAML代码使用的内容打包给用户下载。
8、Silverlight是崭新的
在写就本文的时候,Silverlight 1.0为RC版,Silverlight 1.1则刚刚发布Alpha版,这项技术与类似的其他公司同类技术(尤其是Adobe的Flash和Flex)相比还不够成熟。Flash目前已经到了 9.0,它花了很长时间才达到现在的普及度,但这不是说Silverlight追不上来,微软在学习他人的经验和教训方面很有一手(可以参考一下Java 和.NET),当然这也不是绝对的。
Silverlight不是Windows Forms、Windows Presentation Foundation(WPF)、Java Applet或者Sharepoint的替代者,简单的说,如果你需要创建丰富的,优秀的,同时具备跨所有平台和操作系统的应用,那么 Silverlight正合适。
9、Silverlight XAML对照WPF XAML
要把XAML吹捧成为微软WPF的特长之处并不难,但是它实际上并没有看起来那么优秀,这一方面是由于WPF较低的采用率,另一方面就是WPF XAML和Silverlight XAML的区别了。
首先,WPF的采用率相对于其他客户端技术而言(例如Visual Basic 6和.NET的Windows Forms)比较低,因此XAML也基本上被荒废了。
第二,Silverlight XAML的语法比WPF XAML要简单一些,当然也会比WPF XAML弱一点,这既是好事也是坏事。Silverlight非常容易上手,但是从WPF转移而来的开发者可能会觉得有点不够用。
按我的感觉,较简洁的语法对于Silverlight实际上是最合适的,因为运行环境对于用户而言越精简越好。Silverlight并不需要把所 有东西都囊括进来,对于一个轻量级客户端而言没有这个必要。当然,要能给Silverlight增加更多的功能肯定不错,但是目前不能仅仅考虑这些,我们 需要谨慎考量加入多少,同时还能保持接口的简洁和高效。
10、Silverlight非常适合学习XAML
就象前一节所说的,Silverlight有着轻量级的XAML语法,这意味着它对于学习XAML的工作方式非常有益,引导那些正在学习XAML的 开发者创建简明清晰的代码,帮助他们快速理解Silverlight的功能特性,当他们开始投向WPF的XAML的时候,就会发现更多的功能和特性已经准 备就绪了。
相反的,如果开发者从WPF开始应用XAML,随后换到Silverlight的话就不得不扔掉许多特性。Silverlight的运行时库目前只有大约4.5MB,.NET 3.0运行时库(第一个支持WPF的)则接近30MB。
Silverlight是一个对公司、消费者、用户都大有裨益的新技术,看了上面这些,现在你可以决定该如何在你的Web战略中应用Silverlight了。