「Windows 即服務」應用程式開發

適用於

  • Windows 11
  • Windows 10
  • Windows 10 Mobile
  • Windows 10 IoT 核心版

在今日的環境中,使用者期望經常是依照以裝置為主的體驗去設定,完整的產品週期需以月計,而非以年計。 此外,新發行版本還必須能持續使用,並且需以最不影響使用者的方式部署。 Microsoft 藉由實作創新式開發與傳遞的新方法 (稱為 Windows 即服務 (WaaS)),設計出符合這些需求的 Windows 10。 既可明顯縮短產品週期,同時又能兼顧高品質水準,其關鍵就在於 Microsoft 為 Windows 10 實作以社群為主的創新測試方法。 社群又稱為 Windows 測試人員,包含世界各地數百萬名使用者。 當 Windows 測試人員選擇加入社群後,可透過稱為「正式發行前小眾測試」的循環方法,在產品週期進程中測試許多組建,並提供意見反應給 Microsoft。

以「正式發行前小眾測試版」方式散發的組建,可提供 Windows 工程團隊有關組建實際使用情況的重要資料。 配合 Windows 測試人員執行的「正式發行前小眾測試」,也可讓 Microsoft 在比過去更多樣化的硬體、應用程式和網路環境中測試組建,以更快找出問題。 因此,Microsoft 認為以社群為主的「正式發行前小眾測試」將可加快創新式傳遞的速度,還能提供更勝以往的公開發行品質。

Windows 10 和 Windows 11 版本類型和步調

Microsoft 會發行「正式發行前小眾測試版」給 Windows 測試人員,同時也會持續公開發行兩種類型的 Windows 10 和 Windows 11 發行版本:

「功能更新」會在已執行 Windows 10 的裝置上安裝最新近的特色、體驗及功能。 由於功能更新包含完整的 Windows 複本,因此也是客戶在執行 Windows 7 或 Windows 8.1 的現有裝置或未安裝任何作業系統的新裝置上安裝 Windows 10 的選擇。 Microsoft 預計每半年發佈一次更新。

「品質更新」會提供安全性問題解析及其他重要的錯誤修正。 「品質更新」是以每個月一次或多次的頻率推出,以改善目前支援中的每項功能。 Microsoft 仍會持續在「週二更新日」(有時稱為「週二修補程式日」) 發行品質更新。 此外,為因應客戶需求,Microsoft 可能會在「週二更新日」程序外發行其他 Windows 10 品質更新。

在 Windows 10 開發期間,Microsoft 簡化了 Windows 產品工程及發行週期,讓我們可以前所未有的速度提供客戶想要的特色、體驗與功能。 我們也建立了新的方式來傳遞和安裝功能更新與品質更新,可簡化部署和持續性管理,擴大使用最新 Windows 功能和體驗的員工群,並降低擁有權總成本。 因此,我們已實作新的維護選項 – 稱為「半年通道」和「長期維護通道」(LTSC) – 提供實用的解決方案,相較於從前,能讓企業環境中更多的裝置保持更新的狀態。

下表描述各種維護通道及其主要屬性。

維護選項 可安裝新功能升級的時機 維護存留期 重點優勢 支援的版本
半年度管道 (目標式) Microsoft 首次發行後即可安裝 18 個月 讓使用者能儘快使用新功能 家用版、專業版、教育版、企業版、行動裝置版、IoT 核心版、Windows 10 IoT 核心專業版 (IoT 核心專業版)
半年通道 Microsoft 首次發行後約 4 個月 從第一次發佈算起 18 個月 提供額外的時間,以在部署前先測試新功能升級 專業版、教育版、企業版、行動裝置企業版、IoT 核心專業版
長期維護通道 (LTSC) Microsoft 發行後即可安裝 10 年 可透過少量變更組態的方式長期部署選定的 Windows 10 發行版本 企業版 LTSB

如需詳細資訊,請參閱 Windows 10/11 更新與升級維護選項

以「Windows 即服務」支援 app

支援 app 的傳統方式是釋出新的 app 版本,以回應 Windows 版本。 這會假設基礎作業系統中有重大變更而可能導致應用程式迴歸。 此模型需要專屬的開發與驗證週期,我們的 ISV 合作夥伴必須與 Windows 發行頻率配合。

在「Windows 即服務」模型中,Microsoft 承諾維護基礎作業系統的相容性。 這表示 Microsoft 會致力於確保不會有對於 app 生態系統造成負面影響的重大變更。 在此案例中,當 Windows 組建發行時,大部分的 app (不具備核心相依性) 將會繼續運作。

