溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

dotNET 5.0正式版本的新功能有哪些

發(fā)布時間:2021-10-25 10:26:55 來源:億速云 閱讀:163 作者:iii 欄目:web開發(fā)

這篇文章主要介紹“dotNET 5.0正式版本的新功能有哪些”,在日常操作中,相信很多人在dotNET 5.0正式版本的新功能有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”dotNET 5.0正式版本的新功能有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

今天微軟開發(fā)團隊宣布發(fā)布.NET 5.0正式版。主要更新包括C#9和F#5在內(nèi)的一系列新功能和改進(jìn)。同期發(fā)布了ASP.NET Core,EF  Core,C#9和F#5??梢栽诠俜较螺d頁面下載跨平臺包括Windows,macOS和Linux和跨處理架構(gòu)包括x86,x64,Arm32,Arm64。

dotNET 5.0正式版本的新功能有哪些

Windows Visual Studio用戶,需要Visual Studio 16.8或更高版本才能支持.NET 5.0,在macOS用戶,需要  Visual Studio for Mac的最新版本。VS Code的C#插件已經(jīng)完全支持.NET 5.0和C#9。

一、.NET 5.0亮點

帶來了大量的功能改進(jìn),其中最亮眼的是:

  • .NET 5.0已通過在dot.net和Bing()上托管,進(jìn)行了數(shù)月來的測試。性能和穩(wěn)定性上有很大的提高。

  • C#9和F#5 帶了新的語言改進(jìn),例如C#9的Top-level編程和記錄,F(xiàn)#5提供了交互式編程,并提高了.NET上的功能性編程的性能。

  • .NET庫方面增強了Json序列化,正則表達(dá)式和HTTP(HTTP 1.1,HTTP/2)的性能。

  • 由于改進(jìn)了GC,分層編譯和其他方面,P95延遲有所減少。

  • 通過ClickOnce客戶端應(yīng)用程序發(fā)布,單文件應(yīng)用程序,減小的容器映像大小以及添加的Server Core容器映像,應(yīng)用程序部署選項更好。

  • Windows Arm64和WebAssembly擴展了平臺范圍。

1. 跨平臺和Microsoft支持

.NET 5.0有一個和.NET 3.1幾乎相同的平臺支持矩陣核心,適用于Windows,MacOS和Linux操作系統(tǒng)。如果操作系統(tǒng)支持使用.NET  Core 3.1,則大多數(shù)情況下應(yīng)該可以升級使用.NET 5.0。.NET 5.0最重要的新增功能是Windows Arm64。

.NET 5.0發(fā)布三個月后,會發(fā)布一個LTS版本.NET  6.0,.NET5.0技術(shù)支持會持續(xù)到2022年2月中。.NET6.0技術(shù)支持期為三年。

.NET 5.0是微軟第一個統(tǒng)一平臺愿景的實現(xiàn)版本,可以使用一組API,語言和工具來針對廣泛的應(yīng)用程序類型,包括移動,云,桌面和IoT。

實現(xiàn)這一愿景的第一步是整合.NET倉庫,其中包括很大一部分的Mono。為.NET運行庫和庫提供一個存儲庫是在各處交付相同產(chǎn)品的前提。它還有助于進(jìn)行廣泛的更改,這些更改會影響運行時和庫,這些存儲庫以前具有回購邊界。有些人擔(dān)心大型回購交易將更難管理。事實并非如此。

在.NET 5.0版本中,Blazor是利用回購合并和.NET統(tǒng)一的最佳示例。Blazor WebAssembly的運行時和庫現(xiàn)在是從合并的dotnet  /運行時庫中構(gòu)建的。服務(wù)器上的Blazor WebAssembly和Blazor使用完全相同的代碼。

2. 語言功能

作為.NET 5.0版本的一部分,C#9和F#5被包含在.NET 5.0 SDK中。Visual SDK也包含在5.0  SDK中。它不包括語言更改,但做了改進(jìn)以支持.NET Core上的Visual Basic應(yīng)用程序框架。

3. Top-level編程

Top-level編程是C#9中新推出的功能,下面一個led燈控制的演示程序,是官方Top-level編程的示例:

