Windows 操作系統(tǒng)之所以風(fēng)靡世界,是因?yàn)槠?ldquo;易學(xué)易用”,從用戶的角度出發(fā),讓數(shù)以萬計(jì)的非IT人員使用計(jì)算機(jī)實(shí)現(xiàn)娛樂,工作等目的。Windows 8繼承Windows桌面的優(yōu)點(diǎn),同時(shí)提供一種新的用戶體驗(yàn)?zāi)J?- Windows store風(fēng)格。換句話說,Windows 8操作系統(tǒng)存在兩種不同風(fēng)格的應(yīng)用。 本篇將介紹Windows 8應(yīng)用框架以及開發(fā)工具的使用。
理解Windows 8應(yīng)用框架
正如前文所說,Windows 8具有兩個(gè)不同風(fēng)格的應(yīng)用,Windows store應(yīng)用和傳統(tǒng)Windows桌面應(yīng)用。兩種風(fēng)格應(yīng)用使用不同的UI引擎,不同的服務(wù)和工具,以及不同的API. 但是,都運(yùn)行在同一個(gè)Windows 8操作系統(tǒng)內(nèi)核下。
我們簡單對(duì)比一下兩種應(yīng)用:
Windows store應(yīng)用
傳統(tǒng)Windows桌面應(yīng)用
Windows store應(yīng)用增加觸控操作,獨(dú)特的手勢(shì)操作,提高用戶體驗(yàn)性
傳統(tǒng)桌面應(yīng)用主要操作模式是基于鼠標(biāo)和鍵盤操作應(yīng)用
應(yīng)用開發(fā)基于.Net Framework Windows 8 API
應(yīng)用開發(fā)基于Win32 API,或者Net Framework
Windows store應(yīng)用不推薦大量使用對(duì)話框進(jìn)行人機(jī)交互,而推薦使用頁面導(dǎo)航的模式進(jìn)行交互,這種方式更象使用瀏覽器前進(jìn)后退的功能進(jìn)行交互。
傳統(tǒng)應(yīng)用以對(duì)話框?yàn)橹饕藱C(jī)交互方式
在部署方面,用戶不需要了解應(yīng)用安裝文件等信息,僅需要在Windows store下載安裝即可。
在部署方面,傳統(tǒng)桌面應(yīng)用需要一定的安裝和注冊(cè)流程
Windows 8傳統(tǒng)桌面應(yīng)用框架
Windows 8傳統(tǒng)桌面應(yīng)用可以根據(jù)分為三類,分別是Win32應(yīng)用,.Net應(yīng)用和HTML應(yīng)用。
1. Win32應(yīng)用主要開發(fā)語言為C,C++或VB。該應(yīng)用被直接編譯為CPU代碼運(yùn)行在Win32 API上,其用戶界面實(shí)現(xiàn)必須使用GDI或者GDI+。
2. .Net應(yīng)用主要開發(fā)語言為C#,VB.NET。該應(yīng)用被編譯為中間語言(IL),然后再被轉(zhuǎn)換為CPU代碼運(yùn)行在CLR(Common Language Runtime)環(huán)境。其用戶界面實(shí)現(xiàn)使用XAML語言。
3. HTML應(yīng)用主要開發(fā)語言為HTML/CSS和JavaScript,該應(yīng)用基于瀏覽器運(yùn)行。
Windows store應(yīng)用框架
基于相同的Windows 8操作系統(tǒng)內(nèi)核,Windows Store應(yīng)用共享相同的API層,稱為Windows Runtime APIs。無論使用C/C++,或者基于.Net的C#/VB.NET或者HTML5/JavaScript任何一種開發(fā)語言都可以輕松調(diào)用WinRT API類庫,實(shí)現(xiàn)本地應(yīng)用操作。
值得一提的是,微軟綜合當(dāng)前最流行的HTML5/CSS3/JavaScript技術(shù),使Web開發(fā)人員可以輕松開發(fā)Windows store本地應(yīng)用。另外,基于XAML的Silverlight和WPF技術(shù)都成為Windows 8操作系統(tǒng)部分,不再需要安裝插件支持。而Silverlight/WPF開發(fā)人員,可以繼續(xù)使用相關(guān)開發(fā)技能從事Windows Store應(yīng)用開發(fā)。
Windows Runtime框架
從上面圖例可以看出,Windows Runtime是Windows 8應(yīng)用框架重要組成部分之一。微軟將WinRT視為繼2002年.Net Framework發(fā)布后最大的革新。作為Windows Store應(yīng)用設(shè)計(jì)和開發(fā)人員,從微軟設(shè)計(jì)原則考慮,Windows Runtime不僅僅是一套簡單的API類庫,而是一套獨(dú)立完整的能夠支持Windows Store應(yīng)用風(fēng)格的運(yùn)行環(huán)境。
Windows Runtime的優(yōu)點(diǎn):
1. WinRT運(yùn)行在Windows 8核心層之上,為Windows Store應(yīng)用提供API支持訪問本地資源,例如GPS,攝像頭,麥克等。
2. Windows Store應(yīng)用運(yùn)行在安全沙箱中,所以,該應(yīng)用可以被認(rèn)為安全的managed的應(yīng)用。當(dāng)應(yīng)用嘗試使用未授權(quán)本地資源時(shí),WinRT將提示用戶是否賦予系統(tǒng)存取權(quán)限。
3. 傳統(tǒng)Win32 API獨(dú)立于操作系統(tǒng)內(nèi)核服務(wù),而WinRT是Windows 8操作系統(tǒng)組成部分之一。 與Win32相比,WinRT更加穩(wěn)定,其內(nèi)存管理更加優(yōu)化,對(duì)于應(yīng)用和系統(tǒng)性能都有很大的提高。
4. WinRT支持本地異步操作,這是對(duì)于移動(dòng)設(shè)備而言至關(guān)重要的特性。
語言映射層(Language Projection)
Windows 8應(yīng)用支持多種開發(fā)語言,而不同開發(fā)語言,需要通過Language Projection映射到Windows Runtime運(yùn)行環(huán)境,開發(fā)人員不需要擔(dān)心語言之間的轉(zhuǎn)換,整個(gè)過程都是編譯器自動(dòng)完成。
值得一提的是,通過語言映射層,開發(fā)人員可以在同一個(gè)項(xiàng)目中使用不同的開發(fā)語言開發(fā)項(xiàng)目功能,在隨后的文章中,我將提供相應(yīng)實(shí)例演示。
如何選擇Windows Store應(yīng)用開發(fā)語言
對(duì)于Windows Store應(yīng)用開發(fā)語言選擇,有以下幾個(gè)建議提供參考:
1. 對(duì)于具有Windows應(yīng)用開發(fā)經(jīng)驗(yàn)的開發(fā)人員而言,C#和C++是最好的選擇,相比而言,C#基于.Net Framework,其應(yīng)用為Managed,比較容易學(xué)習(xí)掌握。而C++更加貼近底層應(yīng)用開發(fā)。
2. 對(duì)于具有Web應(yīng)用開發(fā)經(jīng)驗(yàn)的設(shè)計(jì)和開發(fā)人員而言,HTML5/CSS3/JavaScript是最好的選擇。類似PhoneGap框架,Windows 8將提供一個(gè)Web Host承載運(yùn)行編譯后的HTML應(yīng)用,使其達(dá)到本地化的效果。
3. 對(duì)于具有宏操作經(jīng)驗(yàn)的開發(fā)人員而言,VB.Net是一個(gè)不錯(cuò)的選擇,其應(yīng)用開發(fā)與微軟Office VBA應(yīng)用開發(fā)類似。
今天就說到這里。