基於此變更,Microsoft 建議我們的 ISV 合作夥伴將他們 app 的發行與支援從特定的 Windows 組建中分離。 我們彼此的客戶能夠透過應用程式生命週期方法得到更好的服務。 這表示當應用程式版本發行時,該版本將在某一段期間內受到支援,無論那段期間內有多少 Windows 組建發行。 ISV 承諾只要 app 在生命週期中受到支援,就提供該特定版本的 app 支援。 Microsoft 對於 Windows 也遵循類似的生命週期方法,可在這裡參考。

這個方法會減少將 app 排程與 Windows 版本維持一致的負擔。 ISV 合作夥伴應該可以自由地以他們本身的步調來發行功能或更新。 我們認為我們的合作夥伴可透過和 Windows 版本無關的最新 app 更新讓他們的客戶維持在最新狀態。 此外,我們的客戶不需要在 Windows 組建發行時尋找明確的支援聲明。 以下是支援聲明的範例,涵蓋 app 可能受不同版本作業系統支援的方式:

應用程式生命週期支援聲明的範例

Contoso 是軟體開發公司,也是最熱門的 Mojave app 擁有者,在企業領域中佔有重要的一席之地。 Contoso 發行其下一個主要版本 Mojave 14.0,並且宣告主要支援為自發行日起三年的期間。 在主要支援期間,所有的更新與支援均免費提供給授權產品。 Contoso 也宣告額外的兩年延伸支援,客戶可購買寬限期間的更新與支援。 延伸支援結束日期之後,就不再支援此產品版本。 在主要支援期間,Contoso 將在所有發行的 Windows 組建上支援 Mojave 14.0。 Contoso 也會視需要發行 Mojave 的更新,此更新與 Windows 產品版本無關。

在下列章節中,您會找到 Microsoft 為維持基礎作業系統相容性所採取之步驟的其他資訊。 您也會找到可採取之步驟的指導方針,協助您維護組合作業系統與 app 生態系統的相容性。 另外有章節說明如何利用 Windows 正式發行前小眾測試組建,在 Windows 組建發行之前偵測 app 迴歸。 最後,我們說明如何使用檢測與遙測導向方法,來提高 Windows 組建的品質。 我們建議 ISV 對他們的 app 組合採用類似的方法。

Windows 7 以來的主要變更,以確保 app 相容性

我們了解對於開發人員來說,相容性非常重要。 ISV 與開發人員希望確保他們的 app 可在所有支援的 Windows 作業系統版本上如預期般運作。 消費者與企業的主要投資在這裡—他們希望確保他們付費使用的 app 可以持續運作。 我們了解相容性是採購決策的主要條件。 根據最佳做法撰寫良好的 app,在 Windows 新版本發行時會產生較少的程式碼轉換,並減少片段—這些 app 可降低維護工程投資,並且可以較快投入市場。

在 Windows 7 時期,是以非常被動的方式處理相容性問題。 在 Windows8 中,我們開始以不同的觀點,在 Windows 內盡力確保在設計時便將相容性納入考量,而非在事後補救。

Windows 10 是到目前為止最符合「透過設計提供相容性」的 OS 版本。 以下是我們達成這項目標的主要方法:

  • 應用程式遙測:這協助我們了解應用程式在 Windows 生態系統中的熱門程度,以提供資訊給相容性測試。
  • ISV 合作關係:與外部合作夥伴直接合作以提供資料給他們,並協助修正我們的使用者遇到的問題。
  • 設計檢閱、上游偵測:與功能小組合作,以減少 Windows 的重大變更數目。 相容性檢閱是功能小組必須通過的門檻。
  • 通訊:更嚴格的控制 API 變更與改進溝通。
  • 正式發行前小眾測試與意見反應循環:Windows 測試人員接收的正式發行前小眾測試組建可幫助我們先找出相容性問題,再將最終組建發行給客戶。 這個意見反應程序不僅能揭露錯誤,也確保我們推出的是使用者想要的功能。

App 相容性的最佳做法

Microsoft 使用診斷與使用狀況資料來識別問題並進行疑難排解、改進我們的產品與服務,以及為使用者提供個人化體驗。 我們收集的使用狀況資料也會延伸到在 Windows 生態系統內的電腦上執行的 app。 根據客戶所使用的項目,我們會建立清單以針對新版本的 Windows 作業系統測試這些 app、裝置和驅動程式。 Windows 10 是目前具有最高相容性的 Windows 版本,針對數千個常用的 app 具有超過 90% 的相容性。 Windows 相容性小組在發現問題時,通常會和我們的 ISV 合作夥伴連絡以提供意見反應,以方便我們合作找出解決方案。 在理想的情況下,我們希望我們的一般客戶可以順暢地更新 Windows,而不會遺失他們作業系統中的功能,或是他們所依賴、用於生產或娛樂的 app。

