今天,發布了.NET 5.0 Preview5,主要對它進行了一小部分新功能和性能的改進,.NET 5.0 Preview 4包含了一些計劃和.NET 5.0要交付的內容,
現在,大多數的功能都已經包含在里面,但是有許多功能還未到最終狀態,預計這個版本在Preview 7中完善,
可以下載適用于Windows,macOS和Linux的.NET 5.0 Preview 5:
- Windows and macOS installers
- Binaries
- Docker images
- Snap installer
ASP.NET Core和EF Core也在今天發布了
我們需要使用Visual Studio 2019 16.7才能使用.NET 5.0, 安裝最新版本的C#擴展,以將.NET 5.0與Visual Studio Code結合使用, Mac的Visual Studio尚不支持.NET 5.0,
發布說明:
- .NET 5.0 release notes
- .NET 5.0 known issues
- GitHub release
- GitHub tracking issue
RyuJIT改進
對RyuJIT JIT編譯器進行了以下改進
- 新的、更快的、可移植的tailcall helper實作,
- ARM64硬體內部物理的實作行程
- 實作ASIMD Extract Insert ExtractVector64 ExtractVector128
- 實作 ASIMD widening, narrowing, saturating intrinsics
- 添加VectorTableList和TableVectorExtension內部函式
- 添加對ARM64內部函式的CreateScalarUnsafe()支持
- ARM64對Vector64.Create()和Vector128.Create()的內在支持
- 使用arm64 intrinsic優化BitOperations.PopCount ()
- 在影響正則運算式編譯的情況下改進了JIT的速度
- 使用新的硬體特性BSF/BSR改進英特爾架構性能
- 實作Vector{Size}.AllBitsSet
Native exports
曾要求為匯出本機二進制檔案啟用匯出功能,這些功能已在很長一段時間內呼叫.NET代碼, 這是一個很好的方案,現在通過.NET 5.0啟用它, 該功能的構建塊是托管對UnmanagedCallersOnlyAttribute的API支持,
這個功能是創建更高級別體驗的基礎, 團隊的Aaron Robinson一直在從事.NET Native Exports專案,該專案為將.NET組件作為本機庫發布提供了更完整的體驗, 目前正在尋求有關此功能的反饋,以幫助我們確定該方法是否應包含在產品中,
.NET本地匯出專案使我們能夠:
- 公開自定義的 native exports,
- 不需要像COM這樣的高級互操作技術,
- 跨平臺作業
現有的專案可以實作類似的方案,例如:
- Unmanaged Exports
- DllExport
[重大變化]洗掉.NET 5.0中內置的WinRT支持
注意:這個變化將出現在預覽6中,這是一個早期的通知,
Windows Runtime(WinRT)是Windows中公開使用的新API的技術和ABI, 您可以通過.NET代碼呼叫這些API,類似于使用C ++的方法, 在.NET Core 3.0中添加了對WinRT interop的支持,這是對Windows桌面客戶端框架(Windows Forms和WPF)添加支持的一部分,
最近,一直在與Windows團隊緊密合作,以更改和改進WinRT interop與.NET的協作方式, 我們已用Windows團隊在.NET 5.0中提供的C#/WinRT工具鏈替換了內置的WinRT支持, WinRT互操作中的此更改是一項重大更改,使用WinRT的.NET Core 3.x應用將需要重新編譯, 我們將在即將來臨的預覽中提供更多資訊,
在.NET 5中的支持WinRT API中明確指出了這些好處:
- WinRT互操作可以獨立于.NET runtime進行開發和改進,
- 使WinRT互操作與為其他作業系統(如iOS和Android)提供的互作業系統對稱,
- 可以利用許多其他,net特性(AOT, c#特性, IL linking),
- 簡化.NET運行時代碼庫(洗掉6萬行代碼),
將System.DirectoryServices.Protocols擴展到Linux和macOS
添加對System.DirectoryServices.Protocols的跨平臺支持, 在Preview 5中,添加了對Linux的支持,并在Preview 6中添加了對macOS的支持,對Windows支持已經存在,
System.DirectoryServices.Protocols是比System.DirectoryServices更低級別的API,并且啟用更多方案, System.DirectoryServices包含僅適用Windows的概念/實作,因此制作跨平臺并不是一個很容易的事情,
這兩個API都支持對目錄服務服務器(如LDAP或Active Directory)進行控制和互動,
Alpine 3.12
本周,增加了對Alpine 3.12,.NET Core 3.1和.NET 5的支持, Alpine Linux的維護者于5月29日宣布發布Alpine 3.12, 與過去相比,以更快,更可預測的方式增加對新Linux發行版的支持,
會發現他們已經開始使用一種新的發布模型來發布新發行版的問題, 這就是我們對Alpine 3.12所做的, 將來,我們計劃更早地發布這些問題, 例如,需要跟蹤的下一個發行版可能是Ubuntu 20.10, 尚未決定,但可能會在7月或8月發布該發行版的類似問題,以準備10月發行的新Ubuntu版本,
最后
感謝大家對.NET 5.0預覽版的反饋以及您的早期反饋, 正如文章的簡介中所建議的那樣,現在才發布大約一半, 現在包括了大多數功能,但是我們希望在接下來的幾個預覽中會進行許多更改,以完成體驗并消除仍然存在的粗糙邊緣,
來源:https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-5/
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/13527.html
標籤:.NET Core
上一篇:基于 abp vNext 和 .NET Core 開發博客專案 - Blazor 實戰系列(三)
下一篇:VSCode最佳設定
