笔者使用Silverlight的时间比较长,一直在研究这个微软号称“Flash杀手”的工具。根据几个月的第一手体验,对它的技术方面的精华进行了总结。
随着Siverlight公众版的发布时间的日益接近,现在是时候来熟悉Silverlight以及其如何影响你的Web应用程序了。然而,关于Silverlight的信息如此众多,一时之间让人难以分辨哪些是重要的内容,哪些只是广告宣传。下面我将尽我的最大努力来总结出关于Silverlight你应该知道的十件事情。
1、Silverlight消除了跨浏览器/操作系统的问题
对于大多数开发团队来说,开发一个可以同时支持当今比较流行的浏览器(包括IE、Firefox、Safari和Opera)的网站并不是一件容易的事情。问题不仅仅在于要编写更多的代码,还包括由此带来的呈指数级别增加的测试工作。随着开发者为不同操作系统的不同版本的浏览器开发应用程序,测试的工作量会变得非常巨大。
通常情况下有两种方式可以让开发人员解决这个问题:只支持一部分浏览器,或者增加质量保证人员的数量来应对大的工作量。
相比之下,这个Silverlight插件则不管用户的操作系统和浏览器,而提供了一个统一的开发模型。目前,Silverlight支持两种操作系统和三种浏览器。微软承诺将在以后增加对Windows和Mac平台上的Opera浏览器的支持。此外,Mono项目(.NET“开源版”项目)已经在它的Moonlight项目中取得了巨大的进步,通过该项目可以使Siverlight插件支持Linux平台。
2、Silverlight 1.1更值得期待
最近发布的Silverlight 1.0让许多机构开始考虑他们是否要开始使用Silverlight。虽然Silverlight 1.0具有很多重要的和有趣的功能,实际上大多数对Siverlight的采用要等到其1.1版的发布。
目前还处于Alpha预览阶段的Silverlight 1.1版将首次全方面支持.NET平台。这包含基本的.NET语言、C#和Visual Basic。此外,根据微软表示,Silverlight 1.1还将为动态语言提供.NET支持,诸如Ruby、Python、动态Visual Basic和受控JScript。
在我看来,Siverlight所支持的的重要语言是C#和Visual Basic,因为它们允许目前的.NET开发者来创建有意思的Silverlight应用程序。在Silverlight 1.1版中,任何.NET语言都将被支持,因为真正提交给浏览器的实际上是.NET assembly。
相比之下,Silverlight 1.0只支持在客户端解释的ECMA语言。Silverlight 1.0非常适合于那些已经在使用客户端脚本语言编程的现有Web开发者。
Silverlight 1.1还支持一个丰富的客户定制模型,这对确保一个综合性的开发体验是非常重要的。Silverlight 1.0的体验还比较不成熟,不太可能让第三方团体对其管理开发感兴趣。
3、Silverlight使用了开发者已经了解的技术
Silverlight是由已经存在的微软技术组合而来的:一个混合的类似Windows展现框架的XAML(XML应用程序标记语言)、JavaScript和.NET技术。
如果开发者已经比较熟悉微软的.NET和Web技术,他们就能够使用他们已有的知识来创建Silverlight应用程序。即使开发者没有这些技能,掌握了这些技术也不仅仅对某个单独的产品或项目有用,它可以被应用到Silverlight应用程序以外的开发中,这与其他解决方案的情况不完全一样,例如Adobe Flash的ActionScript。
至于选择哪个Silverlight版本来应用到一个新项目中,这取决于你的开发团队的技能情况。如果你的开发团队主要是进行一个ASP.NET服务器端开发工作(大多数情况下是C#和VB.NET),你应该等到Silverlight 1.1版推出。如果你的团队比较熟悉客户端脚本语言,例如JavaScript,Silverlight 1.0是一个值得介绍的伟大平台。
4、Silverlight用户界面仅仅是标记语言
XAML是Silverlight用于进行用户界面设计的混合语言。你可能已经对另一种流行的标记语言已经非常熟悉,即HTML。HTML文件是简单的文本,它包含的信息可以告诉Web浏览器如何展现一个页面的外观和给用户的感觉。XAML也做相同的事情。但是,与浏览器解释关于如何表现这个文件的指令不同的是,由Silverlight运行时来完成展现工作。
XAML作为标记是很重要的,因为它可以被动态的创建。无论你的开发者使用什么工具来进行服务器端的Web开发,你都可以创建动态HTML来创建页面。这个技术非常引人注目,因为你可以创建在站点中重用的HMTL代码。一个很好的例子是大多数网站的主页设计在通常情况下,页面头部和底部在整个页面中是要被重复使用的。
因为XAML仅仅是标记,你能够使用服务器端的技术来动态的创建XAML,就如同你的开发团队以前使用HTML的方式一样。这是一个不同的标记语言,但是技术是相同的。