Silverlight會是CLR之上的通用GUI框架嗎?
Silverlight對于廣大開發(fā)人員來說,也不算陌生了。隨著Silverlight 4 beta在PDC 2009大會上的發(fā)布,看來有些問題正在被解決。
#T#
之前,要在CLR上開發(fā)GUI,開發(fā)人員不得不在如下幾個重要技術(shù)框架之中做出選擇:Windows Forms、ASP.NET、WPF、GTK#和Silverlight早期版本。這些技術(shù)不僅具有兼容性、跨平臺的問題,而且更為重要的是它們之前存在或多或少的差異。開發(fā)人員不僅要學習多種技術(shù),開發(fā)出來的GUI也很難在Windows、Linux、Mac OS X和瀏覽器上復用或通用。但是,以上問題隨著Silverlight 4的到來有望改觀。
Silverlight最初以一個瀏覽器插件的形式來到人間,以期用于開發(fā)更為豐富的Web應用。然而,微軟對Silverlight的功能不斷進行強化,在Silverlight 3中提供了脫離瀏覽器運行的能力后,又在Silverlight 4中增加了提升權(quán)限的能力。通過提升權(quán)限,脫離瀏覽器的Silverlight應用程序就可以訪問用戶文件。除此之外,Silverlight 4還獲得了無限制的Socket功能,內(nèi)置的提醒API,甚至和COM進行互操作。
Silverlight一旦從瀏覽器邁進桌面的世界,它也就有可能成為一個具有跨平臺能力的通用GUI框架。前幾天,Miguel de Icaza在其博文《Silverlight: Universal GUI toolkit》中也表達了同樣的觀點:
未來的Silverlight版本將不再是一種Web獨享的技術(shù)。用Silverlight來構(gòu)建完整的桌面應用程序現(xiàn)在將成為可能。
同時,Miguel認為Silverlight 4將給大家?guī)砹藰O大的驚喜,已經(jīng)可以完全和AIR進行競爭了。他甚至還打算用Silverlight來開發(fā)一個BitTorrent客戶端呢。
無獨有偶,在Silverlight 3發(fā)布后不久,InfoQ編輯朱永光在其博客文章《使用Silverlight 3作為桌面應用程序開發(fā)平臺》中也提出了類似構(gòu)想:
Silverlight 3作為微軟***的RIA平臺,為我們帶來了很多新特性。RIA顧名思義,即要有Internet,又要有Applicaiton。不過我們是否可以只要Applicaiton,也就是說把Silverlight 3作為開發(fā)桌面應用程序的一個平臺呢?
為什么這樣做呢?統(tǒng)一開發(fā)人員的技能,Web與桌面應用可輕易相互移植,方便開發(fā)跨平臺應用程序。
除了第三方持這樣的觀點外,微軟在發(fā)布Silverlight 4的同時也展示了一款用Silverlight開發(fā)的桌面應用程序——Fishbowl,以此向大家傳遞Silverlight可作為通用GUI框架的理念。
我們相信,未來會涌現(xiàn)出很多精彩紛呈的基于Silverlight的桌面應用程序,比如用Silverlight開發(fā)一款炫目的媒體播放器來播放本地音樂和在線音樂。