【IT168 专稿】
你可能听说过微软的Silverlight技术,它是一个富互联网应用程序(RIA)框架,定位于挑战Adobe公司的Flash。但是,与Flash不同的是,它只支持Windows和Mac,而不支持Linux。这个缺陷曾经让很多Linux下的开发者感到郁闷,不过令人高兴的是,现在有一个新的被称作Moonlight的项目可以弥补此不足,该项目致力于为Mono环境创建一个Silverlight插件,通过这个插件使Silverlight技术可以在Linux、Mac和Windows上运行。
在作者写稿的时候,Silverlight 1.0还处于早期实施阶段,正处于发行候选版阶段。尽管Silverlight 1.0本身已经令人十分兴奋,许多开发者还在等待Sliverlight 1.1,大多数人广泛的看好这个未来的新版本,据称该版本可以在.NET运行环境下使用托管代码。这个1.1版目前在alpha测试版阶段。Moonlight可以同时兼容1.0和1.1版的Silverlight。
了解Silverlight
Silverlight被设计为一个Web浏览器插件,用于实现比HTML加脚本编程更丰富的交互性和内容控制。实际上,这是微软推动其浏览器功能发展的一步棋。Silverlight让网络应用既具备了桌面图形界面平台的强大表现力,同时又具有网络识别功能。因此,看上去和Flash颇多相似之处。不过与Flash所不同的是,Silverlight通过一种你可能已经熟悉的语言来实现这些效果,而Flash则使用自己的ActionScript脚本语言。
它的图形界面层是用一种叫做XAML的用户界面简单标记语言来表达的,以下是“Hello,World!”的示例。
Listing 1. Hello World in XAML在Silverlight应用程序中的控制要么是通过一个预编译好的C#或Visual Basic.NET程序集控制,要么通过一个诸如JavaScript之类的脚本语言动态控制。借助于微软的动态语言运行时,程序员可以选择脚本语言来编写Silverlight。你可以选择Python或Ruby,同样也可以选择JavaScript。(注:在Silverlight 1.0中,你只能选择JavaScript,因为它不支持.NET运行时。)
<Canvas
xmlns="http://schemas.microsoft.com/client/2007"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<TextBlock>Hello, World!</TextBlock>
</Canvas>
一个Silverlight应用程序并非一个单独的文件,而是许多文件的组合,通常情况下是由描述用户界面的XAML文件和进行行为控制的脚本文件组成的。通过Siverlight应用程序编程接口(API),应用程序可以访问广泛的功能函数,包括窗口界面、网络访问和多媒体等。此外,微软的ASP.NET技术在服务器方面提供方便的综合应用程序编程接口(API),尽管Siverlight可以通过Ajax与任何服务器实现交互。
如果你担心微软会让人们通过手工完成这些所有的编码工作,那就多虑了。你可以使用微软的一个叫做Expression的工具套装。一点也不令人吃惊的是,微软的Expression工具的作用就如同Adobe公司的Creative套装工具类似。巧妙的是,你也可以完全手动来编写Silverlight应用程序,这样或许对源代码共享以及整合代码有所帮助。
从技术上说,Silverlight是微软现有平台技术的一个混合产物:Windows展现层(WPF)、.NET运行时和服务器端的ASP.NET。这使得Mono项目可以很容易的开发Moonlight,因为很多要求的组件已经在Mono中存在了。