原文連結:https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-rc-1/
原文作者:Jeremy Likness、Angelos Petropoulos、Jon Douglas
翻譯:沙漠盡頭的狼(Google 翻譯加持)
今天我們宣布 .NET 7 候選版本 1。這是生產環境支援的 .NET 7 兩個候選版本(RC)中的第一個。
您可以下載適用於 Windows、macOS 和 Linux 的 .NET 7 Release Candidate 1。
.NET 7 Release Candidate 1 已通過 Visual Studio 17.4 Preview 2 測試。如果您想在 Visual Studio 系列產品中試用 .NET 7,建議您使用預覽通道版本。若您使用 macOS,建議使用最新的 Visual Studio 2022 for Mac 預覽版。
別忘了 .NET Conf 2022!在 2022 年 11 月 8 日至 10 日與我們一起慶祝 .NET 7 的發佈!
在這篇部落格中,我們將重點介紹 .NET 7 的核心主題,並提供您深入瞭解細節的資源。
若要更詳細地回顧 .NET 7 Release Candidate 1 中包含的所有功能與改進,請查看先前的 .NET 7 Preview 部落格文章:
- Announcing .NET 7 Preview 1
- Announcing .NET 7 Preview 2
- Announcing .NET 7 Preview 3
- Announcing .NET 7 Preview 4
- Announcing .NET 7 Preview 5
- Announcing .NET 7 Preview 6
- Announcing .NET 7 Preview 7
.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
- Productivity comes to .NET MAUI in Visual Studio 2022
- Performance Improvements in .NET MAUI
- .NET Conf Focus on MAUI – That’s a wrap!
注意: 使用 .NET 7 試用 .NET MAUI 的 Visual Studio 體驗將在即將發佈的 17.4 Preview 2.1 版本中提供。
雲原生
雲原生是一組最佳實踐,用於在雲端中建置應用程式,以利用彈性、可擴充性、效率與速度。
.NET 是建置雲原生應用程式的絕佳選擇。若要瞭解更多關於 .NET 7 中的雲原生功能與改進,請查看以下資源:
- Announcing built-in container support for the .NET SDK
- Announcing gRPC JSON transcoding for .NET
- .NET 7 comes to Azure Functions & Visual Studio 2022
ARM64
ARM 提供了小尺寸、卓越效能與高功率效率。
.NET 幫助您建置在 ARM 裝置上執行的應用程式。有關 .NET 7 在 ARM64 上執行速度的更多資訊,請查看以下資源:
現代化
在現代版本的 .NET 上,您可以利用閃電般的效能與大量新功能來提高開發人員的生活品質。
為了讓升級體驗盡可能無縫,.NET 升級助手為您提供逐步引導體驗,透過分析與升級您的專案檔、程式碼檔案與相依性來現代化您的 .NET 應用程式。
有關 .NET 7 如何幫助您實現應用程式現代化的更多資訊,請查看以下資源:
- Incremental ASP.NET to ASP.NET Core Migration
- Migrating from ASP.NET to ASP.NET Core in Visual Studio
效能
.NET 很快。.NET 7 是目前最快的 .NET。.NET 7 在反射、堆疊置換 (OSR)、啟動時間、原生 AOT、迴圈最佳化與許多其他領域進行了超過一千項影響效能的改進。
有關為什麼 .NET 7 是目前最快版本的更多資訊,請查看以下資源:
貢獻者焦點:Filip Navara
向我們所有的社群成員致以巨大的「謝謝」。我們非常感謝您的周到貢獻。我們請貢獻者 @filipnavara 分享他的想法。

用 Filip 自己的話來說:
我從小就開始玩電腦。在拜訪我爺爺的時候,我經常看到他在 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 官方支援政策。
路線圖
.NET 版本包括產品、函式庫、執行階段和工具,代表了 Microsoft 內外多個團隊之間的合作。您可以透過閱讀產品路線圖來了解更多關於這些領域的資訊:
結語
我們 感謝 您對 .NET 的所有支援與貢獻。請 試用 .NET 7 Release Candidate 1 並告訴我們您的想法!