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