微軟為什么選擇Silverlight作為Windows Phone開發(fā)框架
【引言】本文的作者是@微士博,其就@老徐FrankXuLei提出的“微軟為什么會選擇Silverlight作為Windows Phone應(yīng)用程序的開發(fā)框架?”問題做了詳細(xì)的回答,小編對原文進(jìn)行了簡單的整理,具體如下:
Q:微軟為什么會選擇Silverlight作為Windows Phone應(yīng)用程序的開發(fā)框架?
A:回答這個(gè)問題,估計(jì)要把時(shí)間拉回到2008年,微軟推出WPF(Windows Presentation Foundation)/WPF。
WPF是微軟下一代的界面表現(xiàn)技術(shù),是微軟最新.NET Framework 3.0的四大核心技術(shù)之一。WPF基于.NET Framework和DirectX技術(shù),能夠讓開發(fā)出連自己都想象不到眩目界面,同時(shí)WPF簡化了界面開發(fā)技術(shù)(WinForms),后來,WPF/e演化成現(xiàn)在的Silverlight,當(dāng)初發(fā)布的時(shí)候,有很多人都搞不清楚兩者之間的關(guān)系,也就錯以為這2個(gè)是相同的技術(shù),其實(shí),兩者除了在UI部分使用了相同的XAML語言做為界面顯示技術(shù)外,本質(zhì)上是有些不同的。
縱觀微軟幾個(gè)核心的技術(shù)領(lǐng)域,WinFroms、WPF、Silverlight、ASP.NET等等這些技術(shù)的本質(zhì),無非是底層所使用的框架不同,
在Windows中,諸如窗體繪制等功能都是由GDI來實(shí)現(xiàn),WinForms在底層使用的是GDI+,玩過圖形編程的朋友應(yīng)該不陌生,GDI+也是在C++非托管代碼上又包了一層實(shí)現(xiàn)的,從而,我們才能使用C#,VB這樣的托管編程語言調(diào)用GDI+功能繪圖。
WPF底層使用的是DirectX,就是開發(fā)游戲時(shí)使用的那個(gè)技術(shù),WPF原來的代號為:“Avalon”,有朋友戲稱:“我佩服”聽起來牛X吧? WPF是運(yùn)行在.NET Framework 3.0架構(gòu)下,為用戶提供界面,2D/3D圖形,文檔和媒體提供了統(tǒng)一的描述跟操作方法,此時(shí),DriectX也更新到了 DirectX 9/10版本,主要還是在3D渲染引擎也大大改進(jìn),你現(xiàn)在用的windows 7 ,windows vista,就是它的功勞。
Silverlight其實(shí)在API層你可以看成是WPF的字集或者一個(gè)輕量版本。 SilverLight原來設(shè)計(jì)的初衷是基于瀏覽器插件,同時(shí),也被業(yè)界認(rèn)定是與flash強(qiáng)有力的競爭對手,它在瀏覽器中運(yùn)行,服務(wù)器端不需要部署任何環(huán)境,客戶端只需要安裝Runtime瀏覽器插件,即SL(2,3,4,5)三個(gè)版本,而無須安裝.net Framework 3.0。所以,SilverLight的運(yùn)行環(huán)境不受操作系統(tǒng)和瀏覽器的種類限制(更準(zhǔn)確的說,是受到較少的限制)。 WPF可以編寫Web程序或者桌面應(yīng)用程序,可以直接編譯為獨(dú)立運(yùn)行的.exe文件。但有一條,WPF運(yùn)行時(shí)必須安裝.net Framework 3.0。
扯了這么多,也都是些老掉牙的事了,貌似還沒有歸結(jié)到:“微軟為什么會選擇SL做為WP應(yīng)用的開發(fā)框架”這個(gè)主題上來,有了前面的開胃菜,你就對接下來要說的,多少會能理解點(diǎn)。
微軟的Windows Mobile大家并不陌生,在某個(gè)時(shí)間段內(nèi),市場占有率,開發(fā)人員數(shù)量,應(yīng)用數(shù)量,也是響當(dāng)當(dāng)?shù)?,WM的底層則是.NET Compact Framework.
Q:什么是 Microsoft .NET Compact Framework?
A:Microsoft .NET Compact Framework是針對 Microsoft .NET計(jì)劃的智能設(shè)備開發(fā)框架,是實(shí)現(xiàn)Microsoft隨時(shí)隨地在任何設(shè)備上為客戶提供良好體驗(yàn)的目標(biāo)的關(guān)鍵所在。.NET Compact Framework 將托管代碼和 Web 服務(wù)帶給了智能設(shè)備,它允許安全的、可下載的應(yīng)用程序在諸如個(gè)人數(shù)字助理 (PDA)、移動電話和機(jī)頂盒等設(shè)備上運(yùn)行。
智能設(shè)備框架?可下載應(yīng)用程序?個(gè)人數(shù)字助理?移動電話?這些詞并不陌生,在現(xiàn)在當(dāng)時(shí)看來,是不是挺那么耀眼的?,.NET CF有其不足之處,諸如動畫效果、GPU加速、2D/3D圖形渲染等,隨著移動智能終端的發(fā)展,微軟手里握著這么多互相補(bǔ)充的技術(shù)不用,豈不是傻子?正如@林永堅(jiān)Jake: 所說,早在Silverlight2版本時(shí),Win CER3已經(jīng)支持SL2了,再加上微軟的“三屏一云”戰(zhàn)略,Silverlight勢必會擔(dān)當(dāng)重任。
原文鏈接:http://jasonwei.com/archives/422
51CTO專訪微士博:希望微軟開放更多WP權(quán)限給開發(fā)者