.NET Core 3.0 穩定版發布
作爲一個(gè)大(dà)版本更新,.NET Core 3.0引入了(le)大(dà)量改進和(hé)新特性,例如新增加的(de)Windows Forms和(hé)WPF、新的(de)JSON API、對(duì) ARM64架構的(de)支持,以及全面提升的(de)性能。對(duì)了(le),C# 8也(yě)是.NET Core 3.0本次更新的(de)一部分(fēn),其中包括可(kě)空引用(yòng)類型(nullable)、異步流(Async Streams)和(hé)更多(duō)的(de)模式。
除了(le)C# 8,.NET Core 3.0的(de)更新内容還(hái)包括 F# 4.7,此版本主要是對(duì)語法進行改進,并将目标平台升級至面向 .NET Standard 2.0。
.NET團隊表示 .NET Core 3.0會兼容之前的(de)版本,所以大(dà)家現在就可(kě)以将項目升級至 .NET Core 3.0。
下(xià)載地址
.NET Core 3.0的(de)一些“新料”
在深入探究.NET Core 3.0的(de)所有新功能之前,先來(lái)看看一些重要的(de)改進,其中提及到了(le) C# 8、F# 4.7、.NET Standard 2.1、在其他(tā)發行版上的(de)支持情況等。
在.NET Core 3.0穩定版發布前,它已在 dot.net 和(hé) Bing.com 這(zhè)兩個(gè)網站上運行了(le)數月(yuè),并已通(tōng)過嚴格的(de)測試。微軟的(de)團隊也(yě)将很快(kuài)在生産環境中将工作負載部署到 .NET Core 3.0 上。
許多(duō)組件的(de)性能都獲得(de)了(le)巨大(dà)提升,詳情可(kě)查看介紹 .NET Core 3.0性能改進的(de)内容。
C# 8 增加了(le)異步流(async streams)、範圍類型和(hé)索引類型(range/index)、更多(duō)的(de)模式以及可(kě)空引用(yòng)類型。可(kě)空引用(yòng)類型主要用(yòng)于幫助我們處理(lǐ)無處不在的(de)空引用(yòng)異常(NullReferenceException),另外,框架庫的(de)底層已被注釋,編譯器會分(fēn)析代碼流,因此我們能查看null值是否可(kě)以将其用(yòng)于當前位置。
F# 4.7 主要是通(tōng)過使用(yòng)隐式的(de)yield表達式來(lái)簡化(huà)一些操作,以及語法。此外還(hái)提供了(le)對(duì)LangVersion的(de)支持、新增nameof關鍵字,和(hé)處于預覽階段的(de)靜态類。F#核心庫的(de)目标平台爲.NET Standard 2.0,詳情點此了(le)解。
.NET Standard 2.1 增加了(le)可(kě)以在代碼中使用(yòng)的(de)類型集,它們也(yě)可(kě)同時(shí)用(yòng)于.NET Core和(hé)Xamarin。
.NET Core 現在已爲 Windows桌面應用(yòng)提供支持、同時(shí)支持 Windows Forms 和(hé) WPF(已開源)。WPF設計器已屬于Visual Studio 2019 16.3的(de)一部分(fēn)。Windows Forms設計器則仍處于預覽階段,可(kě)從 VSIX進行下(xià)載。
.NET Core應用(yòng)現在默認情況下(xià)就具有可(kě)執行文件。在之前的(de)版本中,需要通(tōng)過dotnet命令來(lái)啓動應用(yòng),如dotnet myapp.dll。不過從這(zhè)個(gè)版本開始,我們可(kě)以使用(yòng)特定于應用(yòng)程序的(de)可(kě)執行文件(例如 myapp或./myapp, )來(lái)啓動應用(yòng)程序,具體取決于操作系統。
新增高(gāo)性能的(de)JSON API,用(yòng)于讀取器/寫入器、對(duì)象模型和(hé)序列化(huà)方案。這(zhè)些API基于Span從頭開始構建,使用(yòng) UTF8來(lái)替代UTF16(如 string),另外由于這(zhè)些API使用(yòng)了(le)最小化(huà)的(de)内存分(fēn)配,因此帶來(lái)了(le)更好的(de)性能,減少了(le)垃圾回收器的(de)工作。詳情請查看 The future of JSON in .NET Core 3.0。
默認情況下(xià),垃圾回收器使用(yòng)更少的(de)内存。對(duì)于許多(duō)應用(yòng)程序托管在同一服務器上的(de)情況,此改進非常有用(yòng)。此外,新版本中GC能更好地利用(yòng)具有64核(或大(dà)于)的(de)機器的(de)核心數量。
.NET Core強化(huà)了(le)對(duì)Docker 的(de)支持,以使.NET應用(yòng)程序在容器中能按預期且有效地運行。當容器被配置爲有限的(de)内存或CPU時(shí),垃圾回收器和(hé)線程池會更好地進行适應已提供最具優化(huà)效果的(de)運行方式。.NET Core的(de)Docker鏡像體積也(yě)更小——尤其是SDK鏡像。
支持Raspberry Pi和(hé) ARM芯片,以助力IoT開發。其中包括遠(yuǎn)程Visual Studio調試器。這(zhè)就意味著(zhe)我們可(kě)以使用(yòng)新的(de)GPIO API來(lái)部署可(kě)監聽(tīng)傳感器的(de)應用(yòng)程序,并在顯示器上打印消息或圖像。ASP.NET可(kě)用(yòng)于将數據暴露爲API,或作爲一個(gè)在 IoT設備啓用(yòng)配置的(de)站點。
.NET Core 3.0會被11月(yuè)發布的(de).NET Core 3.1取代,因爲後者才是 LTS版本(至少會獲得(de)三年的(de)技術支持),不過官方還(hái)是建議(yì)大(dà)家先升級到 .NET Core 3.0,然後再升級到3.1,這(zhè)樣過渡起來(lái)更方便。
.NET Core 2.2将于今年12.23到達EOL階段。查看 .NET Core support policy。
.經過與Red Hat的(de)多(duō)年合作,.NET Core 3.0将随RHEL 8 在Red Hat Application Streams中一起提供。
Visual Studio用(yòng)戶如需在Windows上使用(yòng).NET Core 3.0,需要升級至Visual Studio 2019 16.3。
Visual Studio用(yòng)戶如需在macOS上使用(yòng).NET Core 3.0,需要升級至Visual Studio for Mac 8.3。
Visual Studio Code 用(yòng)戶則需要使用(yòng)最新版本的(de)C#擴展,以确保最新的(de)方案能夠正常工作,包括針對(duì).NET Core 3.0的(de)目标平台。
.NET Core 3.0 的(de) Azure App Service 部署目前正在進行中。
.NET Core 3.0的(de)Azure Dev Ops部署即将推出。
.NET Core 3.0支持的(de)平台
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+
要注意的(de)是,Windows Forms和(hé)WPF應用(yòng)僅支持在Windows上運行。
對(duì)芯片的(de)支持情況如下(xià):
x64 on Windows, macOS, and Linux
x86 on Windows
ARM32 on Windows and Linux
ARM64 on Linux (kernel 4.14+)
注意:請确保.NET Core 3.0在ARM64上的(de)部署使用(yòng)Linux Kernel 4.14或更高(gāo)版本。例如,Ubuntu 18.04能滿足此要求,但16.04卻不滿足。
- IT服務外包
- IT采購(gòu)
- 弱電工程
- 系統集成
- 網絡安全
咨詢電話(huà):
021-51697581實時(shí)掌握逾仕最新動态