using System; using System.Device.Gpio; using System.Threading;   var pin = 18; var lightTime = 1000; var dimTime = 200;   Console.WriteLine($"Let's blink an LED!"); using GpioController controller = new (); controller.OpenPin(pin, PinMode.Output); Console.WriteLine($"GPIO pin enabled for use: {pin}");   // turn LED on and off while (true) { Console.WriteLine($"Light for {lightTime}ms"); controller.Write(pin, PinValue.High); Thread.Sleep(lightTime);   Console.WriteLine($"Dim for {dimTime}ms"); controller.Write(pin, PinValue.Low); Thread.Sleep(dimTime); }

從示例中可以看到target-typed的使用以及new對controller變量的分配。GpioController類型在定義等式左側(cè)所定義。而類型是在右側(cè)推斷的。該新語法是得替代傳統(tǒng)的var方法。

通過定義方法并利用同一文件或其他文件中定義的類型,Top-level編程還可能更加復(fù)雜。

4. 邏輯和屬性模式

C#9包括對新模式的支持。下面的CCS811氣體傳感器程序是邏輯模式的示例:

var threshChoice = Console.ReadKey(); Console.WriteLine(); if (threshChoice.KeyChar is 'Y' or 'y') { TestThresholdAndInterrupt(ccs811); }

另一個新模式是屬性模式??梢栽贛ycroft Information Access 6.0示例中看到幾個屬性檢查。在下面的代碼是從所拍攝的PN532  RFID和NFC讀取器示例:

if (pollingType is not { Length: <=15 }) { return null; }

該代碼測試pollingType是否為null或包含>15個字節(jié)。用來作為返回之前要測試的兩個錯誤條件。測試條件可以寫:

byte[]?nullpollingType is null or { Length: > 15 }

另外兩種模式。第一個是邏輯圖形中Mcp25xxx CAN總線。

public static byte GetRxBufferNumber(Address address) => address switch { >= Address.RxB0D0 and <= Address.RxB0D7 => 0, >= Address.RxB1D0 and <= Address.RxB1D7 => 1, _ => throw new ArgumentException(nameof(address), $"Invalid address value {address}."), };

第二個是一個邏輯模式在壓電蜂鳴器控制器。

