Silverlight 版本间的区别(转)
Microsoft发表WPF/E即后定名为Silverlight时, 便标志了Microsoft进入了RIA领域. 如今, Silverlight 一共发布了1.0, 2.0, 3.0.
Silverlight 1.0 的确不够强,这也是为什么我当时一直认为无法与Flash/Flex抗衡的原因,无论从Visual Studio的开发功能支持还是Expression软件的众多限制,似乎很多人使用之后会觉得不成熟,因为很多最新的微软技术它都不支持.
我个人认为Silverlight 1.0最大的缺点是不支持用.NET进行开发,这恐怕是很多人不愿意使用Silverlight 1.0的原因,这是它的致命伤。有人一定会问,既然Silverlight 1.0有如此大的缺点,学习Silverlight 1.0有意义吗?当然有,如果你用过Silverlight 1.0你会发现它很底层,很多很基本的Silverlight API都要你自己来调用,这样可以很大程度上帮助初学者打好基础,以便了解Silverlight的运行机理。另外它有很大一部分知识与WPF重叠,特别是XAML部分,所以你不必花两份力气同时学习Silverlight和WPF,举个例子来说,如果你看完WPF Unleashed,那么Silverlight 1.0 Unleashed里面你只需要看70%的内容就基本能够掌握Silverlight 1.0了。
另外Silverlight 1.0有个很不错的优点就是能够与以前的AJAX应用融合,这也正是微软选择JavaScript作为脚本引擎的主要原因之一,只有这样才能做到最大化的向前兼容(backward compatibility,也有人翻译为“向后兼容”,从中文思维角度我更愿意翻译为“向前兼容”),这也使得当初一些媒体的报道不攻自破——“Silverlight是AJAX的终结者”、“Silverlight与ASP.NET AJAX相矛盾,微软可能放弃ASP.NET AJAX”.
Silverlight 2.0 从技术意义上讲,技术含量很高,因为它是基于DCLR的,这也是它能够支持跨平台的主要原因(虽然目前仅支持Mac),从长远来看微软可能在某个合适的时候支持Linux,但由于这样会违背他一贯推行的方针——排挤Linux,所以短期内恐怕不会看到微软出的Linux版本的Silverlight,当然第三方已经有相关的产品了,即MoonLight。由于DCLR,Silverlight2也正式支持使用任何.NET支持的语言(除了J#)进行编程,包括VB.NET、C#、、IronPython、IronRuby。
同时Silverlight 2也越来越像他的孪生兄弟WPF,其支持的WPF XAML标签越来越多,而且基本保持一致,这样可以很大程度上缓解学习跟不上发展的局面,微软的速度实在太快了——似乎所有人都有这样的共识,特别是最近几年,微软正以惊人的速度从事着很多领域的开发工作,包括Windows系统、CRM、图形矢量领域、开发工具、虚拟机、安全领域、Web应用领域、即时通讯。尽管微软的战线比任何一家公司拉的都要开,但却没有出现管理混乱的局面,似乎微软找到了曾经被证明不存在的银弹,呵呵。XAML现在已经不仅仅是一种声明式语言,在不久的将来它将成为一种标准,与OOXML一样!越来越多的人会因为Silverlight、WPF、Surface而接触XAML,随着这一标准被不断统一融合,未来的某一天,开发人员基本不用去管这是WPF的XAML还是Silverlight的XAML,也就是说对于程序员而言它将是透明的。
Silverlight2还对各种形式的网络连接提供支持(类似Flash中的Connection和WebServiceClass),有了这些东西,用户就可以方便地通过网络获得各种所需要的数据,要知道这一支持对于开发基于网络的应用是很有帮助的,可以这么比喻,有了这一功能,Silverlight一下子从发展中国家水平迈入国际领先水平的行列(是不是听上去有点像中国GF的口吻,呵呵),这也是我为什么说Silverlight已整装待发。
Silverlight 3.0 发布后, 增加了很多新的特性, 解决了很多2.0时代的很多bug. 希望以后的文章中能和大家分享3.0给我们带来的好处.