欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

dotNET5.0正式版本的新功能有哪些

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

創(chuàng)新互聯(lián)公司主要從事網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)伊犁,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢建站服務(wù):13518219792

今天微軟開(kāi)發(fā)團(tuán)隊(duì)宣布發(fā)布.NET 5.0正式版。主要更新包括C#9和F#5在內(nèi)的一系列新功能和改進(jìn)。同期發(fā)布了ASP.NET Core,EF  Core,C#9和F#5。可以在官方下載頁(yè)面下載跨平臺(tái)包括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亮點(diǎn)

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

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

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

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

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

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

  • Windows Arm64和WebAssembly擴(kuò)展了平臺(tái)范圍。

1. 跨平臺(tái)和Microsoft支持

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

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

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

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

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

2. 語(yǔ)言功能

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

3. Top-level編程

Top-level編程是C#9中新推出的功能,下面一個(gè)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對(duì)controller變量的分配。GpioController類(lèi)型在定義等式左側(cè)所定義。而類(lèi)型是在右側(cè)推斷的。該新語(yǔ)法是得替代傳統(tǒng)的var方法。

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

4. 邏輯和屬性模式

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

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

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

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

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

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

另外兩種模式。第一個(gè)是邏輯圖形中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}."), };

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

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包括一種稱(chēng)為記錄的新型類(lèi)。與常規(guī)類(lèi)相比,它具有許多優(yōu)點(diǎn),其中一半與更簡(jiǎn)潔的語(yǔ)法有關(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庫(kù)現(xiàn)在已完全支持可空斷言。如果啟用可空性,將從平臺(tái)上獲取更多類(lèi)型信息。

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

下面是一個(gè)在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); }

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

7. 應(yīng)用部署

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

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

8. 容器

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

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

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

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

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

作為.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%)

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

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

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

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

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

框架相關(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

還可以使用項(xiàng)目文件配置單個(gè)文件發(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部署選項(xiàng)。.NET Core 3.1和.NET 5.0 Windows應(yīng)用程序現(xiàn)在支持它。在.NET Core  3.0添加Windows Forms和WPF支持時(shí),許多人會(huì)希望使用ClickOnce進(jìn)行應(yīng)用程序部署。在過(guò)去的一年中,.NET和Visual  Studio團(tuán)隊(duì)共同努力,以在命令行和Visual Studio中啟用ClickOnce發(fā)布:

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

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

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

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

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

dotnet tool install -g Microsoft.DotNet.Mage

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

二、工具改善

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

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

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

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

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

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

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

到目前為止,新表單比目前使用的樣式更緊湊,更直觀。另外,正在擴(kuò)展目標(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時(shí),跨平臺(tái)方案可能會(huì)更具挑戰(zhàn)性。如果您要避免為Windows構(gòu)建或避免在Linux上提取Windows運(yùn)行時(shí)程序包,

3. WinRT Interop(重大更改)

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

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

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

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

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

  • 可以獨(dú)立于.NET運(yùn)行時(shí)進(jìn)行開(kāi)發(fā)和改進(jìn)。

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

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

  • 簡(jiǎn)化.NET運(yùn)行時(shí)代碼庫(kù)。

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

4. 本機(jī)導(dǎo)出

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

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

  • 公開(kāi)自定義的本地出口。

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

  • 跨平臺(tái)工作。

5. 事件管道

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

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

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

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

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

6. Microsoft.Extensions.Logging

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

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

7. Dump調(diào)試

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

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

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

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

可以使用以下命令安裝和運(yùn)行該工具。

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上本機(jī)運(yùn)行。這是在.NET Core 3.0中添加的對(duì)Linux  Arm64的支持(對(duì)glibc和musl的支持)。

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

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

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

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

2. Windows上支持ICU

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

3. System.Text.Json

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

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

使更新可用時(shí),用戶將看到更新對(duì)話框。

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

到此,關(guān)于“dotNET 5.0正式版本的新功能有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

分享名稱(chēng):dotNET5.0正式版本的新功能有哪些
當(dāng)前鏈接:http://aaarwkj.com/article28/ijppcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、品牌網(wǎng)站制作、搜索引擎優(yōu)化、網(wǎng)站營(yíng)銷(xiāo)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
日韩成人手机视频在线观看 | 国产三级亚洲三级在线理论| 加勒比在线观看欧美一区| 亚洲专区综合红桃av| 欧美精品一区二区亚洲| 亚洲精品国产精品粉嫩av| 欧美精品黄片免费在线观看| 四虎影视国产精品久久| 国产欧美日韩在线高清| 国产又爽又乱的视频在线| 精品国产第一区二区三区| 日本电影在线看一区二区| av天堂男人站在线观看| 亚洲av午夜福利麻豆av| 人人爽久久爱夜夜躁一区| 日韩成人精品一区欧美成人| 久久99久久精品视频国产| 热热久久这里只有精品| 亚洲日本国产精品第一页| 国产一区黄片视频在线观看| 欧美日韩性视频播放器| 高清中文一区二区三区| 欧美一区二区久久综合| 亚洲日本香蕉视频观看视频| 尤物在线观看精品视频| 欧美亚洲一区二区三区91| 日本爱爱一区二区三区| 亚洲二区中文字幕在线观看| 国产口爆一区二区三区| 欧美一区二区三区十区| 日韩经典三级精品自拍| 日韩在线视频精品一区| 日本东京热二三四区不卡免费的| 欧美亚洲国产青草久久| 国产精品精品国产色婷婷| 欧美曰韩国内精品中文| 人妻中文字幕视频在线| 日韩av在线不卡一区二区| 日韩在线视频一区二区三| 激情男女一区二区三区| 97免费人妻在线视频|