下列章節包含一些 Microsoft 建議的最佳做法,讓您可以確保您的 app 與 Windows 10 相容。

Windows 版本檢查

作業系統版本已遞增為 Windows 10。 這表示內部版本號碼已經變更為 10.0。 在過去,於 OS 版本變更之後,我們需要竭盡全力地維持應用程式與裝置相容性。 對大多數的應用程式類別 (不具有任何核心相依性) 而言,變更不會對應用程式功能造成負面影響,而現有的應用程式將會繼續在 Windows 10 上正常運作。

此變更的表現是依 App 而定。 這表示任何會特別檢查 OS 版本的 app 將會取得較高的版本號碼,這可能導致下列一或多種情況:

  • App 安裝程式可能無法安裝 app,且 app 可能無法啟動。
  • App 可能會不穩定或當機。
  • App 可能會產生錯誤訊息,但會繼續正常運作。

某些 app 會執行版本檢查,並傳遞警告給使用者。 不過,有些 app 會與版本檢查緊密繫結 (於驅動程式或是核心模式中以避免偵測)。 在這些情況中,如果找到不正確的版本,app 將會失敗。 相較於版本檢查,我們建議下列其中一種方法:

  • 如果 app 依存於特定的 API 功能,請確定您有將正確的 API 版本作為目標。
  • 請確定您是透過 APISet 或另一個公用 API 偵測變更,並且不要使用版本做為某些功能或修正的代表。 如果有重大變更,且並未適當檢查,該變更就會變成是錯誤。
  • 請確定 app「不會」以奇特的方法檢查版本,例如透過登錄、檔案版本、位移、核心模式、驅動程式或其他方法。 如果 app 一定要檢查版本,請使用 GetVersion API,這應該會傳回主要、次要與組建編號。
  • 如果您正在使用 GetVersion API,請記住這個 API 的行為自 Windows 8.1 後已經變更。

如果您擁有像反惡意程式碼軟體或防火牆應用程式這樣的 app,您應該透過平常使用的意見反應管道和 Windows 測試人員計畫進行。

未記載的 API

您的 app 不應該呼叫未記載的 Windows API,或相依於特定的 Windows 檔案匯出或登錄機碼。 這會導致功能無法運作、資料遺失,以及潛在的安全性問題。 如果您 app 需要的功能無法使用,您可透過平常使用的意見反應管道及 Windows 測試人員計畫提供意見反應。

開發通用 Windows 平台 (UWP) 與 Centennial app

我們鼓勵所有的 Win32應用程式ISV 開發通用 Windows 平台 (UWP) 以及,日後的 Centennial 應用程式。 比起使用傳統的 Win32 安裝程式,開發這些應用程式套件有許多絕佳好處。 Microsoft Store 中也支援 UWP 應用程式,這可讓您更容易地將使用者自動更新至一致的版本,減低您的支援成本。

如果您的 Win32 App 類型無法與 Centennial 模型搭配運作,強烈建議您使用正確的安裝程式並確定已經過完整測試。 安裝程式是您的使用者或客戶使用您的 app 時的第一項體驗,因此請確定它運作良好。 很多時候安裝程式無法正常運作,或未經過所有案例的完整測試。 Windows 應用程式認證套件可協助您測試 Win32 app 的安裝與解除安裝,並協助您比使用者先識別出未記載的 API 使用,以及其他基本效能相關的最佳做法問題。

最佳做法

  • 使用可在 32 位元及 64 位元版本 Windows 中運作的安裝程式。
  • 將您的安裝程式設計為在多種案例上執行 (使用者或電腦層級)。
  • 將所有的 Windows 可轉散發檔案保留在原始封裝中 – 如果您重新封裝這些檔案,可能會破壞安裝程式。
  • 為您的安裝程式排程開發時間—這些通常會在軟體開發週其中忽略為可交付項目。

最佳化測試策略與正式發行前小眾測試

「Windows 作業系統正式發行前小眾測試」指的是在最終組建發行給大眾之前,提供給 Windows 測試人員的過渡期組建。 越多測試人員針對這些過渡性組建進行正式發行前小眾測試,我們就可以收到越多關於組建品質、相容性等等的意見反應,這有助於改進最終組建的品質。 您可以參與此正式發行前小眾測試計畫,以確保您的 app 可在迭代的作業系統組建上如預期般運作。 我們也鼓勵您提供這些正式發行前小眾測試之組建運作的意見反應、遭遇的問題等等。

