05.10 .NET Core 3計劃發佈,將實現對Windows桌面應用的支持

在微軟Build Live 2018大會上,微軟發佈了一系列Azure 軟硬件AI產品,Microsoft officer 365 支持JS函數擴展、AI和BI功能等。做為一個碼農,我們更關注則是.NET Core的消息。當然消息也是振奮人心的,那就是大會公開了.NET Core 3的計劃:最大的亮點是.NET Core 3將開始支持Windows桌面應用程序,包括Windows Form,Windows Presentation Framework(WPF)和UWP XAML。屆時將能在.NET Core 3上運行Windows桌面應用程序,在享受.NET Core新架構的優勢便利同時,兼容老的.net應用。

.NET Core 3計劃發佈,將實現對Windows桌面應用的支持

ASP.NET Core也將並行持續開發,最後和.NET Core 3.0一起發佈。在保持Web和雲端應用開發的基礎上,增加對Windows桌面應用程序兼容和支持。

.NET Core給桌面端帶來的好處

.NET Core的所有優點將都會遷移到桌面應用程序。主要包括:

1、性能改進和其他運行時更新

2、只需單個本地應用程序,即可輕鬆使用或測試新版.NET Core

3、啟用機器全局和應用程序本地部署

4、支持在Visual Studio中創建和開發.NET Core CLI工具和SDK風格的項目

5、.NET Core 3.0和.NET Framework 4.8其他的改進包括:

6、訪問完整的Windows 10(AKA"WinRT")API。

7、在WPF和Windows Forms應用程序中託管UWP XAML控件。

8、託管UWP瀏覽器和媒體控件,支持現代瀏覽器和媒體內容和標準。

.NET Core 3架構

新的.NET Core 3.0架構體系如下圖:

.NET Core 3計劃發佈,將實現對Windows桌面應用的支持

從圖上我們可以看到Windows桌面應用的支持是作為Windows桌面Packs插件包的形式添加,支持在Windows下運行。 .NET Core將保持跨平臺的核心和功能不變。

總體上來說,可將 WPF視為DirectX和Windows窗體上的一個富功能控件層,Windows Forms是基於GDI Plus的廋功能層。 WPF和Windows Forms在是桌面應用程序功能書使用最廣泛,最常用的界面組件。這兩者的基本功能的C#代碼將打包成為基礎擴展類庫,在.NET Core 3中按需要引入和調用。基礎Windows功能(如GDI Plus和DirectX)還通過系統層引用。

微軟還計劃發佈一個新版本的.NET標準作為.NET Core 3.0的標準。比如增加Span 類型。

.NET Core 3計劃發佈,將實現對Windows桌面應用的支持

.NET Core 2.0的支持C#,F#和VB等語言都可在.NET Core 3用來構建桌面應用程序。

本地化的應用部署

.NET Core部署模型給Windows桌面開發人員帶來巨大的方便。我們可以用便捷的方式安裝.NET Core,甚至使用更靈活的應用部署方式。

當.NET Core版本需要更新時,你可以針對單個應用程序來進行升級,不用擔心統一升級會導致其他應用程序的異常。新的.NET Core版本將安裝在新建的目錄,不會影響現有應用。

對於額外需要更大程度隔離的情況,還支持對你的應用程序單獨部署.NET Core。將來會支持將應用和.NET Core類庫打包為一個可執行文件運行。.NET Core的模塊化體系架構使這種需求變成可能。

已有桌面應用程序遷移到.NET Core 3

新開發桌面應用程序,將直接通過.NET Core 3來創建。那麼已有的應用程序(特別是大型應用程序)如何遷移到.NET Core 3呢?微軟表示會通過最簡單的方式直接轉向.NET Core 3。不需時常維護或者沒有開發人員的老應用則直接選擇使用.NET Framework 4.8就ok。

遷移步驟也很簡單:

1、將已有桌面應用程序用.NET Core 3重新編譯。

2、項目文件需要以針對.NET Core 3做修改兼容。

3、依賴項不需要重新編譯。

當然對依賴的項(庫),也進行重編譯也很有必有,新的計劃中WPF和Windows Forms將可以通過API形式並行運行。

同樣,EF6將會做一些更新以便在.NET Core 3.0運行。EF6將不會再增加新功能,所有新功能將通過EF Core進行擴展,並將其作為各種類型新應用程序的默認數據控制層。EF Core將會更多的功能和更好的性能。

項目文件的更新

.NET Core項目,都採用了SDK風格。其中一個關鍵項是PackageReference,這是一種引用NuGet包的新方法。 PackageReference將替換packages.config。 PackageReference還可以一次引用整個組件組,而不是一次只能引用一個組件。

SDK風格帶來的最大的改進有:

1、更小和更整潔的項目文件

2、對源代碼控制更友好(更少的變化和更小的差異)

3、在Visual Studio中編輯項目文件而不卸載

4、NuGet是構建的一部分,並對目標框架更新等變化進行響應

5、支持多目標

採用.NET Core 3的桌面項目的第一步就是遷移到SDK風格。遷移可以通過Visual Studio進行,也可以使用命令行。

控件,NuGet包管理和已有的Assembly引用

桌面應用程序通常會有大量的依賴項,可能來基礎廠商,NuGet或者及其無源碼的二進制文件。很多都需要慢慢更新遷移到新的.NET Core 3架構中來,甚至有有些可能無法遷移。

所以,.NET Core 3會通過支持依賴關係來解決這一些問題。在微軟build 2018大會上也演示了使用第三方控件的.NET Core 3桌面應用程序。

總結

微軟Build 2018帶來的顯示.NET Core 3計劃,給一直以來Windows桌面應用碼農巨大的福音。我們可以憧憬隨著.NET Core體系的不斷壯大,將會吸引更多的人關注並使用這個免費開源的平臺。微軟近年來的所作所為給我們展現了其開放開源的另一面。

最後我們要說只有開放開源才是趨勢,才有未來!

今天你開源了麼?歡迎大家關注,留言。


分享到:


相關文章: