UWP 是為 Windows 建立客戶端應用程式的眾多方法之一。
注意
如果你開始開發Windows應用程式,我們建議你考慮使用 Windows 應用程式 SDK,以及 WinUI 取代 UWP。 雖然仍受支援,但 UWP 未處於積極開發階段。 更多資訊請參閱 開始開發 Windows 應用程式。
要下載開始建立 Windows 應用程式所需的工具,請參考 安裝 Windows 應用程式 SDK 的工具,然後 撰寫你的第一個應用程式。
UWP 在 Microsoft 的開發故事中扮演什麼角色?
UWP 是開發可在 Windows 10 和 Windows 11 裝置上運行的應用程式的一種選擇,且可與其他平台結合使用。 UWP 應用程式可以使用 Win32 API 和 .NET 類別(參見 API 集合用於 UWP 應用程式、Dlls 用於 UWP 應用程式,以及 .NET用於 UWP 應用程式)。
UWP 應用程式的功能
UWP 應用程式:
- 安全:UWP 應用程式會宣告它們存取的裝置資源和資料。 使用者必須授權該存取。
- 能在所有執行 Windows 的裝置上使用通用 API。
- 可以使用裝置特定的功能,以及配合不同的裝置螢幕大小、解析度與 DPI 調整 UI。
- 可於 Microsoft Store 取得,適用於所有運行 Windows 10 或 Windows 11 的裝置(或僅您指定的裝置)。 Microsoft Store 提供多種方式讓你的應用程式賺錢。
- 可以安裝和解除安裝,不會對電腦造成風險或引起「電腦性能下降」。
- 互動:使用即時磁貼、推送通知,以及與 Windows 時間軸和 Cortana 的「從上次中斷的地方繼續」互動的使用者活動,來吸引使用者。
- 可程式化使用 C#、C++、Visual Basic 及 JavaScript。 對於 UI,使用 WinUI、XAML、HTML 或 DirectX。
讓我們更仔細看看這些。
安全
UWP 應用程式在資訊清單中宣告他們所需的裝置功能,例如存取麥克風、定位、網路攝影機、USB 裝置、檔案等等。 使用者必須認可並授權該存取之後,才能授與應用程式能力。
跨所有裝置的通用 API 表面
Windows 10 推出了 Universal Windows Platform (UWP),為每台執行 Windows 的裝置提供共用的應用程式平台。 UWP 核心 API 在所有 Windows 裝置上都是相同的。 如果你的應用程式只使用核心 API,無論你是針對桌機、Xbox、混合實境頭戴裝置等,都能在任何 Windows 裝置上運行。
以 C++/WinRT 撰寫的 UWP 應用程式具有屬於 UWP 之 Win32 API 的存取權。 這些 Win32 API 由所有 Windows 裝置實作。
擴充功能 SDK 會公開特定裝置類型的獨特功能
如果你鎖定通用 API,那麼你的應用程式可以在所有運行 Windows 10 或更新版本的裝置上執行。 但如果您想要讓 UWP 應用程式利用裝置特定的 API,則您也可以這麼做。
擴充功能 SDK 可讓您為不同裝置呼叫特殊的 API。 例如,如果您的 UWP 應用程式的目標是 IoT 裝置,您可以將 IoT 擴充功能 SDK 新增至您的專案,將特定功能瞄準 IoT 裝置。 如需新增擴充功能的 SDK 的詳細資訊,請參閱使用擴充功能 SDK 進行程式設計中的擴充功能 SDK 一節。
你可以寫應用程式,期望它只在特定類型的裝置上運行,然後限制它從 Microsoft Store 的發行只在該類型的裝置上。 或者,您也可以在執行期間條件式地測試 API 並據以調整您的應用程式行為。 如需詳細資訊,請參閱使用擴充功能 SDK 進行程式設計中的撰寫程式碼一節。
調適型控制項和輸入
UI 元素因應應用程式所執行的螢幕大小和 DPI 來調整它們的版面配置和縮放比例。 UWP 應用程式能透過數種輸入方式操作,包括鍵盤、滑鼠、觸控、手寫筆與遊戲控制器。 如果您需要進一步調整您的 UI 以適合特定畫面大小或裝置,新的配置面板和工具可以協助您設計可因應您的應用程式所執行的不同裝置和外形規格的 UI。
Windows 提供以下功能,協助你將使用者介面針對多個裝置進行目標設定:
- 通用控制項與配置面板可協助您針對裝置的螢幕解析度最佳化您的 UI。 例如,按鈕和滑桿等控制項會自動調整以符合裝置螢幕大小與 DPI 密度。 配置面板可協助您根據螢幕大小調整版面配置。 裝置上自適應縮放會針對解析度和 DPI 差異進行調整。
- 通用輸入處理可讓您透過觸控、手寫筆、滑鼠、鍵盤,或遊戲控制器接收輸入。
- 工具會協助您設計可因應不同螢幕解析度的 UI。
您的應用程式 UI 的某些層面會在不同裝置上自動調整。 不過,您的應用程式使用者經驗設計可能需要依據應用程式執行所在的裝置進行調整。 例如,在小型、手持裝置上執行相片應用程式時可調整其 UI,以確保適合單手操作使用。 在桌上型電腦上執行相片應用程式時,應該調整 UI 以充分利用額外的螢幕空間。
還有一個適用於所有裝置的市集。
統一的應用程式商店讓你的應用程式能在 Windows 裝置上使用,如 PC、平板、Xbox、HoloLens、Surface Hub 以及物聯網(IoT)裝置。 您可以將應用程式提交至 Microsoft Store,使其可用於所有類型的裝置,或僅適用於您選擇的裝置。 你可以在同一個地方提交和管理所有 Windows 裝置的應用程式。 有一款 C++ 桌面應用程式想加入 UWP 功能,並在 Microsoft 商店販售嗎? 這也沒有問題。
UWP 應用程式與 Application Insights 整合以進行詳細的遙測和分析,這是一項重要工具,可用以了解您的使用者並提升您的應用程式。
UWP 應用程式可以與
從您的應用程式獲利
您可以選擇從您的應用程式獲利的方式。 有數種方法可以利用您的應用程式來賺錢。 您只需要選擇一個最適合您的方式,例如:
- 付費下載是最簡單的選項。 只要訂出價格即可。
- 試用版讓使用者在購買應用程式之前先試用,提供比傳統「免費增值」選項更為簡單的可搜尋性和轉換。
- 以優惠價格激勵使用者。
- 在應用程式內購買。
傳送相關、即時的資訊給您的使用者,並吸引他們更頻繁使用您的應用程式
有多種方法可以讓使用者保持對您的 UWP 應用程式的興趣:
- 動態磚和鎖定畫面磚能讓您一目了然地看到您的應用程式中與情境相關且即時的資訊。
- 推播通知可提供即時的警示吸引使用者的注意。
- 使用者活動可讓使用者即使跨裝置也能在您的應用程式中接續未完成的部分。
- 控制中心可組織整理來自您應用程式的通知。
- 背景執行和觸發會在使用者需要您的應用程式時,讓應用程式開始運作。
- 您的應用程式可以使用語音和藍牙 LE 裝置,來協助使用者與外界互動。
- 整合 Cortana 以新增語音命令功能至您的應用程式。
使用您已知的語言
UWP 應用程式使用 Windows 執行階段,這是作業系統提供的原生 API。 此 API 以 C++ 實作,並支援 C#、Visual Basic、C++ 及 JavaScript。 撰寫 UWP 應用程式的部分選項包括:
- XAML UI 和 C#、VB 或 C++
- DirectX UI 和 C++
- JavaScript 和 HTML
- WinUI
連結可協助您開始
準備就緒
請查看開始設定,下載開始建立應用程式所需的工具,然後撰寫第一個應用程式。
設計您的應用程式
Microsoft 的設計系統名為 Fluent。 流暢設計系統是一套結合 UWP 功能與最佳實務的組合,旨在打造在各種 Windows 裝置上表現優美的應用程式。 Fluent 體驗在平板電腦、筆記型電腦、個人電腦、電視到虛擬實境裝置上皆能適應並感覺自然流暢。 如需 Fluent Design 簡介,請參閱適用於 UWP 應用程式的 Fluent Design 系統。
良好的設計是決定應用程式與使用者的互動方式、外觀,以及功能的程序。 使用者經驗在判斷使用者使用您的應用程式時有多愉快佔有舉足輕重的地位,因此請不要跳過這個步驟。 Design Basics 介紹你如何設計通用Windows應用程式。 請參閱裝置入門,協助您思考在目標裝置所有不同構成要素上使用您的應用程式的互動體驗。
除了在不同裝置上的互動之外,請妥善計劃您的應用程式以納入跨多個裝置工作的好處。 例如:
使用 UWP 應用程式導覽設計基本知識,規劃和設計適用於行動裝置、小螢幕與大螢幕裝置的流程。 配置您的使用者介面以回應不同的螢幕大小與解析度。
請考慮如何容納多個輸入類型。 請參閱互動的指導方針以了解使用者如何使用語音、觸控互動、觸控式鍵盤等等方式與您的應用程式互動。 或者,請參閱文字和文字輸入的指導方針以取得更多傳統互動體驗。
新增服務
- 使用 Azure 雲端服務 來跨裝置同步。
- 了解如何連線到 Web 服務以支援您的應用程式體驗。
- 在您的計劃中包含推播通知和在應用程式內購買。 這些功能應該可以跨裝置運作。
將您的應用程式提交到 Windows 市集
Partner Center 讓你能在同一個地方管理並提交所有 Windows 裝置的應用程式。 請參閱 Publish Windows 應用程式與遊戲 了解如何提交應用程式以供 Microsoft Store 發表。
新功能不只簡化程序,同時還讓您更好控制。 您在這裡還能找到結合支付詳細資料的詳細分析報告、促銷應用程式和吸引客戶的方式,以及更多好用功能。
更多入門資料請參見Windows 10 裝置應用程式開發入門指南
其他進階主題
- 學習如何使用 User Activities,讓應用程式中的使用者活動顯示在Windows時間軸和 Cortana 的「從我停下的地方繼續」功能中。
- 了解如何使用 UWP 應用程式的磚、徽章及通知。
- 如需可用於 UWP 應用程式之 Win32 API 完整清單,請參閱適用於 UWP 應用程式的 API 集合和適用於 UWP 應用程式的 Dll。
- 請參閱 .NET 中的通用 Windows 應用程式,以了解撰寫 UWP 應用程式的 .NET 概覽。
- 關於 UWP 應用程式中可用的.NET類型清單,請參見 .NET 關於 UWP 應用程式
- 使用 .NET 和原生 AOT 來現代化你的 UWP 應用程式 - 建議新舊的 UWP 應用程式採用以存取最新的 .NET 功能
- 使用 .NET Native 編譯應用程式 - 遺留工具鏈(僅安全更新)
- 學習如何將現代化功能整合到現有的桌面應用程式中,並使用 Desktop Bridge 在 Microsoft Store 中進行分發。
通用 Windows 平台 與 Windows 執行階段 API 的關聯
如果你正在打造一個 Universal Windows Platform (UWP) 應用程式,那麼將「Universal Windows Platform (UWP)」和「Windows 執行階段 (WinRT)」這兩個詞視為或多或少同義,可以獲得很大的便利與效益。 但「可以」深入了解技術,並判斷這兩個想法之間的差異。 如果您想知道,請參閱最後一節。
Windows 執行階段 與 WinRT API 是 Windows API 的演進版本。 最初,Windows 應用程式是使用 flat 的 C 風格 Win32 API 撰寫,並在這些基礎上加入了 COM API——DirectX 就是一個顯著例子。 後來的技術如 Windows Forms、WPF、.NET 以及受管語言,也提供了一種獨特的 Windows 應用程式撰寫方式,並擁有各自獨特的 API 技術風格。 在表面之下,Windows 執行階段 是 COM 的下一階段。 在實際的應用程式二進位介面 (ABI) 層,顯現出其與 COM 的淵源。 但與 COM 不同的是,Windows 執行階段 的設計是能以更自然的方式呼叫多種程式語言。 因此,存取 Windows 執行階段 是透過所謂的語言映射方式提供。 投影會隱藏 COM 詳細數據,併為指定的語言提供更自然的程式設計體驗。 Windows 執行階段 語言可投影到 C#、Visual Basic、標準 C++、JavaScript 等。 此外,一旦適當打包——參見 Desktop Bridge——你可以從多種應用模型中建置的應用程式呼叫 WinRT API:Win32、.NET、WinForms、WPF 和 UWP。
UWP 是一種建立在 Windows 執行階段 之上的應用程式模型。 從技術上看,UWP 應用程式模型是以 CoreApplication 為基礎,不過根據您選擇的程式設計語言,可能會隱藏該詳細數據。 UWP 適合撰寫單一的二進位檔,若你願意,可以發佈到 Microsoft Store,並能在上述各種裝置型態上執行。 UWP 應用程式的裝置覆蓋範圍取決於你限制應用程式呼叫或條件呼叫的 Windows 執行階段 API 子集。
希望本節已成功說明 Windows 執行階段 API 底層技術與 通用 Windows 平台 的機制與商業價值之間的差異。