前言
Windows 8 引入全新的應用程式模型,與傳統桌面應用並存。理解這兩種架構的差異、WinRT 執行階段的角色,以及開發工具鏈的選擇,是跨平台開發的基礎。
雙重應用模型架構

Windows Store 應用 (Metro/Modern/通用應用)
- 觸控優先:手勢操作、沉浸式全螢幕體驗
- API 基礎:.NET Framework 4.5 + Windows 8 API (WinRT)
- 導航模式:頁面導航 (Frame/Page) 取代對話盒
- 部署方式:Windows Store 統一下載安裝,沙箱隔離
- 生命週期:暫停/繼續/終止狀態管理
傳統桌面應用
- 輸入模式:滑鼠鍵盤為主
- 開發基礎:Win32 API、.NET Framework 完整版
- 互動模式:視窗、對話盒、MDI/SDI
- 部署方式:MSI/ClickOnce/手動安裝,需管理員權限
- 相容性:支援 Windows 7/8/10 完整桌面環境
傳統桌面應用三大開發類別
| 類別 | 語言 | 編譯目標 | 執行環境 | UI 技術 |
| Win32 應用 | C/C++/VB6 | 原生機器碼 | Win32 API | GDI/GDI+ |
| .NET 應用 | C#/VB.NET | IL (中間語言) | CLR | XAML (WPF/WinForms) |
| HTML 應用 | HTML/CSS/JS | 直譯執行 | 瀏覽器引擎 | DOM/CSS |
Windows Store 應用統一架構:WinRT

核心特點
- 語言投影:C/C++、C#/VB.NET、JavaScript 共享同一組 WinRT API
- 原生效能:C++/CX 直接編譯為機器碼,無 CLR 開銷
- 管理型開發:C#/VB.NET 透過 CLR 執行,享有 GC、型別安全
- Web 技術整合:HTML5/JS 透過 WinJS 存取原生 API
- 技術傳承:Silverlight/WPF/XAML 技能可直接轉移
WinRT 執行階段架構層次

- 核心層:Kernel、驅動程式、檔案系統、網路堆疊
- WinRT API 層:Windows.UI.Xaml、Windows.Networking、Windows.Storage 等命名空間
- 語言投影層:將 WinRT 型別系統映射至各語言原生型別
- 應用程式模型層:生命週期、合約、權限、部署
開發工具與環境
Visual Studio 2012 版本比較
| 版本 | 目標 | 包含工具 |
| Express for Windows 8 | Store 應用 | VS + Blend + 模擬器 |
| Express for Web | Web 開發 | VS + Azure SDK |
| Express for Desktop | 桌面應用 | VS + .NET 4.5 |
| Professional/Ultimate | 全功能 | 所有以上 + 團隊功能 |
Blend for Visual Studio 2012
- 整合於 Express 版本中,無需獨立安裝
- 視覺化 XAML 設計、動畫時間軸、樣式編輯、資料樣板
- 支援 C#/VB.NET 與 HTML/JS 專案
開發語言選擇指南
- C#/VB.NET + XAML:企業應用、LOB、Silverlight/WPF 移轉、複雜邏輯
- C++/CX + XAML:高效能遊戲、圖形密集型、DirectX 整合
- HTML5/JS + WinJS:Web 開發者轉型、跨平台程式碼重用、內容導向應用
關鍵觀念總結
- WinRT 是作業系統層級的 API 平台,非單純類別庫
- 同一個 Windows 8 核心支援兩種截然不同的應用模型
- 語言選擇不影響 API 存取能力,只影響開發體驗與效能特徵
- Store 應用強調沙箱隔離、觸控優先、Store 部署
- 現有 .NET/Silverlight/WPF 技能可平滑遷移至 WinRT 開發
查看本欄目