2018 年 1 月

第 33 卷,第 1 期

本文章是由機器翻譯。

通用 Windows 平台 - .NET UWP 開發有什麼新進展?

奧 Jacobson |2018 年 1 月

2015 年 10 月中,在其中一個我們有為了撰寫.NET 通用 Windows 平台 (uwp) 的相關發行項 (msdn.com/magazine/mt590967)。與.NET uwp 從那時起,已經加入許多新,而且我們想要解決與新的發行項,可協助您取得開發人員了解這些變更。

自 2015 年 10 月,Microsoft 發行新版的 Visual Studio 2017、 幾個新的 Sdk (包含最新 Windows 10 年秋季建立者更新 SDK)、 Windows 應用程式封裝專案中,.NET 標準 2.0 支援、 NuGet 的增強功能、 新的新的社群導向工具包括 Windows 範本 Studio 和多個 fluent 應用程式開發設計系統。許多這些變更和 UWP 開發人員生態系統的增強功能的設計是為了讓您更輕鬆地將現有的.NET 資產移一層、 充分運用您的應用程式部署策略,在 Windows 10 上並加速您建置很好的 UWP 開發應用程式儘速。

Windows 10 年秋季建立者更新帶來更佳的 UWP 開發人員使用 Visual Studio 2017 版本 15.5 改善和更新版本提供 Windows 10 年秋季建立者更新 SDK (10.0.16299.0) 的最佳支援。最重要的變更包括企業應用程式、 簡化的應用程式部署,並且支援.NET 標準 2.0 和新 fluent 應用程式開發設計系統的新功能。讓我們來探索這些進階功能。

為企業應用程式的 Windows 中的新功能

Microsoft 識別需要企業開發人員在建置 Windows 應用程式在桌面的電腦上,可以改善 Windows 10 平台,並且已與 Windows 10 年秋季建立者更新此區域中進行重要的進步。

最佳的同時適用 UWP 和 Win32 Microsoft 已經改善桌面橋接器與為 Windows 10 平台 (aka.ms/desktopbridge) 來增強訴求對所有的.NET 開發人員而言,其目前的焦點是否出現在 UWP、 WindowsPresentation Foundation (WPF)、 Windows Forms 或 Xamarin。與 Visual Studio 2017 15.5 版本中的新應用程式封裝的專案類型,您可以針對 WPF 或 Windows Form 專案,建立 Windows 應用程式套件,就像您可以為 UWP 專案。

一旦您的應用程式封裝,您會取得所有 Windows 10 應用程式部署優點,包括以透過 Microsoft 市集 (取用者應用程式)、 商務和教育版的 Microsoft 市集或透過您最愛的應用程式部署的任何散發選項Intune 等選項。已封裝應用程式在桌面上,有完整的 UWP 應用程式開發介面介面及 Win32 Api 的存取權,因此可以現代化 WPF 和 Windows Form 應用程式逐漸 UWP 應用程式開發介面和 Windows 10 功能。您也可以包含 Win32 元件 UWP 應用程式中,讓它們變得更生動桌面上 Win32 功能。

安心使用者可以安裝應用程式生命而不需擔心它們包含惡意程式碼。安裝不需要系統管理員權限,以及每個應用程式安裝會隔離其他人,簡化管理。解除安裝都保證會是乾淨的與沒有 rot 中登錄或檔案系統或軟體安裝其他未預期的副作用。這種散發方法現在也會提供 WPF 和 Windows Form 應用程式使用 Windows 應用程式封裝專案。

企業安全性用 Windows Hello 啟用生物識別驗證的裝置和相容的應用程式。Windows 10 應用程式模型,可保護您透過 UWP 應用程式容器,讓使用者控制哪些應用程式可以和無法進行中的資料和系統健全狀況。此外,應用程式必須揭露其使用量的資源,例如位置或透過隱私權設定的使用者或 IT 系統管理員控制的麥克風。

針對桌面應用程式關閉間距關閉應用程式開發介面和功能之間的差距,UWP 和 Win32 桌面應用程式有助於在最新的改建立者更新版本。支援的.NET 標準 2.0 會大幅增加可用的 API 介面,同時提供先前未使用在 UWP 專案中的許多重要 NuGet 封裝的存取權。例如,企業開發人員最後會取得存取 SqlClient api 來直接與 SQL Server 資料庫溝通從其 UWP 專案。Microsoft 也會繼續改善桌面和企業案例 UWP 應用程式模型。命令列啟動、 自動啟動並執行完全信任或不受限制的執行存留期 (extendedBackgroundTaskTime 和 extendedExecutionUnconstrained) 的功能,已啟用新的更新。

