使用.NET Core 構建現代化的桌面應用


我們今天要聊的內容主要桌面開發四個方面:Windows平台、.NET Core 3 平台上的WPF,Winform, 應用打包解決方案 MSIX 和 XAML 群島訪問原來UWP的控件,讓我們的應用程序迅速現代化。

Windows平台上的應用開發,我們通常會選擇以下三個技術:

  • Windows Forms
  • Windows Presentation Foundation
  • Universal Windows Platform (UWP)

但事實上, 你真正想瞄准的是 Windows。Windows是平台。 這些選項只是我們針對 Windows 開發應用時所擁有的不同 UI 框架選項。更重要的是, 當你優化你的應用針對 Windows 10 時, 你會得到更多的創新、Api 和 windows 10 操作系統為您提供的好處。

把 Windows 看作是一個平台。
UI 框架只是一種偏好

 

而且, 這三個UI 框架現在都是開源的:

 

WPF 和 Windows Forms 開源都是基於.NET Core 3.0, 你肯定有疑問為什么是 .NET Core 3. 給我個理由?

.NET Framework 4.8 已經發布,.NET 4.8 已經幫助我們解決了很多問題, WPF和Windows Forms的高DPI更好的至此,Windows 10 中最新的瀏覽器和媒體播放器的新控件,並支持最新的標准。.NET Core 3 是 .NET Core 的下一主要版本。 這個即將發行的版本的主要特點是支持 Windows 桌面應用,包括 Windows 窗體和 WPF 應用。 你將能夠在 .NET Core 3 上運行新的和現有的 Windows 桌面應用並體驗 .NET Core 具有的所有優勢。 托管在 XAML 島中的 UWP 控件也可在面向 .NET Core 3 的 Windows 窗體和 WPF 應用中使用。

.NET Core 的性能更好,速度更快,.NET Core的並行安裝的特性可以幫助你在發布應用程序中獲取顯而易見的方便,更好的打包方案MSIX, 開源,支持.NET Standard 2.1, 支持C# 8.0等還有很多新特性。

 

使用.NET Core 3 升級Windows 桌面應用開發的好處還有很多,下面簡要的列幾條:

•現代運行時、BCL 和語言功能

•更容易訪問平台和設備的API

•現代化 且可訪問的的UI和輸入

•針對 DevOps 進行無縫的應用程序部署、更新和優化

•開發人員更好進行敏捷創新

 

.NET Core 3.0 將在下個月發布RC, 9月份正式發布,將在11月份發布長期支持版本3.1 ,2020年 11月發布.NET 5 ,其實就是.NET Core 4.0 ,為了避免和.NET 4的混淆,以及統一.NET品牌的考慮統一叫做.NET 5,往后

每年發布一個主要版本, 發布的偶數版本是LTS。

 

現在就可以動手試試了,需要注意的是你在構建32位還是64位的應用程序的時候需要安裝對應版本的sdk,最簡單的就是2個版本的SDK都裝上。下載地址:https://dotnet.microsoft.com/download/dotnet-core/3.0

.NET可移植性分析器可幫助您識別代碼中可移植或不可移植到. net Core 的部分, 為您提供完整的 Excel 報告。 第一步是從package.json遷移到 PackageReference。
最簡單的方法是創建一個運行 "dotnet new wpf" 或 "dotnet new winforms" 的空 csproj。
您可以使用生成的 csproj 作為起點, 從舊 csproj 遷移您的 PackageReferences , 然后從那里開始。
大多數項目都應該是相當超前的。
如果您需要更多信息, 請按照博客文章中的步驟操作。它是非常完整的。https://aka.ms/porting-to-netcore3

WPF Demo

 

MSIX是一種Windows應用包格式,可以為所有Windows應用程序提供現代化打包體驗。MSIX 是一種基於.msi, appx、 app-V和 ClickOnce 安裝技術的組合構建的一種安全可靠的打包格式。

  • 能夠在不對計算機構成風險或引起“計算機腐爛”的情況下安裝和卸載
  • 開箱即用的自動更新
  • 更容易分發,可以通過微軟商店,企業自己的微軟商店,文件共享,HTTP URL分發

從 Windows 10 版本 1903 開始,可以將 UWP XAML 控件直接添加到與窗口句柄 (HWND) 關聯的 WPF、Windows 窗體或 C++ Win32 應用中的任何 UI 元素。 這意味着,你可以將最新的 UWP 功能(例如 Windows Ink 和支持 Fluent Design System 的控件完全集成到 Windows 以及桌面應用的其他顯示表面中去。 此開發人員方案有時稱為“XAML 島”。

關於Windows開發,其中一個最大的抱怨是微軟在Winforms和wpf的投入少;Windows10提供的大部分新特性都只是針對UWP構建的。雖然我們現在可以從.NET Framework 調用UWP API,但僅適用於不涉及UI的情況。為了解決這個問題,微軟創建了兩個新控件:WinForms XAML Host和WPF XAML Host,使開發人員可以把UWP編寫的UI嵌入到現有WinForms/WPF應用程序。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM