歷史回顧:曾經有明確的「最佳選擇」
- VB6:極速交付
- MFC:原生效能
- WinForms:開發速度與功能平衡
- WPF:豐富 UI、資料繫結、樣式系統
- Silverlight:WPF 子集、跨平台瀏覽器外掛、部署輕鬆
現狀:選擇更多,但沒有明確贏家
WinRT / UWP:企業級尚未就緒
部署三大門檻
- 必須加入網域:中小企業無 AD 基礎設施,或不願所有機器入域。
- 群組原則「允許受信任應用」:非入域機器需手動改註冊表/腳本。
- 代碼簽名憑證:自簽需逐台安裝受信任根憑證,購買 EV 憑證年費數百美元。
更新機制倒退
無 ClickOnce 自動更新,用戶需手動執行 PowerShell Add-AppxPackage 並指定版本路徑,回到十年前手動部署時代。
Silverlight:已棄技術
- IE10+ 不完整支援,ARM 裝置完全無法運行。
- 工具包 2011 年停更,缺乏可用單元測試框架 (現有預覽版 O(n²) 效能災難)。
- 微軟團隊已解散,無官方壽命週期公告。
WPF:維護模式,未來不明
- 效能問題長期未修 (渲染管線未同步 WinRT/XAML 優化)。
- 工具包 2010 年停更 (Ribbon、AutoCompleteBox、Accordion 等控件停滯)。
- 無法部署於低功耗 Windows RT 裝置 (不支援完整 .NET)。
- 微軟慣例:不發布棄用公告,悄悄停止投資 (如 WinForms、LINQ to SQL)。
WPF 目前仍是 Windows 上功能最完整的 LOB 平台 (深度 OS 整合、ClickOnce、少 Silverlight 問題),但新專案投資風險極高。
ASP.NET:務實的替代方案
- 跨平台、零部署、支援舊瀏覽器 (IE6+)、行動裝置。
- MVC/WebForms 共存、漸進遷移、TypeScript 支援大型 SPA。
- 交付時間約為桌面應用 3-4 倍,但瀏覽器相容性改善中。
- 缺點:快捷鍵被瀏覽器攔截、多視窗體驗差、複雜列印需生成 PDF。
建議決策矩陣
| 場景 | 推薦 | 理由 |
| 既有 WPF 專案維護 | 繼續 WPF | 遷移成本高,生態仍可用 |
| 新專案、團隊熟悉 .NET、需豐富 UI | WPF (謹慎) 或 ASP.NET Core + Blazor | Blazor 提供類桌面體驗、跨平台、無外掛 |
| 新專案、需零部署、跨裝置 | ASP.NET Core (MVC/Razor Pages/Blazor) | 最穩健長期投資 |
| 必須離線、高效能、硬體存取 | WPF / WinForms | 瀏覽器沙箱限制 |
| 團隊只有 Web 技能 | ASP.NET Core | 避免學習曲線 |
結語
微軟技術棧處於過渡期,桌面 LOB 無明確繼承者。ASP.NET Core + Blazor 是目前最接近「寫一次、到處跑、類桌面體驗」的選擇。若堅持桌面,WPF 仍可用但需接受長期維護風險。建議新專優先評估 Web 技術棧,除非有硬性離線/硬體需求。