如果您的 app 在市集中,您可以透過市集發行您的 app 正式發行前小眾測試版,這表示您的 app 將可提供給我們的 Windows 測試人員安裝。 在您將 app 發行給大眾之前,使用者可安裝您的 app,且您可以收到 app 的初步意見反應。 以下章節說明針對 Windows 正式發行前小眾測試組建測試您 app 的步驟。

步驟 1:成為 Windows 測試人員,並參與正式發行前小眾測試

身為 Windows 測試人員,您可以協助我們打造未來的 Windows—您的意見反應將會協助我們改進平台特色的功能。 這是充滿活力的社群,您可以與其他愛好者連繫、加入論壇、交換建議,並了解即將到來的測試人員專屬活動。

既然您已經可以存取 Windows 10 和 Windows 10 行動裝置版預覽版,及最新的 Windows SDK 與模擬器,您就擁有所有的工具且任您使用以開發優秀的應用程式,並探索通用 Windows 平台和 Microsoft Store 的新功能。

這也是建置出色硬體的絕佳機會,有了硬體開發套件的預覽版,讓您可以開發適用於 Windows 的通用驅動程式。 在支援的 IoT 開發主機板上也可以使用 IoT Core Insider Preview,讓您可以使用通用 Windows 平台建置優秀的連線解決方案。

成為 Windows 測試人員之前,請注意參與條件適用於使用者為:

  • 想要嘗試仍在開發中的軟體。
  • 想要分享有關軟體與平台的意見反應。
  • 不介意會有許多更新或可能會隨著時間而有大幅變更的 UI 設計。
  • 非常清楚操作電腦的各種方式,而且非常樂於解決各種問題、備份資料、格式化硬碟、從頭安裝作業系統,或是在必要時還原舊的作業系統。
  • 了解什麼是 ISO 檔案以及如何使用它。
  • 不會將它安裝在日常工作電腦或裝置上。

步驟 2:測試您的案例

一旦您已更新為正式發行前小眾測試的組建,以下是一些範例測試案例以協助您開始測試並收集意見反應。 針對大多數這類測試,請確定您涵蓋 x86 與 AMD64 系統。 全新安裝測試:在 Windows 10 的全新安裝上,確定您的應用程式是否能完全正常運作。 如果您的 App 無法通過此測試和升級測試,則該問題可能是基礎 OS 變更或 App 中的錯誤所造成。 如果在調查後確認情況是前者,請務必使用「Windows 測試人員計畫」來提供意見反應並合作開發解決方案。

升級測試:從下級版本 Windows (亦即 Windows 7 或 Windows 8.1) 升級到 Windows 10 之後,檢查應用程式的運作情況。 您的 App 不應在升級期間造成回復,並且在升級後應該如預期般運作 — 這對達成順暢升級體驗而言非常重要。

重新安裝測試:確定在您將電腦從下層作業系統升級到 Windows 10 後,應用程式功能可藉由重新安裝應用程式還原。 如果您的 App 無法通過升級測試,而且您未能縮小這些問題原因的範圍,則重新安裝可能可以還原遺失的功能。 通過重新安裝測試表示 App 的組件可能尚未移轉至 Windows 10。

OS\裝置功能測試: 如果您的應用程式依賴 OS 中的特定功能,請確定您的應用程式如預期般運作。 常見的測試領域包括下列各項,通常是針對精選的常用電腦型號以確保涵蓋範圍:

  • 音訊
  • USB 裝置功能 (鍵盤、滑鼠、隨身碟、外接式硬碟等等)
  • 藍牙
  • 圖形\顯示器 (多重監視器、投影、旋轉螢幕等等)
  • 觸控式螢幕 (方向、螢幕小鍵盤、手寫筆、手勢等等)
  • 觸控板 (左\右鍵、點選、捲動等等)
  • 手寫筆 (點一下\點兩下、按下、按住不放、橡皮擦等等)
  • 列印\掃描
  • 感應器 (加速計、融合等等)
  • 相機

步驟 3:提供意見反應

讓我們知道您的 app 正針對正式發行前小眾測試組建執行的狀況。 當您在測試期間發現您的 app 有問題時,請透過合作伙伴入口網站記錄錯誤 (如果您擁有存取權限,或透過您的 Microsoft 代表)。 我們鼓勵這項資訊,讓我們可以為使用者一同建置高品質的體驗。

Windows 10/11 更新與升級維護選項