簡化的應用程式部署

Microsoft 認為許多.NET 開發人員仍會建置 Windows Form 和 WPF 應用程式。除了讓儘可能使現有的資產向前輕鬆,公司以外的工具來解決現今許多開發人員所面臨的問題: 部署。Visual Studio 2017,它就能夠更輕鬆比以往若要利用桌面橋接器 (aka.ms/desktopbridge) 封裝的現有 Win32.NET 應用程式。

您當然可以提交 Win32 應用程式至 Microsoft 市集與 Windows 應用程式封裝的專案,但有許多其他的方式散發應用程式封裝為.appx。這些選項支援許多組織需要部署更具彈性。

您可以從 Windows 10 年秋季建立者更新開始,裝載您自己的.appx 安裝程式會自動叫用應用程式安裝程式從網站上。它很簡單,新增啟動配置 (ms appinstaller:? 來源 =) 至.appx 在網站上的連結。如需詳細資訊,直接網站上的部落格文章取出安裝這裡: bit.ly/2mJfIUI。這個方法可讓您輕鬆共用您組織內的應用程式,只要例如張貼在網站上的.appx 的連結。

您也可以建立應用程式安裝程式資訊清單,以支援自動封裝更新。此應用程式安裝程式技術提供 ClickOnce 像配置上方的其中一個優點是,自動更新,就可能發生在幕後-應用程式的使用者即使啟動之前,可以更新應用程式。若要深入了解如何建立您自己的自訂.appinstaller 檔案的應用程式自動更新通道私下託管的部署中,請檢查的部落格: bit.ly/2z4Fx3A

如果您需要更適用的裝置管理工具在組織中,您可以利用,並將應用程式使用 Microsoft Intune 散發 (bit.ly/2B7OnyR)。Windows 應用程式封裝專案是最快的路由,讓您輕鬆地透過 Microsoft Intune 管理的應用程式。

最後,您可以發佈您的應用程式,透過 Visual Studio 應用程式中心 (bit.ly/2AKpsjJ)。Visual Studio 應用程式中心可讓您快速部署到您的開發團隊或應用程式的測試版測試人員。您可以也很容易啟用分析會判斷哪些人使用您的應用程式,以及他們如何使用它們。

使用 Windows 應用程式封裝專案和許多頻道的.appx 套件的發佈,所以可以輕鬆地封裝及散發您的應用程式,您組織中的任何案例。

.NET 標準 2.0 的支援

