关于Silverlight你需要知道的十件事情

2007年8月22日 | 分类: 知识教程 | 标签:

微软高调推出号称”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由微软现有的一些技术创建而成如XAMLJavaScript以及.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的时候就会发现更多的功能和特

目前还没有任何评论.