原文鏈接:https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-rc-1/[1]
原文作者:Jeremy Likness,Angelos Petropoulos,Jon Douglas
翻譯:沙漠盡頭的狼(谷歌翻譯加持)
今天我們宣布 .NET 7 候選版本 1。這是生產中支持的 .NET 7 的兩個候選版本 (RC) 中的第一個。
您可以下載適用于 Windows、macOS 和 Linux 的.NET 7 Release Candidate 1[2] 。
Installers and binaries[3]
Container images[4]
Linux packages[5]
Release notes[6]
Known issues[7]
GitHub issue tracker[8]
.NET 7 Release Candidate 1 已通過 Visual Studio 17.4 Preview 2 測試。如果您想在 Visual Studio 系列產品中試用 .NET 7,我們建議您使用預覽通道版本[9]。如果您使用的是 macOS,我們建議使用最新的Visual Studio 2022 for Mac 預覽版[10]。
不要忘記.NET Conf 2022[11]。在 2022 年 11 月 8 日至 10 日與我們一起慶祝 .NET 7 的發布!
在本博客中,我們將重點介紹 .NET 7 的核心主題,并為您提供深入了解細節的資源。
要更詳細地回顧 .NET 7 Release Candidate 1 中包含的所有功能和改進,請查看之前的 .NET 7 Preview 博客文章:
Announcing .NET 7 Preview 1[12]
Announcing .NET 7 Preview 2[13]
Announcing .NET 7 Preview 3[14]
Announcing .NET 7 Preview 4[15]
Announcing .NET 7 Preview 5[16]
Announcing .NET 7 Preview 6[17]
Announcing .NET 7 Preview 7[18]
.NET MAUI
.NET 多平臺應用程序 UI (MAUI) 將 Android、iOS、macOS 和 Windows API 統一到一個 API 中,因此您可以編寫一個在多個平臺上本機運行的應用程序。.NET MAUI 使您能夠提供由每個平臺(Android、iOS、macOS、Windows 和 Tizen)專門設計的最佳應用體驗,同時使您能夠通過豐富的樣式和圖形打造一致的品牌體驗。開箱即用,每個平臺的外觀和行為都符合其應有的方式,無需任何額外的小部件或樣式。
作為 .NET 7 的一部分,.NET MAUI 提供了一個項目來處理跨設備及其平臺的多目標。要了解有關生產力改進、工具和性能增強的更多信息,請查看以下資源:
Introducing .NET MAUI – One Codebase, Many Platforms[19]
Productivity comes to .NET MAUI in Visual Studio 2022[20]
Performance Improvements in .NET MAUI[21]
.NET Conf Focus on MAUI – That’s a wrap![22]
注意: 使用 .NET 7 試用 .NET MAUI 的 Visual Studio 體驗將在即將發布的 17.4 Preview 2.1 版本中提供。
云原生
云原生是一組最佳實踐,用于在云中構建應用程序,以利用彈性、可擴展性、效率和速度。
.NET 是構建云原生應用程序的絕佳選擇。要了解有關 .NET 7 中的云原生功能和改進的更多信息,請查看以下資源:
Announcing built-in container support for the .NET SDK[23]
Announcing gRPC JSON transcoding for .NET[24]
.NET 7 comes to Azure Functions & Visual Studio 2022[25]
ARM64
ARM提供了小尺寸、卓越性能和高功率效率。
.NET 可幫助您構建在 ARM 設備上運行的應用程序。有關 .NET 7 在 ARM64 上運行速度的更多信息,請查看以下資源:
Arm64 Performance Improvements in .NET 7[26]
現代化
在現代版本的 .NET 上,您可以利用閃電般的性能和大量新功能來提高開發人員的生活質量。
為了使升級體驗盡可能無縫,.NET 升級助手為您提供分步指導體驗,通過分析和升級您的項目文件、代碼文件和依賴項來現代化您的 .NET 應用程序。
有關 .NET 7 如何幫助您實現應用程序現代化的更多信息,請查看以下資源:
Incremental ASP.NET to ASP.NET Core Migration[27]
Migrating from ASP.NET to ASP.NET Core in Visual Studio[28]
表現
.NET 很快。.NET 7 是目前最快的 .NET。.NET 7 對反射、堆棧替換 (OSR)、啟動時間、本機 AOT、循環優化和許多其他領域進行了超過一千項影響性能的改進。
有關為什么 .NET 7 是目前最快的版本的更多信息,請查看以下資源:
Performance Improvements in .NET 7[29]
Regular Expression Improvements in .NET 7[30]
Contributor spotlight: Filip Navara
向我們所有的社區成員致以巨大的“謝謝”。我們非常感謝您的周到貢獻。我們請貢獻者@filipnavara[31]分享他的想法。
用菲利普自己的話說:
我從小就開始玩電腦。在拜訪我爺爺的時候,我經常看到他在 BASIC 做他的工作。他正在編寫工廠自動化軟件,我從他那里繼承了我對所有技術事物的熱愛。DOS 是當時的標準系統,而 Borland 主導了編程工具。我想了解編程的工作原理并學習它。我固執地拒絕了他的所有建議,不得不自己通過反復試驗來學習一切。這很愚蠢,但看到這些小程序變得生動起來很有趣。
漸漸地,我開始用不同的語言編程,探索互聯網,然后是開源世界。我最喜歡在編譯器、操作系統或系統模擬器等低級軟件上進行編碼。在高中的業余時間,我為 Wine、ReactOS、QEMU、Binutils 和 MinGW 編譯器工具集等項目做出了貢獻。
當 .NET Framework 的第一個版本問世時,我立刻被吸引住了。它保證了我熟悉的 Delphi 的簡單性,而且 C# 語言學習起來真的很有趣。時機恰到好處,因為我和朋友們開始了一個開發電子郵件客戶端應用程序的小項目,我們都同意在 .NET 中構建它。那個應用程序,eM Client,讓我在整個大學學習期間都忙得不可開交。直到今天,它仍然是我目前的項目;盡管團隊已經壯大,但我的職責已經轉移,而且我們有很多非常有才華的程序員來解除我的職責。
.NET 的開源對我們來說是一大福音,讓很多事情變得更容易。如今,我可以更多地專注于業余項目,為 .NET 做貢獻是自然而然的選擇。它使我能夠充分利用我的知識,從硬件的低級細節和操作系統內部,到我們的電子郵件應用程序構建的高級框架。
開放代碼允許我推動一個項目將 WinForms 框架移植到 macOS(基于 Mono 代碼,但在許多地方使用 Cocoa 原生控件)。當 .NET 5 統一計劃開始實施時,我開始做出更多貢獻。對于我們來說,Xamarin.Mac 和 Mono 等不同平臺在我們在 Windows 上使用的 .NET 所支持的功能方面一直落后,這一直是我們的痛點。最初,我開始填補 Mono 基類庫中的空白,它已經與 .NET Core 共享了一些代碼。我意識到這種追趕游戲可能不是最佳解決方案,因此我開始探索其他選項,例如在 CoreCLR 上運行 Xamarin.Mac。它恰好發生在編寫第一個 MonoVM(.NET 5+ 中的 Mono 運行時)提交的前幾天。一旦我意識到發生了什么,我就加入了這個計劃。所有這些工作都隱藏在 GitHub 上,幾個月后在 Build 大會上發布了官方公告。看到進展令人激動,構建了我自己的 Xamarin 運行時構建,該構建運行在這個早期的統一 MonoVM 運行時上,顯示了第一個 UI。最終,它甚至啟動了我們的電子郵件客戶端應用程序。這確實改變了我們的游戲規則。使用舊的 .NET Framework,我們無法在新功能發布時使用它們。新版本的部署需要數年時間才能趕上。現在我處于相反的境地,比其他人跑得更早!
這項關于運行時統一的工作現已成功結束,我們向客戶發布了具有最新 .NET 6 的應用程序。但是,.NET 中的許多地方仍然可以改進,我喜歡與 .NET 團隊的人一起工作。我嘗試為每個版本驅動至少一個次要功能。對于 .NET 6,我專注于讓 iOS 加密堆棧正常工作。對于 .NET 7,在網絡團隊的大力幫助下,我嘗試了一個用于處理 Negotiate/Kerberos/NTLM 身份驗證的 API。雖然它不是一個非常有吸引力或可見的功能,但它是長期的技術債務。單元和功能測試中缺少代碼;ASP.NET 通過反射訪問內部,對 NativeAOT 不友好;最重要的是,圖書館作者不得不使用復雜的方法來解決缺乏簡單公共 API 的問題。
我真誠地希望在未來做出更多貢獻,我很高興看到其他貢獻者找到他們感興趣的領域,并使整個平臺對每個人都更好!
支持
.NET 7 不是長期支持 (LTS) 版本,因此它將在發布之日起 18 個月內獲得免費支持和補丁。重要的是要注意所有版本 LTS 的質量是否相同。唯一的區別是支撐的長度。有關 .NET 支持政策的更多信息,請參閱.NET 和 .NET Core 官方支持政策[32]。
路線圖
.NET 版本包括產品、庫、運行時和工具,代表了 Microsoft 內外多個團隊之間的協作。您可以通過閱讀產品路線圖了解有關這些領域的更多信息:
ASP.NET Core 7 and Blazor Roadmap[33]
EF 7 Roadmap[34]
ML.NET[35]
.NET MAUI[36]
WinForms[37]
WPF[38]
NuGet[39]
Roslyn[40]
Runtime[41]
結束
我們感謝[42]您對 .NET 的所有支持和貢獻。請嘗試 .NET 7 Release Candidate 1[43]并告訴我們您的想法!
參考資料
[1]
https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-rc-1/: https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-rc-1/
[2].NET 7 Release Candidate 1: https://dotnet.microsoft.com/download/dotnet/7.0
[3]Installers and binaries: https://dotnet.microsoft.com/download/dotnet/7.0
[4]Container images: https://mcr.microsoft.com/catalog?search=dotnet/
[5]Linux packages: https://github.com/dotnet/core/blob/master/release-notes/7.0/
[6]Release notes: https://github.com/dotnet/core/tree/master/release-notes/7.0
[7]Known issues: https://github.com/dotnet/core/blob/main/release-notes/7.0/known-issues.md
[8]GitHub issue tracker: https://github.com/dotnet/core/issues
[9]預覽通道版本: https://visualstudio.com/preview
[10]Visual Studio 2022 for Mac 預覽版: https://visualstudio.microsoft.com/vs/mac/preview/
[11].NET Conf 2022: https://dotnetconf.net/
[12]Announcing .NET 7 Preview 1: https://devblogs.microsoft.com/dotnet/announcing-net-7-preview-1/
[13]Announcing .NET 7 Preview 2: https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-preview-2/
[14]Announcing .NET 7 Preview 3: https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-preview-3/
[15]Announcing .NET 7 Preview 4: https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-preview-4/
[16]Announcing .NET 7 Preview 5: https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-preview-5/
[17]Announcing .NET 7 Preview 6: https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-preview-6/
[18]Announcing .NET 7 Preview 7: https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-preview-7/
[19]Introducing .NET MAUI – One Codebase, Many Platforms: https://devblogs.microsoft.com/dotnet/introducing-dotnet-maui-one-codebase-many-platforms/
[20]Productivity comes to .NET MAUI in Visual Studio 2022: https://devblogs.microsoft.com/dotnet/dotnet-maui-visualstudio-2022-release/
[21]Performance Improvements in .NET MAUI: https://devblogs.microsoft.com/dotnet/performance-improvements-in-dotnet-maui/
[22].NET Conf Focus on MAUI – That’s a wrap!: https://devblogs.microsoft.com/dotnet/dotnet-conf-focus-on-maui-recap/
[23]Announcing built-in container support for the .NET SDK: https://devblogs.microsoft.com/dotnet/announcing-builtin-container-support-for-the-dotnet-sdk/
[24]Announcing gRPC JSON transcoding for .NET: https://devblogs.microsoft.com/dotnet/announcing-grpc-json-transcoding-for-dotnet/
[25].NET 7 comes to Azure Functions & Visual Studio 2022: https://devblogs.microsoft.com/dotnet/dotnet-7-comes-to-azure-functions/
[26]Arm64 Performance Improvements in .NET 7: https://devblogs.microsoft.com/dotnet/arm64-performance-improvements-in-dotnet-7/
[27]Incremental ASP.NET to ASP.NET Core Migration: https://devblogs.microsoft.com/dotnet/incremental-asp-net-to-asp-net-core-migration/
[28]Migrating from ASP.NET to ASP.NET Core in Visual Studio: https://devblogs.microsoft.com/dotnet/introducing-project-migrations-visual-studio-extension/
[29]Performance Improvements in .NET 7: https://devblogs.microsoft.com/dotnet/performance_improvements_in_net_7/
[30]Regular Expression Improvements in .NET 7: https://devblogs.microsoft.com/dotnet/regular-expression-improvements-in-dotnet-7/
[31]@filipnavara: https://github.com/filipnavara
[32].NET 和 .NET Core 官方支持政策: https://dotnet.microsoft.com/platform/support/policy/dotnet-core
[33]ASP.NET Core 7 and Blazor Roadmap: https://github.com/dotnet/aspnetcore/issues/39504
[34]EF 7 Roadmap: https://docs.microsoft.com/ef/core/what-is-new/ef-core-7.0/plan
[35]ML.NET: https://github.com/dotnet/machinelearning/blob/main/ROADMAP.md
[36].NET MAUI: https://github.com/dotnet/maui/wiki/Roadmap
[37]WinForms: https://github.com/dotnet/winforms/blob/main/docs/roadmap.md
[38]WPF: https://github.com/dotnet/wpf/blob/main/roadmap.md
[39]NuGet: https://github.com/NuGet/Home/issues/11571
[40]Roslyn: https://github.com/dotnet/roslyn/blob/main/docs/Language%20Feature%20Status.md
[41]Runtime: https://github.com/dotnet/core/blob/main/roadmap.md
[42]感謝: https://dotnet.microsoft.com/thanks
[43]嘗試 .NET 7 Release Candidate 1: https://dotnet.microsoft.com/download/dotnet/7.0