.NET Core 3.0稳定版发布
一年一度的 .NET 開發(fā)者盛會(huì) .NET Conf 2019 已正式開始了(舉辦時(shí)間為 9.23-9.25)。大會(huì)第一天最重磅也是最激動(dòng)人心的消息莫過于 .NET Core 3.0 穩(wěn)定版的發(fā)布。.NET 項(xiàng)目管理總監(jiān) Scott Hunter 在大會(huì)宣布了這則消息,并在主題演講環(huán)節(jié)圍繞 .NET Core 3.0?的新特性和社區(qū)展開了介紹。
作為一個(gè)大版本更新,.NET Core 3.0 引入了大量改進(jìn)和新特性,例如新增加的 Windows Forms 和 WPF、新的 JSON API、對(duì) ARM64 架構(gòu)的支持,以及全面提升的性能。對(duì)了,C# 8 也是 .NET Core 3.0 本次更新的一部分,其中包括可空引用類型(nullable)、異步流(Async Streams)和更多的模式。
除了 C# 8,.NET Core 3.0 的更新內(nèi)容還包括 F# 4.7,此版本主要是對(duì)語法進(jìn)行改進(jìn),并將目標(biāo)平臺(tái)升級(jí)至面向 .NET Standard 2.0。
.NET 團(tuán)隊(duì)表示 .NET Core 3.0 會(huì)兼容之前的版本,所以大家現(xiàn)在就可以將項(xiàng)目升級(jí)至 .NET Core 3.0。
.NET Core 3.0 的一些“新料”
在深入探究 .NET Core 3.0 的所有新功能之前,先來看看一些重要的改進(jìn),其中提及到了 C# 8、F# 4.7、.NET Standard 2.1、在其他發(fā)行版上的支持情況等。
要注意的是,如需使用 .NET Core 3.0,請(qǐng)將 Visual Studio 升級(jí)至 2019 16.3 版本(Windows 用戶)。在 .NET Core 3.0 穩(wěn)定版發(fā)布前,它已在 dot.net 和 Bing.com 這兩個(gè)網(wǎng)站上運(yùn)行了數(shù)月,并已通過嚴(yán)格的測試。微軟的團(tuán)隊(duì)也將很快在生產(chǎn)環(huán)境中將工作負(fù)載部署到 .NET Core 3.0?上。
許多組件的性能都獲得了巨大提升,詳情可查看介紹 .NET Core 3.0 性能改進(jìn)的內(nèi)容。
C# 8 增加了異步流(async streams)、范圍類型和索引類型(range/index)、更多的模式以及可空引用類型。可空引用類型主要用于幫助我們處理無處不在的空引用異常(NullReferenceException),另外,框架庫的底層已被注釋,編譯器會(huì)分析代碼流,因此我們能查看null值是否可以將其用于當(dāng)前位置。
F# 4.7?主要是通過使用隱式的yield表達(dá)式來簡化一些操作,以及語法。此外還提供了對(duì)LangVersion的支持、新增nameof關(guān)鍵字,和處于預(yù)覽階段的靜態(tài)類。F# 核心庫的目標(biāo)平臺(tái)為 .NET Standard 2.0,詳情點(diǎn)此了解。
.NET Standard 2.1 增加了可以在代碼中使用的類型集,它們也可同時(shí)用于 .NET Core 和 Xamarin。
.NET Core 現(xiàn)在已為 Windows 桌面應(yīng)用提供支持、同時(shí)支持 Windows Forms 和 WPF(已開源)。WPF 設(shè)計(jì)器已屬于 Visual Studio 2019 16.3 的一部分。Windows Forms 設(shè)計(jì)器則仍處于預(yù)覽階段,可從 VSIX 進(jìn)行下載。
.NET Core 應(yīng)用現(xiàn)在默認(rèn)情況下就具有可執(zhí)行文件。在之前的版本中,需要通過dotnet命令來啟動(dòng)應(yīng)用,如dotnet myapp.dll。不過從這個(gè)版本開始,我們可以使用特定于應(yīng)用程序的可執(zhí)行文件(例如?myapp或./myapp, )來啟動(dòng)應(yīng)用程序,具體取決于操作系統(tǒng)。
新增高性能的 JSON API,用于讀取器/寫入器、對(duì)象模型和序列化方案。這些 API 基于Span<T>從頭開始構(gòu)建,使用?UTF8 來替代 UTF16(如?string),另外由于這些 API 使用了最小化的內(nèi)存分配,因此帶來了更好的性能,減少了垃圾回收器的工作。詳情請(qǐng)查看 The future of JSON in .NET Core 3.0。
默認(rèn)情況下,垃圾回收器使用更少的內(nèi)存。對(duì)于許多應(yīng)用程序托管在同一服務(wù)器上的情況,此改進(jìn)非常有用。此外,新版本中 GC 能更好地利用具有 64 核(或大于)的機(jī)器的核心數(shù)量。
.NET Core 強(qiáng)化了對(duì) Docker 的支持,以使 .NET 應(yīng)用程序在容器中能按預(yù)期且有效地運(yùn)行。當(dāng)容器被配置為有限的內(nèi)存或 CPU 時(shí),垃圾回收器和線程池會(huì)更好地進(jìn)行適應(yīng)已提供最具優(yōu)化效果的運(yùn)行方式。.NET Core 的 Docker 鏡像體積也更小 —— 尤其是 SDK 鏡像。
支持 Raspberry Pi 和 ARM 芯片,以助力 IoT 開發(fā)。其中包括遠(yuǎn)程 Visual Studio 調(diào)試器。這就意味著我們可以使用新的 GPIO API 來部署可監(jiān)聽傳感器的應(yīng)用程序,并在顯示器上打印消息或圖像。ASP.NET 可用于將數(shù)據(jù)暴露為 API,或作為一個(gè)在 IoT 設(shè)備啟用配置的站點(diǎn)。
.NET Core 3.0 會(huì)被 11 月發(fā)布的 .NET Core 3.1 取代,因?yàn)楹笳卟攀?LTS 版本(至少會(huì)獲得三年的技術(shù)支持),不過官方還是建議大家先升級(jí)到 .NET Core 3.0,然后再升級(jí)到 3.1,這樣過渡起來更方便。
.NET Core 2.2 將于今年 12.23 到達(dá) EOL 階段。查看 .NET Core support policy。
.經(jīng)過與 Red Hat 的多年合作,.NET Core 3.0 將隨 RHEL 8 在 Red Hat Application Streams 中一起提供。
Visual Studio 用戶如需在 Windows 上使用 .NET Core 3.0,需要升級(jí)至 Visual Studio 2019 16.3。
Visual Studio 用戶如需在 macOS 上使用 .NET Core 3.0,需要升級(jí)至 Visual Studio for Mac 8.3。
Visual Studio Code 用戶則需要使用最新版本的 C# 擴(kuò)展,以確保最新的方案能夠正常工作,包括針對(duì) .NET Core 3.0 的目標(biāo)平臺(tái)。
.NET Core 3.0?的 Azure App Service 部署目前正在進(jìn)行中。
.NET Core 3.0 的 Azure Dev Ops 部署即將推出。
.NET Core 3.0 支持的平臺(tái)
Alpine: 3.9+
Debian: 9+
openSUSE: 42.3+
Fedora: 26+
Ubuntu: 16.04+
RHEL: 6+
SLES: 12+
macOS: 10.13+
Windows Client: 7, 8.1, 10 (1607+)
Windows Server: 2012 R2 SP1+
要注意的是,Windows Forms 和 WPF 應(yīng)用僅支持在 Windows 上運(yùn)行。
對(duì)芯片的支持情況如下:x64 on Windows, macOS, and Linux
x86 on Windows
ARM32 on Windows and Linux
ARM64 on Linux (kernel 4.14+)
注意:請(qǐng)確保 .NET Core 3.0 在 ARM64 上的部署使用 Linux Kernel 4.14 或更高版本。例如,Ubuntu 18.04 能滿足此要求,但 16.04 卻不滿足。
WPF 和 Windows Forms
現(xiàn)在我們可以在 Windows 上使用 .NET Core 3 構(gòu)建 WPF 和 Windows Forms 應(yīng)用程序了。有關(guān)兼容性方面的問題,微軟表示大可不必?fù)?dān)心,因?yàn)樗麄儚囊婚_始就考慮到了這個(gè)問題,以使將桌面應(yīng)用程序從 .NET Framework 遷移到 .NET Core 變得更加容易。下面是官方提供的一個(gè)例子,.NET Core Windows Forms App:Visual Studio 2019 16.3 支持創(chuàng)建面向 .NET Core 的 WPF 應(yīng)用程序,這包括新模板以及更新的 XAML 設(shè)計(jì)器和 XAML Hot Reload。
下圖展示了使用新設(shè)計(jì)器開發(fā)的 WPF 應(yīng)用程序:不過 Windows Forms 設(shè)計(jì)器目前尚處于預(yù)覽階段,可從此處單獨(dú)下載。微軟表示會(huì)在未來發(fā)布的 Visual Studio 中集成 Windows Forms 設(shè)計(jì)器。
更多內(nèi)容請(qǐng)查看「閱讀原文」。
總結(jié)
以上是生活随笔為你收集整理的.NET Core 3.0稳定版发布的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [翻译] ASP.NET Core 3.
- 下一篇: ASP.NET Core 3.0 使用g