if (element is not NoteElement noteElement) { // In case it's a pause element we have only just wait desired time. Thread.Sleep(durationInMilliseconds); } else { var frequency = GetFrequency(noteElement.Note, noteElement.Octave); _buzzer.PlayTone(frequency, (int)(durationInMilliseconds * 0.7)); Thread.Sleep((int)(durationInMilliseconds * 0.3)); }

5. 記錄

C#9包括一種稱為記錄的新型類。與常規(guī)類相比,它具有許多優(yōu)點,其中一半與更簡潔的語法有關(guān)。在下面的記錄是Bh2745 RGB傳感器的示例:

public record ChannelCompensationMultipliers(double Red, double Green, double Blue, double Clear);

可以這樣給其賦值:

ChannelCompensationMultipliers = new (2.2, 1.0, 1.8, 10.0);

6. 可空斷言改進(jìn)

.NET庫現(xiàn)在已完全支持可空斷言。如果啟用可空性,將從平臺上獲取更多類型信息。

大類通常在從構(gòu)造函數(shù)調(diào)用的幫助器方法中實例化對象成員。C#編譯器無法遵循對對象分配的調(diào)用流程。退出構(gòu)造函數(shù)時,它會認(rèn)為該成員為null,并使用發(fā)出警告CS8618。MemberNotNull屬性可解決此問題。該屬性應(yīng)用于助手方法。然后,編譯器將看到設(shè)置了該值,并意識到該方法是從構(gòu)造函數(shù)中調(diào)用的。

下面是一個在BMxx80溫度傳感器中的示例:

[MemberNotNull(nameof(_calibrationData))] private void ReadCalibrationData() { switch (this) { case Bme280 _: _calibrationData = new Bme280CalibrationData(); _controlRegister = (byte)Bmx280Register.CTRL_MEAS; break; case Bmp280 _: _calibrationData = new Bmp280CalibrationData(); _controlRegister = (byte)Bmx280Register.CTRL_MEAS; break; case Bme680 _: _calibrationData = new Bme680CalibrationData(); _controlRegister = (byte)Bme680Register.CTRL_MEAS; break; default: throw new Exception("Bmxx80 device not correctly configured. Could not find calibraton data."); }   _calibrationData.ReadFromDevice(this); }

實際的代碼中使用了條件編譯。因為項目是多目標(biāo)的,并且.NET 5.0+僅支持此屬性。使用該屬性可以跳過運行時檢查(在構(gòu)造函數(shù)中)。

7. 應(yīng)用部署

編寫或更新應(yīng)用程序后,需要對其進(jìn)行以使用戶受益。這可能是到Web服務(wù)器,云服務(wù)或客戶端計算機的,并且可能是使用Azure DevOps或GitHub  Actions之類的服務(wù)的CI/CD流的結(jié)果。

.NET 5.0,專注于改進(jìn)單個文件應(yīng)用程序,減小docker多階段構(gòu)建的容器大小,并為使用.NET  Core部署ClickOnce應(yīng)用程序提供更好的支持。

8. 容器

容器是最重要的云趨勢,.NET軟件堆棧的多個級別以多種方式對容器進(jìn)行支持。首先是在基礎(chǔ)方面的支持,這越來越受到容器方案和部署容器化應(yīng)用程序的開發(fā)人員的影響。

為和容器協(xié)調(diào)器的合作變得更加容易。添加了OpenTelemetry支持,以便可以從應(yīng)用程序中捕獲分布式跟蹤和指標(biāo)。dotnet-monitor是一個新工具,旨在作為從.NET進(jìn)程訪問診斷信息的主要方法。特別是,已經(jīng)開始構(gòu)建dotnet-monitor的容器變體,可以將其用作應(yīng)用程序sidecar。還在構(gòu)建dotnet/tye,以提高微服務(wù)開發(fā)人員在開發(fā)和部署到Kubernetes環(huán)境中的生產(chǎn)率。

.NET運行時現(xiàn)在支持cgroup v2,預(yù)計它將在2020年以后成為與容器相關(guān)的重要API。Docker當(dāng)前使用cgroup  v1(.NET已經(jīng)支持)。相比之下,cgroup v2比cgroup v1更簡單,更高效,更安全。Linux發(fā)行版和容器運行時正在。一旦變得更常見,.NET  5.0將在cgroup v2環(huán)境中正常工作。

除了Nano Server,還將發(fā)布Windows Server Core鏡像。該鏡像支持以下組合:Windows Server  2019長期服務(wù)通道(LTSC)、. NET 5.0和x64。還有其他更改,以減小Windows Server Core鏡像的大小。

作為使用" .NET"作為產(chǎn)品名稱的一部分,現(xiàn)在將.NET Core 2.1、3.1和.NET 5.0鏡像發(fā)布到repos系列。同.NET Core  2.1和3.1一起發(fā)布,同時支持多版本。.NET 5.0鏡像將發(fā)布到新位置。請相應(yīng)地更新您的語句和腳本。

作為.NET  5.0的一部分,將SDK映像重新建立在ASP.NET鏡像之上,而不是buildpack-deps,以顯著減小在多階段構(gòu)建方案中提取的聚合映像的大小。

Ubuntu 20.04 Focal 多階段構(gòu)建成本:

dotNET 5.0正式版本的新功能有哪些

下載節(jié)省量:100 MB(-30%)

Debian 10 Buster 多階段構(gòu)建成本:

dotNET 5.0正式版本的新功能有哪些

凈下載節(jié)省量:146 MB(-40%)

對Alpine和Nano Server進(jìn)行了類似的更改。Alpine或Nano  Server沒有任何buildpack-depssdk鏡像。對于多階段構(gòu)建,將看到Alpine和Nano Server以及5.0的巨大成功。

9. 單文件應(yīng)用

單個文件應(yīng)用程序作為單個文件發(fā)布和部署。該應(yīng)用程序及其依賴項都包含在該文件中。當(dāng)應(yīng)用程序運行時,依賴項直接從該文件加載到內(nèi)存中(不影響性能)。

在.NET  5.0中,單個文件應(yīng)用程序主要集中在Linux上(稍后再介紹)。它們可以是框架相關(guān)的,也可以是獨立的。依賴于全局安裝的.NET運行時,依賴于框架的單個文件應(yīng)用程序可能很小。自包含的單文件應(yīng)用程序較大(由于帶有運行時),但不需要作為安裝前步驟就安裝.NET運行時,因此可以正常工作。通常,依賴框架對開發(fā)和企業(yè)環(huán)境有利,而對于ISV,獨立包含通常是更好的選擇。

在所有平臺上,都有一個名為"  apphost"的組件。這是成為可執(zhí)行文件的文件,例如在Windows上或myapp.exe./myapp在基于Unix的平臺上。對于單文件應(yīng)用程序,創(chuàng)建了一個新的應(yīng)用程序主機"超級主機"。它具有與常規(guī)apphost相同的角色,但還包含運行時的靜態(tài)鏈接副本。超級主機是單文件方法的基本設(shè)計點。該模型是在帶有.NET  5.0的Linux上使用的模型。由于各種操作系統(tǒng)限制,無法在Windows或macOS上實現(xiàn)此方法。在Windows或macOS上沒有超級主機。在這些操作系統(tǒng)上,本機運行時二進(jìn)制文件(約3個)位于單個文件應(yīng)用程序旁邊(導(dǎo)致"不是單個文件")。

框架相關(guān)的單文件應(yīng)用程序:

dotnet publish -r linux-x64 --self-contained false /p:PublishSingleFile=true

自包含的單文件應(yīng)用程序:

dotnet publish -r linux-x64 --self-contained true /p:PublishSingleFile=true

還可以使用項目文件配置單個文件發(fā)布。

<Project Sdk="Microsoft.NET.Sdk">   <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net5.0</TargetFramework> <!-- The OS and CPU type you are targeting --> <RuntimeIdentifier>linux-x64</RuntimeIdentifier> <!-- Determine self-contained or framework-dependent --> <SelfContained>true</SelfContained> <!-- Enable single file --> <PublishSingleFile>true</PublishSingleFile> </PropertyGroup>   </Project>

10. ClickOnce

ClickOnce一直是流行的.NET部署選項。.NET Core 3.1和.NET 5.0 Windows應(yīng)用程序現(xiàn)在支持它。在.NET Core  3.0添加Windows Forms和WPF支持時,許多人會希望使用ClickOnce進(jìn)行應(yīng)用程序部署。在過去的一年中,.NET和Visual  Studio團隊共同努力,以在命令行和Visual Studio中啟用ClickOnce發(fā)布:

dotNET 5.0正式版本的新功能有哪些

目前支持的主要部署模型是框架相關(guān)的應(yīng)用程序。對.NET桌面運行時(即包含WPF和Windows窗體的運行時)的依賴很容易。

dotNET 5.0正式版本的新功能有哪些

dotNET 5.0正式版本的新功能有哪些

Mage的最大變化是它現(xiàn)在是在NuGet上分發(fā)的.NET工具。這意味著不需要在計算機上安裝任何特殊的東西,只需要.NET 5.0  SDK就可以將Mage安裝為.NET工具。也可以使用它來發(fā)布.NET  Framework應(yīng)用程序,但是,SHA1簽名和部分信任支持已被刪除。Mage安裝命令如下:

dotnet tool install -g Microsoft.DotNet.Mage

制作并分發(fā)ClickOnce安裝程序后,用戶將看到熟悉的ClickOnce安裝對話框。

二、工具改善

新改進(jìn)了Windows窗體設(shè)計器,更改了目標(biāo)框架適用于.NET 5.0及更高版本的方式,更改了WinRT的支持方式,并進(jìn)行了其他改進(jìn)。

1. Windows窗體設(shè)計器

Windows Forms設(shè)計器(用于.NET Core 3.1和.NET 5.0)已經(jīng)在Visual Studio  16.8中進(jìn)行了更新,現(xiàn)在支持所有Windows Forms控件。它還支持WinForms控件的Telerik  UI。設(shè)計器包括期望的所有設(shè)計器功能,包括:拖放,選擇,移動和調(diào)整大小,剪切/復(fù)制/粘貼/刪除控件,與屬性窗口集成,事件生成等。數(shù)據(jù)綁定和對更廣泛的第三方控件的支持即將推出。

dotNET 5.0正式版本的新功能有哪些

2. .NET 5.0目標(biāo)框架

新版本更改了用于目標(biāo)框架的方法。以下項目文件演示了新的.NET 5.0目標(biāo)框架。

<Project Sdk="Microsoft.NET.Sdk">  <PropertyGroup>  <OutputType>Exe</OutputType>  <TargetFramework>net5.0</TargetFramework>  </PropertyGroup>  </Project>

到目前為止,新表單比目前使用的樣式更緊湊,更直觀。另外,正在擴展目標(biāo)框架以描述操作系統(tǒng)依賴性。

Windows桌面API(包括Windows窗體,WPF和WinRT)僅在net5.0-windows可用??梢灾付ú僮飨到y(tǒng)版本,例如net5.0-windows7或net5.0-windows10.0.17763.0。如果要使用WinRT  API,則需要為Windows 10版本。

使用新的net5.0-windows  TFM時,跨平臺方案可能會更具挑戰(zhàn)性。如果您要避免為Windows構(gòu)建或避免在Linux上提取Windows運行時程序包,

3. WinRT Interop(重大更改)

Windows API主題上,已移至一個新模型,以作為.NET 5.0的一部分來支持WinRT API。包括調(diào)用API(在任一方向上;CLR  <==> WinRT),兩個類型系統(tǒng)之間的數(shù)據(jù)封送處理以及打算在類型系統(tǒng)或ABI邊界上統(tǒng)一對待。

在.NET 5.0中現(xiàn)有的WinRT互操作體系已被去除,這是一個巨大的變化。這意味著使用WinRT和.NET Core  3.x的應(yīng)用程序和庫將需要重建,并且不能按原樣在.NET 5.0上運行。使用WinRT API的庫將需要多目標(biāo)來管理.NET Core 3.1和.NET  5.0之間的這種差異。

未來,將依靠Windows中的WinRT團隊提供的新CsWinRT工具。它生成基于C#的WinRT互操作程序集,可以通過NuGet交付該程序集。Windows團隊正是針對Windows中的WinRT  API所做的。希望將WinRT(在Windows上)用作互操作系統(tǒng)的任何人都可以使用該工具,以將本機API公開給.NET或?qū)?NET  API公開給本機代碼。

CsWinRT工具在邏輯上類似于TLBIMP和tlbexp,雖然好多了。tlb工具依賴于.NET運行時中的許多COM互操作管道。CsWinRT工具僅依賴于公共.NET  API。就是說,C#9中的函數(shù)指針功能(部分在.NET 5.0運行時中實現(xiàn))在某種程度上受到CsWinRT工具需求的啟發(fā)。

這種新的WinRT互操作模型有幾個好處:

  • 可以獨立于.NET運行時進(jìn)行開發(fā)和改進(jìn)。

  • 它與為其他操作系統(tǒng)(如iOS和Android)提供的基于工具的互操作系統(tǒng)對稱。

  • 該工具可以利用其他.NET功能(AOT,C#功能,IL鏈接),而以前的系統(tǒng)則不提供該功能。

  • 簡化.NET運行時代碼庫。

  • 無需添加NuGet引用即可使用WinRT API。對于indows 10 TFM(在前面的.NET 5.0  TFM部分中已經(jīng)討論過)就足夠了。如果目標(biāo)是.NET Core 3.1或更早版本,則需要引用WinRT軟件包。

4. 本機導(dǎo)出

已經(jīng)為導(dǎo)出本機二進(jìn)制文件啟用導(dǎo)出,而本機二進(jìn)制文件在很長一段時間內(nèi)都已調(diào)用.NET代碼。該方案的構(gòu)建塊是對UnmanagedCallersOnlyAttribute的。

.NET Native導(dǎo)出項目支持:

  • 公開自定義的本地出口。

  • 不需要像COM這樣的高級互操作技術(shù)。

  • 跨平臺工作。

5. 事件管道

事件管道是在.NET Core 2.2中添加的新的系統(tǒng)和API,可以在任何操作系統(tǒng)上執(zhí)行性能和其他診斷調(diào)查。在.NET  5.0中,事件管道已得到擴展,以使事件探查器能夠?qū)懭胧录艿朗录?。對于以前依靠ETW(在Windows上)監(jiān)視應(yīng)用程序行為和性能的分析探查器,此方案至關(guān)重要。

新版本中可以通過事件管道獲得程序集加載信息。這項改進(jìn)是開始提供類似的診斷功能(作為.NET  Framework的一部分)的開始,例如。現(xiàn)在,可以使用通過以下命令來收集此信息:

dotnet-trace collect --providers Microsoft-Windows-DotNETRuntime:4:4 -- ./MyApp &ndash;my-arg 1

工作流在dotnet-trace docs中進(jìn)行了描述。可以查看簡單測試應(yīng)用程序的程序集加載信息。

dotNET 5.0正式版本的新功能有哪些

6. Microsoft.Extensions.Logging

Microsoft.Extensions.Logging庫中的控制臺日志提供程序進(jìn)行了改進(jìn)。可以通過ConsoleFormatter自定義對控制臺輸出的格式和顏色進(jìn)行完全控制。格式化程序API通過實現(xiàn)VT-100(大多數(shù)現(xiàn)代終端支持的)轉(zhuǎn)義序列的子集來實現(xiàn)豐富的格式化??刂婆_記錄器可以解析不受支持的終端上的轉(zhuǎn)義序列,使您可以為所有終端編寫單個格式化程序。

除了支持自定義格式器外,還添加了內(nèi)置的JSON格式器,該格式器向控制臺發(fā)出結(jié)構(gòu)化JSON日志。

7. Dump調(diào)試

調(diào)試托管代碼需要了解托管對象和構(gòu)造。數(shù)據(jù)訪問組件(DAC)是運行時執(zhí)行引擎的子集,該引擎具有這些構(gòu)造的知識,并且可以在沒有運行時的情況下訪問這些托管對象?,F(xiàn)在,可以使用WinDBG或dotnet  dump analyze在Windows上分析在Linux上收集的.NET Core進(jìn)程dump。

還添加了對從macOS上運行的.NET進(jìn)程捕獲ELF  dump的支持。由于ELF不是macOS上的本機可執(zhí)行文件(像lldb這樣的本地調(diào)試器將無法與這些dump一起使用)文件格式,因此將其設(shè)為選擇加入功能。要在macOS上支持收集,請設(shè)置環(huán)境變量COMPlus_DbgEnableElfDumpOnMacOS=1??梢允褂胐otnet  dump analyze來分析產(chǎn)生的dump。

8. 打印環(huán)境信息

隨著.NET擴展了對新操作系統(tǒng)和芯片體系結(jié)構(gòu)的支持,有時需要一種打印環(huán)境信息的方法。.NET5創(chuàng)建了一個簡單的.NET工具dotnet-runtimeinfo來執(zhí)行該操作。

可以使用以下命令安裝和運行該工具。

dotnet tool install -f dotnet-runtimeinfo dotnet-runtimeinfo

該工具以可以生成諸如如下格式的環(huán)境信息。

**.NET information Version: 5.0.0 FrameworkDescription: .NET 5.0.0 Libraries version: 5.0.0 Libraries hash: cf258a14b70ad9069470a108f13765e0e5988f51   **Environment information OSDescription: Linux 5.8.6-1-MANJARO-ARM #1 SMP Thu Sep 3 22:01:08 CEST 2020 OSVersion: Unix 5.8.6.1 OSArchitecture: Arm64 ProcessorCount: 6   **CGroup info** cfs_quota_us: -1 memory.limit_in_bytes: 9223372036854771712 memory.usage_in_bytes: 2740666368

其他更新

1. Windows Arm64

.NET應(yīng)用程序現(xiàn)在可以在Windows Arm64上本機運行。這是在.NET Core 3.0中添加的對Linux  Arm64的支持(對glibc和musl的支持)。

在.NET 5.0中,可以在Windows Arm64設(shè)備(例如Surface Pro X)上開發(fā)和運行應(yīng)用程序。已經(jīng)可以通過x86仿真在Windows  Arm64上運行.NET Core和.NET Framework應(yīng)用程序。這是可行的,但是本機Arm64執(zhí)行具有更好的性能。

用于Arm64的MSI安裝程序是此版本的最終更改之一。下面是.NET 5.0 SDK安裝程序。

dotNET 5.0正式版本的新功能有哪些

Windows Arm64上支持SDK,控制臺和ASP.NET Core應(yīng)用程序,但Windows桌面組件暫不支持。

2. Windows上支持ICU

ICU庫用于Unicode和全球化支持,以前僅在Linux和macOS上使用。現(xiàn)在在Windows  10上使用相同的庫。此更改使全球化API的行為(如特定文化區(qū)域的字符串比較)在Windows 10,macOS和Linux之間保持一致。還將ICU與Blazor  WebAssembly支持一起使用。

3. System.Text.Json

在.NET  5.0中已進(jìn)行了顯著改善,在性能,可靠性,并使熟悉Newtonsoft.Json的人們更容易采用。它還包括對將JSON對象反序列化為記錄的支持。

dotNET 5.0正式版本的新功能有哪些

使更新可用時,用戶將看到更新對話框。

dotNET 5.0正式版本的新功能有哪些

到此,關(guān)于“dotNET 5.0正式版本的新功能有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI