Error message here!

Hide Error message here!

忘记密码?

Error message here!

请输入正确邮箱

Hide Error message here!

密码丢失?请输入您的电子邮件地址。您将收到一个重设密码链接。

Error message here!

返回登录

Close

官宣 .NET 6 預覽版 6

MicrosoftReactor 2021-08-21 15:22:49 阅读数:5620 评论数:0 点赞数:0 收藏数:0

我們很高興宣布.NET 6 預覽版6 問世啦。預覽版6是我們RC版發布之前的倒數第二個預覽版。 我們將有兩個RC版。此版本本身相對較小,而預覽版7會更大。在那之後,我們將進行質量修複,直到11月的最終版本。我們期待一個很棒的新.NET版本。

您可以下載適用於Linux、macOS 和Windows 的.NET 6 預覽版 6

請參閱ASP.NET CoreEF Core.NET MAUI文章來了解更多關於Web、數據訪問和客戶端方案的新功能。

從.NET 6 預覽版6 開始,我們已經測試並支持Visual Studio 2022 預覽版2Visual Studio 2022是您可以用來開發.NET 6的開發工具,例如 .NET MAUI 開發、C# 應用程序的熱重載、 用於WebForms 的新Web 實時預覽,以及IDE 體驗中的其他性能改進。.NET 6 也在Visual Studio for Mac 8.9進行了測試。

查看新的對話帖子,以深入了解工程師對最新.NET 功能的討論。

x64 仿真更新

我們已經完成了對macOS 的Apple Silicon 和Windows 的Arm64 的支持。 剩下的就是在macOS Apple SiliconWindows Arm64支持x64 仿真。 我們需要做兩件事來實現這一點。

在可以使用並排安裝程序之前(之後在.NET 6 中),您需要安裝所有x64 版本或者所有Arm64 版本。 如果要切換,需要卸載/删除Arm64 機器上的所有.NET 版本。 很抱歉,目前在這個階段只能這樣實現。

工具:.NET SDK 可選工作負載改進

我們添加了三個新的工作負載命令,可實現更好的發現和管理。

  • dotnet workload search— 列出可安裝的工作負載。
  • dotnet workload uninstall — 如果您不再需要某個工作負載,請删除指定的工作負載。 也是節省空間的好選擇。
  • dotnet workload repair — 重新安裝您之前安裝的所有工作負載。
    • 如果您的安裝因互聯網連接斷開而在中間失敗,這將非常有用。
    • 可選工作負載由多個工作負載包組成,所以有時候你會發現,其中一些工作負載包安裝成功,而另一些則沒有。

在之前的預覽中,我們添加了以下命令:

  • dotnet workload install — 安裝工作負載。
  • dotnet workload list — 列出已安裝的工作負載。
  • dotnet workload update — 更新已安裝的工作負載。

庫:對System.DirectoryServices.Protocols 的TLS 支持

已為Linux 和macOS 的System.DirectoryServices.Protocols啟用TLS 支持。 之前它已經為Windows 啟用。.NET 用戶現在可以享受與LDAP 服務器的安全通信。

歸功於@iinuwa

工具:Crossgen2 替換 crossgen

Crossgen2已為所有現有的crossgen 場景啟用。 有了這個裏程碑,我們還從SDK 中删除了(舊的)crossgen。 它不再可訪問且無法使用。

Crossgen(1 和2)支持將IL 預編譯為本機代碼。 預編譯主要有利於改善啟動。Crossgen2 是一個從頭開始的實現,已被證明是代碼生成創新的卓越平臺。

以下MSBuild 屬性演示了如何使用crossgen2 啟用預編譯。

 <!-- Enable pre-compiling native code (in ready-to-run format) with crossgen2 -->
<PublishReadyToRun>true</PublishReadyToRun>
<!-- Enable generating a composite R2R image -->
<PublishReadyToRunComposite>true</PublishReadyToRunComposite>
複制代碼

庫:改進了异步同步性能

异步同步是一種常見的阻塞工作類型。當它發生在線程池工作線程上時,它會導致饑餓。 緩慢的線程注入可能會延遲其他已經在隊列的線程的運行,並延遲解决饑餓問題的時間。

當是由於异步同步導致線程池工作線程上發生阻塞時,此更改默認提高了線程注入率。有一些新的 AppContext 配置值可用於配置響應异步同步的線程注入率。

運行時:W^X 內存策略

我們正在為W^X 內存保護啟用支持。這是Apple Silicon 機器的一項要求,也是其他操作系統上的一項有用的安全措施。

此功能有一個不太尋常的名字。它應該讀作"write exclusive execute"。這意味著一個內存頁可以被標記為讀/寫或讀/執行,但不能包括寫和執行的任何組合。例如,寫入/執行頁面容易被緩沖區溢出攻擊所利用。

此功能需要在整個產品中進行更改,無論在哪裏使用寫入/執行頁面。例如,預覽版6 包含一項更改,要求JIT 與我們采用的 W^X 方案配合

W^X 是 Apple Silicon 機器上 macOS 的要求,在 .NET 6 的所有其他環境中是可選的,並且可能是 .NET 7 的所有環境中的默認模式。

注意:W^X 實現在 .NET 6 的所有環境中都有一個啟動回歸,但 Apple Silicon 除外。它將作為 .NET 7 的一部分得到解决。Apple Silicon 實現沒有這種回歸,是因為操作系統對此方案的支持

CodeGen 變更日志

以下代碼生成更改包含在預覽版6 中。

動態PGO

LSRA

以下改進基於這些更改。

更多改進:

代碼質量

結束語

隨時每一個預覽版的發布,很快我們將只處理最緊迫的一些的反饋,來為我們最終的版本提供最高的質量保證,如果您尚未嘗試.NET 6,請立即嘗試。 因為這將是你影響發布的最後機會啦。

感謝所有讓.NET 6 成為更棒的版本做出貢獻的人。

感謝您成為.NET 開發人員。

最後有任何的.NET相關的開發問題,歡迎到Microsoft Q&A論壇提問。

版权声明
本文为[MicrosoftReactor]所创,转载请带上原文链接,感谢

编程之旅,人生之路,不止于编程,还有诗和远方。
阅代码原理,看框架知识,学企业实践;
赏诗词,读日记,踏人生之路,观世界之行;

支付宝红包,每日可领