
Windows 操作系統之所以風靡世界,是因為其“易學易用”,從用戶的角度出發,讓數以萬計的非IT人員使用計算機實現娛樂,工作等目的。Windows 8繼承Windows桌面的優點,同時提供一種新的用戶體驗模式 - Windows store風格。換句話說,Windows 8操作系統存在兩種不同風格的應用。 本篇將介紹Windows 8應用框架以及開發工具的使用。
理解Windows 8應用框架
正如前文所說,Windows 8具有兩個不同風格的應用,Windows store應用和傳統Windows桌面應用。兩種風格應用使用不同的UI引擎,不同的服務和工具,以及不同的API. 但是,都運行在同一個Windows 8操作系統內核下。

我們簡單對比一下兩種應用:
Windows store應用
傳統Windows桌面應用
Windows store應用增加觸控操作,獨特的手勢操作,提高用戶體驗性
傳統桌面應用主要操作模式是基于鼠標和鍵盤操作應用
應用開發基于.Net Framework Windows 8 API
應用開發基于Win32 API,或者Net Framework
Windows store應用不推薦大量使用對話框進行人機交互,而推薦使用頁面導航的模式進行交互,這種方式更象使用瀏覽器前進后退的功能進行交互。
傳統應用以對話框為主要人機交互方式
在部署方面,用戶不需要了解應用安裝文件等信息,僅需要在Windows store下載安裝即可。
在部署方面,傳統桌面應用需要一定的安裝和注冊流程
Windows 8傳統桌面應用框架
Windows 8傳統桌面應用可以根據分為三類,分別是Win32應用,.Net應用和HTML應用。
1. Win32應用主要開發語言為C,C++或VB。該應用被直接編譯為CPU代碼運行在Win32 API上,其用戶界面實現必須使用GDI或者GDI+。
2. .Net應用主要開發語言為C#,VB.NET。該應用被編譯為中間語言(IL),然后再被轉換為CPU代碼運行在CLR(Common Language Runtime)環境。其用戶界面實現使用XAML語言。
3. HTML應用主要開發語言為HTML/CSS和JavaScript,該應用基于瀏覽器運行。

Windows store應用框架
基于相同的Windows 8操作系統內核,Windows Store應用共享相同的API層,稱為Windows Runtime APIs。無論使用C/C++,或者基于.Net的C#/VB.NET或者HTML5/JavaScript任何一種開發語言都可以輕松調用WinRT API類庫,實現本地應用操作。
值得一提的是,微軟綜合當前最流行的HTML5/CSS3/JavaScript技術,使Web開發人員可以輕松開發Windows store本地應用。另外,基于XAML的Silverlight和WPF技術都成為Windows 8操作系統部分,不再需要安裝插件支持。而Silverlight/WPF開發人員,可以繼續使用相關開發技能從事Windows Store應用開發。

Windows Runtime框架
從上面圖例可以看出,Windows Runtime是Windows 8應用框架重要組成部分之一。微軟將WinRT視為繼2002年.Net Framework發布后最大的革新。作為Windows Store應用設計和開發人員,從微軟設計原則考慮,Windows Runtime不僅僅是一套簡單的API類庫,而是一套獨立完整的能夠支持Windows Store應用風格的運行環境。

Windows Runtime的優點:
1. WinRT運行在Windows 8核心層之上,為Windows Store應用提供API支持訪問本地資源,例如GPS,攝像頭,麥克等。
2. Windows Store應用運行在安全沙箱中,所以,該應用可以被認為安全的managed的應用。當應用嘗試使用未授權本地資源時,WinRT將提示用戶是否賦予系統存取權限。
3. 傳統Win32 API獨立于操作系統內核服務,而WinRT是Windows 8操作系統組成部分之一。 與Win32相比,WinRT更加穩定,其內存管理更加優化,對于應用和系統性能都有很大的提高。
4. WinRT支持本地異步操作,這是對于移動設備而言至關重要的特性。
語言映射層(Language Projection)
Windows 8應用支持多種開發語言,而不同開發語言,需要通過Language Projection映射到Windows Runtime運行環境,開發人員不需要擔心語言之間的轉換,整個過程都是編譯器自動完成。
值得一提的是,通過語言映射層,開發人員可以在同一個項目中使用不同的開發語言開發項目功能,在隨后的文章中,我將提供相應實例演示。
如何選擇Windows Store應用開發語言
對于Windows Store應用開發語言選擇,有以下幾個建議提供參考:
1. 對于具有Windows應用開發經驗的開發人員而言,C#和C++是最好的選擇,相比而言,C#基于.Net Framework,其應用為Managed,比較容易學習掌握。而C++更加貼近底層應用開發。
2. 對于具有Web應用開發經驗的設計和開發人員而言,HTML5/CSS3/JavaScript是最好的選擇。類似PhoneGap框架,Windows 8將提供一個Web Host承載運行編譯后的HTML應用,使其達到本地化的效果。
3. 對于具有宏操作經驗的開發人員而言,VB.Net是一個不錯的選擇,其應用開發與微軟Office VBA應用開發類似。
今天就說到這里。