Silverlight 会成为 CLR 之上通用的 GUI 框架吗?

  • 朱永光

2009 年 11 月 30 日

话题:.NET语言 & 开发架构

之前,要在 CLR 上开发 GUI,开发人员不得不在如下几个重要技术框架之中做出选择:Windows Forms、ASP.NET、WPF、GTK# 和 Silverlight 早期版本。这些技术不仅具有兼容性、跨平台的问题,而且更为重要的是它们之前存在或多或少的差异。开发人员不仅要学习多种技术,开发出来的 GUI 也很难在 Windows、Linux、Mac OS X 和浏览器上复用或通用。但是,以上问题随着Silverlight 4 的到来有望改观。

Silverlight 最初以一个浏览器插件的形式来到人间,以期用于开发更为丰富的 Web 应用。然而,微软对 Silverlight 的功能不断进行强化,在 Silverlight 3 中提供了脱离浏览器运行的能力后,又在 Silverlight 4 中增加了提升权限的能力。通过提升权限,脱离浏览器的 Silverlight 应用程序就可以访问用户文件。除此之外,Silverlight 4 还获得了无限制的 Socket 功能,内置的提醒 API,甚至和 COM 进行互操作。

Silverlight 一旦从浏览器迈进桌面的世界,它也就有可能成为一个具有跨平台能力的通用 GUI 框架。前几天,Miguel de Icaza 在其博文《Silverlight: Universal GUI toolkit》中也表达了同样的观点:

未来的 Silverlight 版本将不再是一种 Web 独享的技术。用 Silverlight 来构建完整的桌面应用程序现在将成为可能。

同时,Miguel 认为 Silverlight 4 将给大家带来了极大的惊喜,已经可以完全和 AIR 进行竞争了。他甚至还打算用 Silverlight 来开发一个BitTorrent 客户端呢。

无独有偶,在 Silverlight 3 发布后不久,InfoQ 编辑朱永光在其博客文章《使用 Silverlight 3 作为桌面应用程序开发平台》中也提出了类似构想:

Silverlight 3 作为微软最新的 RIA 平台,为我们带来了很多新特性。RIA 顾名思义,即要有 Internet,又要有 Applicaiton。不过我们是否可以只要 Applicaiton,也就是说把 Silverlight 3 作为开发桌面应用程序的一个平台呢?

为什么这样做呢?统一开发人员的技能,Web 与桌面应用可轻易相互移植,方便开发跨平台应用程序。

除了第三方持这样的观点外,微软在发布 Silverlight 4 的同时也展示了一款用 Silverlight 开发的桌面应用程序——Fishbowl,以此向大家传递 Silverlight 可作为通用 GUI 框架的理念。

我们相信,未来会涌现出很多精彩纷呈的基于 Silverlight 的桌面应用程序,比如用 Silverlight 开发一款炫目的媒体播放器来播放本地音乐和在线音乐。

InfoQ 的读者朋友们,你的看法如何呢?会选择 Silverlight 4 作为唯一的界面开发技术吗?请留下你的投票。

.NET语言 & 开发架构