1. 程式人生 > 資訊 >微軟 .NET 6 首個預覽版釋出:安卓 / iOS 多平臺 App UI,嚐鮮支援 Mac M1(附海量更新內容) - IT之家

微軟 .NET 6 首個預覽版釋出:安卓 / iOS 多平臺 App UI,嚐鮮支援 Mac M1(附海量更新內容) - IT之家

2 月 18 日訊息外媒 Neowin 報道,微軟在幾個月前宣佈了 .NET 5,作為通往 .NET 統一的第一步,其目標是擁有一套單一的 API、語言和工具,你可以在多個平臺上利用。今天,微軟公佈了這一歷程中的下一個臺階,即 .NET 6 預覽版 1。其中包括一些新的改進。.NET 6 將是一個重要的版本,它對 .NET 的所有部分都有重大改進,包括對雲、桌面和移動應用的改進

.NET 6 的第一個預覽版帶來了大量的新特性和功能。首先是它開啟了 .NET 的統一。根據這一計劃,雖然你可以使用 .NET SDK 在 Visual Studio 和 Visual Studio Code 中構建移動應用程式,但由於移動工作負載是可選的,因此 SDK 的大小實際上會更小。這一功能將隨著 .NET 6 的釋出而逐步推出,並將在 .NET 7 中完成。

對於 .NET 6,微軟也傾向於 “開放式規劃”,所以大家都知道公司的發展方向。

此外,.NET 6 還附帶了一個新的多平臺 App UI,它建立在 Xamarin 之上。它是一個工具包,允許開發人員在不同平臺上獲得一致的應用檢視,也允許他們共享程式碼。微軟表示,.NET 6 版本期間的重點將是效能、控制主題和 “更快的開發者體驗”。.NET 6 預覽版 1 目前包括對 Android 和 iOS 的支援。Windows 和 macOS 將在未來的版本中得到支援。

.NET 6 還包括對開發 Blazor 桌面應用的支援。這一功能主要針對那些希望在離線桌面應用中提供功能豐富 UI 的 Web 開發人員。目前,Blazor 桌面是為 .NET 應用構建的,但微軟表示,它也可以用來構建 Swift 等其他棧中的應用。可以確定的是,Blazor 是建立在多平臺 App UI 之上的,重點是提供與其他桌面解決方案類似的效能。

.NET 正在進行的另一個專案名為 “fast inner loop”。該計劃的目的是實現更快的構建時間,並開發出允許開發人員完全跳過重建,只需在實時程序中整合程式碼編輯的功能。

隨著 .NET 6 的推出,微軟也在 ARM64 支援上加大了投入。效能改進是預覽版 1 中的一個重點領域,還有對 Windows Forms 和 Windows Presentation Framework(WPF)的支援。開發團隊還計劃在 .NET 6 中啟用並測試後,在 .NET 5 中增加對 Windows 桌面應用功能的支援。關於 Mac,已經初步增加了對 Apple Silicon ARM64 晶片的支援。

微軟還計劃在 .NET 6 中改進容器。多種方式包括減少容器映象大小,增強容器的可擴充套件性,增加對 Windows 程序隔離容器的支援,以及優化效能等。基於當前的 Linux 環境和釋出策略,微軟表示,.NET 6 的映象將基於 Alpine 3.13、Debian 11 和 Ubuntu 20.04。一旦該公司開始釋出新的 .NET 6 映象,這個基礎映象版本將不會改變。在過去多個版本中被用作映象的 Debian 10 將退役。

由於採用了 System.CommandLine 庫,.NET 命令列介面(CLI)也有了一堆新的體驗。這些包括響應檔案和 Directives。此外,.NET 6 中也增加了數學 API 和庫。它還包括對 Windows 訪問控制列表(ACLs)的更好支援,並對各種相關方法(如 Semaphores 和 Mutex)進行了改進。

.NET 執行緒池經過重新設計,增強了可移植性。它將成為未來 .NET 版本的標準,並將允許應用程式訪問共享執行緒池,無論其執行時如何。

.NET 6 預覽版 1 的一個主要部分是對 Apple Silicon (M1 Mac)的支援。不過,微軟強調,目前還處於 alpha 階段。隨著這個版本的釋出,針對 macOS 的 ARM64 和 x64 構建版本都會被髮布。根據微軟的說法,這是一項重大的努力,因此,它不打算為早期版本的 .NET 釋出 ARM64 版本。微軟還感謝蘋果在將 .NET 6 帶到 Apple Silicon 的過程中給予的所有支援。

也就是說,目前在 Apple Silicon 上釋出的版本仍然存在一些問題。除錯原生 .NET 應用程式目前不能用於任何 Visual Studio 產品。微軟計劃在 Preview 3 中增加這方面的支援。其他已知的問題包括:

  • 對於大堆疊分配,JIT可能無法生成堆疊清除程式碼,因為 Apple Silicon 的頁面大小是 16K。

  • 可靠性還沒有達到與 x64 的同等水平。

  • 少量測試未能通過 GC 壓力測試。

  • 少數測試表現出間歇性故障。

  • CI 測試沒有啟用(由於機器的可用性),所以測試覆蓋率來自手動測試。

  • 還沒有設計出在 Apple Silicon 上同時使用模擬和原生 .NET 版本的體驗。例如,如果你想在同一臺機器上使用 .NET 6 和 .NET 5,你可能應該使用 . tar.gz. 發行版,而不是 . pkg,這樣你就可以控制路徑中的版本(如果有的話)。

  • .tar.gz. 包被報告為惡意軟體。

.NET 還沒有在 Rosetta 2 模擬上進行全面測試,但微軟已經指出,無論如何,這都是連線到 ARM64 的臨時橋樑,很可能不會被蘋果永遠支援。微軟公司計劃只要蘋果支援,就會在這些老機器上支援 Mac 上的 .NET。

獲悉,如前所述,這個版本的另一個重點也是效能提升。因此,.NET 6 Preview 1 帶來了對單檔案應用程式、macOS 上的單檔案簽名、硬體加速結構和動態 PGO 的增強。它還包含了 Crossgen2-- 初始 Crossgen 工具的新迭代 -- 它允許更容易地生成程式碼和跨代開發。目前,SDK 預設使用 Crossgen,但在未來的預覽版中會轉向 Crossgen2。

微軟 .NET 6 將於 2021 年 11 月正式釋出,類似於去年同一時間段釋出 .NET 5.0 的方式。你可以前往這個專門的網頁下載 .NET 6,並在這裡的大量部落格文章中瞭解更多關於它的細節。微軟還表示,.NET 6 預覽版 1 是在 Visual Studio 16.9 預覽版 4 和 Visual Studio for Mac 8.9 上測試的,所以建議你使用這些配置來親自測試。