Windows 10 年秋季建立者更新是為.NET 標準 2.0 提供支援的 Windows 10 的第一個版本。如果您不熟悉.NET 標準,您可以取得詳細資料,在許多aka.ms/dotnetstandard。實際上,.NET 標準是參考實作可實作任何.NET 平台的基底類別程式庫,是.NET Framework 中,.NET Core 或 Xamarin。標準.NET 目標是要盡可能.NET 開發人員在他們選擇 [使用任何.NET 平台之間共用程式碼的簡單。

有一些相似之處,使用可攜式類別程式庫 (PCL) 模型,以.NET 標準最大的差異是您沒有選擇哪一個平台,您的目標。如果您的目標平台實作基底類別程式庫所定義的標準,可運作的共用程式碼。.NET 標準相較於 PCLs 龐大的優勢是,與.NET 的標準支援引入新的.NET 平台時,您不需要修改您的共用程式碼程式庫,因為您不需要加入任何新的平台目標。 

.NET 標準早期反覆項目 (版本 1.x) 是絕佳的 start,但是.NET 標準 2.0 和 Windows 10 年秋季建立者的更新,Microsoft 已做出它大幅您更輕鬆地跨.NET 平台共用程式碼。.NET 標準 2.0 包含約 20,000 相較於任何 1.x 版本的多個 Api。此外,.NET 標準 2.0 被支援的.NET Framework 4.6.1,版以及適用於目標為 Windows 10 年秋季建立者更新的開發人員的 UWP 開發。我們將探討講述至今的詳細資訊,關於如何所有其運作的 <.NET 和 UWP 開發 > 一節。

.NET 標準 2.0 的其中一個其他大優點是它提供許多現有的.NET 應用程式 (是否 WPF 或 Windows Form) 的路徑向前復原。如果您的.NET 應用程式為目標.NET Framework 4.6.1 或更新版本中,您可以啟動成.NET 標準 2.0 程式庫移植您的程式碼後置。然後可以實作.NET 標準 2.0 任何.NET 平台上共用相同的程式碼。在.NET 標準相容性比較表圖 1示範如何支援在播放不同版本之間。

.NET 標準相容性比較表
圖 1.NET 標準相容性比較表

這表示您可以開始將程式碼移植到可重複使用程式庫,而且當您準備好時,您可以共用相同的程式碼在 UWP 應用程式、 Xamarin 應用程式、.NET Core 應用程式和多個。

協助您判斷您的程式碼應用程式開發介面相容的.NET Standard 2.0 中,Microsoft 建立將會產生報表,顯示哪些應用程式開發介面的可攜性分析器會與每個.NET 實作相容 (bit.ly/2zlgrBz).您也可以查看逐步說明整個的移轉程序,從 UWP 應用程式在 Windows Form.NET 應用程式的.NET Conf 2017 的有用 Channel9 影片bit.ly/2j9TB52

Fluent 應用程式開發設計系統

使用的運算裝置和混合的現實式演進,已發展 Windows 設計的系統,也不可或缺。若要解決此 shift,Microsoft 發行 fluent 應用程式開發設計系統 (fluent.microsoft.com)。之上五個建置組塊概念 — light、 深度、 影片、 資料和小數位數,此系統設計來支援新一代的 UX 跨裝置類型。

Windows 10 年秋季建立者更新中,您已經可以看到 fluent 應用程式開發的成品進行其方法,在 Windows 10 及應用程式開發。若要查看 Fluent 在動作中設計的好方法是在 GitHub 上的 UWP 範例看看 XAMLUIBasics 範例 (bit.ly/2mK4pvH)。

其他範例 (顯示在圖 2) 示範 fluent 應用程式開發的設計原則,更著重企業案例中,請參閱aka.ms/eshopuwp/src。在此範例中,您可以看到提供瀏覽窗格中的複合層 acrylic 材料。您也可以查看淺色會用來反白顯示 [加入新項目]] 瀏覽按鈕的效果。

在動作中 fluent 應用程式開發設計
圖 2 fluent 應用程式開發設計中的動作

Visual Studio 2017 的增強功能

有相較於 Visual Studio 2015 的 Visual Studio 2017 中許多增強功能。在這裡,我們會反白的一些最重要做出有影響力 IDE 新功能。

讓我們開始使用最新工具,Visual Studio 2017。其中一個 Visual Studio 2017 優先順序的核心內容是要讓安裝程式,以快速且儘可能輕鬆。一旦您開始安裝 Visual Studio 2017,立即認得改善透過 Visual Studio 2015。

項目開始使用 Visual Studio 安裝程式 (請參閱圖 3),可讓您管理 [Visual Studio 2017 的所有安裝。它支援案例導向擷取與專為開發人員需要完成其工作的工作負載的簡介。工作負載會產生它,以便您只安裝您的需要而且並非所有的 Visual Studio 2015 的額外內容需要這麼久才能安裝。此外,Visual Studio 2017 的執行個體可以是已安裝的並存,因此您可以安裝預覽版本 (visualstudio.com/vs/preview) 和零售版 (visualstudio.com) 在同一個機器。這可讓您試用的最新及最佳功能,而不會影響您的生產環境。

Visual Studio 安裝程式
圖 3 Visual Studio 安裝程式

此外,從 Windows 10 建立者更新 (10.0.15063.0) 開始,SDK 安裝可以會設定位並存,以及。現在您可以註冊使用 Windows 測試人員計畫 (insider.windows.com) 和 out 預覽 Sdk,再試一次而不會中斷您的生產環境。

XAML 設計工具的增強功能

Visual Studio 2017 版本 15.4 XAML 設計工具引進某些極端的更新。這些更新會置於數個設計考量,包括:

  • 大幅提升設計工具的效能
  • 高逼真度設計工具介面,尤其被著重於呈現新 Windows fluent 應用程式開發設計系統所導入的成品
  • 為了盡可能降低分心,並最大化的設計介面中的開發人員生產力較少設計工具的例外狀況
  • 改善 UX 設計工具不中斷或變更 Visual Studio 和 Blend 中的現有 XAML 程式開發
  • 更新的工具,可協助最大化建置的 Windows 經驗的開發人員的產能。

這些設計工具的更新需要重新思考設計工具的基礎架構。對 Windows 開發人員在短期內的影響是工具的 Microsoft 必須重建大部分的開發人員已經成長熟悉。若要管理這項挑戰,Microsoft 只已發行至 XAML 設計工具以 Windows 10 年秋季建立者更新 (10.0.16299.0) 為目標的 UWP 開發人員更新或更新版本。您可以閱讀在更詳盡的更新aka.ms/uwpsiblog

Windows 應用程式封裝的專案

若要簡化與 Windows 10 的應用程式部署,您現在可以建立新的專案類型呼叫 Windows 應用程式封裝專案。此專案可讓您將參考加入至 Win32 應用程式 (例如,Windows Form 和 WPF),並封裝這些使用.appx 封裝格式。

利用這個專案的很簡單。只要將新的 Windows 應用程式封裝專案加入至方案,並將參考加入至 Win32 應用程式使用應用程式] 節點中所示圖 4

WapProj 示範
圖 4 WapProj 示範

若要建立套件,Windows 應用程式封裝的專案上按一下滑鼠右鍵,然後選取存放區 |建立應用程式套件。輸出會是.appx,您可以部署在本文的 「 簡化應用程式部署 」 區段中使用任何提及的方法。

NuGet 的增強功能

Visual Studio 2017,所有的.NET UWP 應用程式利用的 NuGet 封裝參考模型,將 NuGet 封裝加入專案 (bit.ly/2AXDDlz)。NuGet 封裝會參照提供 NuGet 封裝的作者和 NuGet 套件取用者的幾個優點。

PackageReference 有直接的 MSBuild 整合,可讓多個專案的封裝管理等新案例。我們來看一個範例。假設您在企業具有橫跨所有 (或多個) 的專案,您的企業所產生的核心程式庫中運作。傳統上,當做出該文件庫的更新,取用該封裝每個專案需要更新以利用最新版本的參考。PackageReference,與您的企業可以建立共用的 MSBuild 目標取得匯入到每個專案,並更新您的核心程式庫時,您可以更新自訂的 MSBuild 目標中的版本。匯入 MSBuild 目標現在將會參考更新的版的程式庫不需要更新每個單一專案的每個專案。

此外,MSBuild 整合可以讓條件式封裝參考可提供更細微地控制您的專案相依性。讓我們考量有相同的範例,但現在產生偵錯 」 和 「 發行版本的核心程式庫。共用的 MSBuild 目標無法指定條件的封裝相依性,使用在偵錯程式庫版本建置的使用程式庫專案的偵錯。如此一來,您會有非最佳化的版本的程式庫提供最佳的偵錯體驗。您可以設定條件式的相依性,然後切換到發行版本的核心程式庫建置發行版本的專案時。

最後,對於 NuGet 封裝的作者,您可以利用平台多目標單一 NuGet 封裝中。多目標平台的一個絕佳的使用案例發行單一 NuGet 封裝來支援所有的.NET 平台。假設您先前建立並管理在您想要更新,以支援.NET 標準 2.0 的 NuGet 的.NET Framework 程式庫。最新版的 NuGet 封裝可以維護兩種實作,因此永遠都適用,不論使用的專案最新版的封裝。比方說,如果您有.NET Framework 4.5 實作和.NET 標準 2.0 實作,任何.NET 應用程式的目標.NET Framework 4.5 或更新版本或.NET 標準 2.0 實作將無法使用 NuGet 封裝。UWP 開發專案的 TargetPlatformMinVersion 是相互關聯指定的平台。如果您的 TargetPlatformMinVersion 是大於或等於 NuGet 封裝中指定的平台,可在專案中參考 NuGet 封裝。

在 Visual Studio 2015 中,.NET Native 編譯器已隨附於 Visual Studio 的一部分。即使 UWP 開發的.NET Core 實作已隨附的一組 NuGet 封裝,開發人員必須面臨時.NET 原生稍微片段化的體驗。Visual Studio 2017,所有適用於.NET UWP 開發船隻一部分.NET 實作 UWP NuGet 封裝,包括.NET Native。這可讓您彈性地移動您的步調 — 指定您需要的而且您知道適用於您的應用程式的.NET 的版本。

Standard 2.0.NET 和 UWP 開發

先前所述在本文中會是.NET 標準 2.0 適用於 Windows 10 年秋季建立者 update。若要充分利用.NET 標準 2.0 實作,您必須設定您的 Windows 10 年秋季建立者更新或更新版本,UWP 專案的 TargetPlatformMinVersion 中所示圖 5。您也必須參考 Microsoft.NETCore.UniversalWindowsPlatform NuGet 封裝版本 6.0 或更新版本。

.NET 標準 2.0 相容 UWP 應用程式
圖 5.NET 標準 2.0 相容 UWP 應用程式

Microsoft.NETCore.UniversalWindowsPlatform NuGet 封裝會利用平台開發 UWP 多目標功能支援,讓您可以一律更新至最新版的封裝。如果您要建置具有的 TargetPlatformMinVersion,小於 Windows 10 年秋季建立者更新、 NuGet 還原程序將.NET Core 適用於 Windows 10 的.NET 標準 1.4 實作中的應用程式。如果您將設定為 Windows 10 年秋季建立者更新或更新版本的 TargetPlatformMinVersion,NuGet 會顯示在.NET Core 適用於 Windows 10 的.NET 標準 2.0 實作。現在,這是大量文字,則表示您是您應該無需擔心要參考的 NuGet 封裝版本。您一律可以參考最新,它一定都可運作,不論您 Windows 10 的目標。 

有用的開放原始碼專案

最後,我們想要讓您可用來加速開發 UWP 一些很有幫助的開放原始碼專案。包括 Windows 範本 Studio、 UWP 社群工具組和 Telerik 控制項 UWP 開發。

Windows 範本 Studio Windows 範本 Studio (示圖 6) 是開發 UWP 的動態範本產生器。它是最快速的方式開始建置可實際執行的 UWP 應用程式。它可利用的程式開發,最佳作法,並可讓您建立許多檢視、 背景工作和多個簡單精靈經驗。在組織中的所有新應用程式開發中使用 Windows 範本 Studio 可協助確保應用程式一致的外觀及操作,並且鼓勵大家應用程式架構的最佳作法。建置、 維護和更新的 Windows 開發人員熱愛社群,Windows 範本 Studio 是開始建置技藝 UWP 應用程式的好方法 (aka.ms/wts)。

產生 Windows 範本 Studio 專案
圖 6 Windows 範本 Studio 專案產生

開發 UWP 的 Telerik 控制項在 2 月版 2017 Telerik 宣布已開啟來源 Telerik UI UWP 控制項程式庫。授權提供自由使用任何人建置 UWP 應用程式。Telerik 已建置功能強大、 高效能、 企業專用控制項的歷程記錄,並與開發 UWP 它們現在可用 !閱讀有關 Telerik 開啟公司的部落格上的來源公告: bit.ly/2AZA0iI

UWP 社群 Toolkit UWP 社群工具組 (github.com/Microsoft/UWPCommunityToolkit) 是另一個社群導向提供有用的工具開發 UWP 專案。此 toolkit 包括樣板化的動畫、 控制項、 協助程式類別、 服務和更多。使用 [UWP 社群工具組,以加速程式開發。

感想

很顯然,許多適用於.NET 和 UWP 開發人員,很多新工具與已變更,並更新要建置 Windows 應用程式快速及簡單越好。以.NET 標準 2.0 和所有的可用資源可用,並永遠不會是您更輕鬆地建置企業應用程式與通用 Windows 平台。.NET 開發人員、 桌面橋接器平台和更新的工具結合,讓您建立功能強大的桌面應用程式,利用最佳的 UWP 和 Win32,包括 WPF 和 Windows Form。Microsoft 會不斷地增進及其工具,根據您的意見反應,因此當您建立 Windows 應用程式時,不太願意透過電子郵件或 Twitter 聯繫。


奧 Jacobson是 Visual Studio 中,使用適用於 Windows 平台開發人員工具的程式管理員。連線到他處dajaco@microsoft.com或 Twitter 上: @pmatmic

Stefan Wick是程式管理員會導致在 Windows 中,通用 Windows 平台上運作。連線到他處swick@microsoft.com或 Twitter 上: @StefanWickDev

非常感謝下列 Microsoft 技術專家檢閱這篇文章:惡劣的 Mike、 Matthijs Hoekstra、 Unni Ravindranathan 和 Ricardo (Rido) Minguez
Unni Ravindranathan 是 Visual Studio 小組,專注於建置世界級的工具開發人員建置 Windows 應用程式的程式經理。

惡劣的 Mike 是在 Windows 開發人員平台小組團隊程式管理員。

Matthijs Hoekstra 是開發人員平台小組的資深程式管理員。


MSDN Magazine 論壇中的這篇文章的討論