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