日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET Core 3.0及ASP.NET Core 3.0 前瞻

發(fā)布時間:2023/12/4 asp.net 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET Core 3.0及ASP.NET Core 3.0 前瞻 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前幾天微軟發(fā)布了 .NET Core 3.0 Preview 9 ,這是.NET?Core 3.0 最后一個預(yù)覽版。

[翻譯] .NET Core 3.0 Preview 9 發(fā)布


.NET Core 3.0?正式發(fā)布將在.NET?Conf 上發(fā)布,.NET Conf 時間是9月23日至25日。

Visual Studio 2019 16.3預(yù)覽版3和Visual Studio for Mac?8.3支持.NET?Core 3.0 ,這些版本也同時發(fā)布。

從.NET?Core 3.0 Preview 7就可用于生產(chǎn),目前dotnet官網(wǎng)就是使用?https://dotnet.microsoft.com/?Powered by .NET Core 3.0.0-preview9-19423-09。

博客園也在前些天升級為.NET?Core 3.0 Preview 8,目前運行算是良好。

下面實際體驗.NET?Core 3.0 新特性。

.NET Core 3.0

System.Text.Json

示例:

public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime? BirthDay { get; set; }
}
//轉(zhuǎn)成對象
string json = ...
Person person = JsonSerializer.Parse<Person>(json);

//轉(zhuǎn)成json字符串
Person person = ...
string json = JsonSerializer.ToString(person);

.NET Standard 2.1

要以.NET?Standard 2.1為目標(biāo),必須編輯項目文件并將TargetFramework屬性更改為netstandard2.1: .NET?Framework不支持.NET?Standard 2.1。

<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
</PropertyGroup>

</Project>

Microsoft.Data.SqlClient

Microsoft.Data.SqlClient是Microsoft Sql Server的數(shù)據(jù)提供程序。

它是兩個System.Data.SqlClient組件的聯(lián)合體,獨立存在于.NET Framework和.NET Core中。

最新版本安裝

Install-Package Microsoft.Data.SqlClient?

https://github.com/dotnet/SqlClient?

發(fā)布成單個程序

dotnet publish -r win10-x64 /p:PublishSingleFile=true

Alpine Docker images

.NET Core and?ASP.NET?Core on ARM64

docker pull?mcr.microsoft.com/dotnet/core/runtime:3.0-alpine-arm64v8?

docker pull?mcr.microsoft.com/dotnet/core/aspnet:3.0-alpine-arm64v8

dotnet-counters

安裝 : dotnet tool install --global dotnet-counters --version 3.0.0-preview8.19412.1

使用示例:

顯示所有信息

dotnet-counters monitor --process-id 1902 System.Runtime

顯示CPU使用 GC 及異常數(shù)

dotnet-counters monitor --process-id 1902 System.Runtime[cpu-usage,gc-heap-size,exception-count]

官方文檔:https://github.com/dotnet/diagnostics/blob/master/documentation/dotnet-counters-instructions.md

ReadyToRun

你可以通過將應(yīng)用程序集編譯為ReadyToRun(R2R)格式來縮短.NET?Core應(yīng)用程序的啟動時間。R2R是一種提前(AOT)編譯的形式。

示例提升:

僅限IL的應(yīng)用:

啟動時間:1.9秒

內(nèi)存使用量:69.1 MB

應(yīng)用程序大小:150 MB

使用ReadyToRun圖像:

啟動時間:1.3秒。

內(nèi)存使用量:55.7 MB

應(yīng)用程序大小:156 MB

要啟用ReadyToRun編譯 需要以下操作:

將PublishReadyToRun屬性設(shè)置為true。 使用顯式發(fā)布RuntimeIdentifier。

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
</Project>

dotnet publish -r win-x64 -c Release

ReadyToRun編譯器目前不支持交叉定位。需要在給定目標(biāo)上進行編譯。例如,如果想要Windows x64的R2R程序,則需要在該環(huán)境中運行publish命令。

IL linker

使用IL linker 可以將程序大小從大約68MB減少到大約28MB

dotnet publish -r win10-x64 -c Release /p:PublishTrimmed=true /p:PublishSingleFile=true


HttpClient支持HTTP/2

使用示例:

var client = new HttpClient() { BaseAddress = new Uri("https://localhost:5001") };
// HTTP/1.1 request
using (var response = await client.GetAsync("/"))
{
Console.WriteLine(response.Content);
}
// HTTP/2 request
using (var request = new HttpRequestMessage(HttpMethod.Get, "/") { Version = new Version(2, 0) })
using (var response = await client.SendAsync(request))
{
Console.WriteLine(response.Content);
}

ASP.NET Core 3.0

前一篇也有介紹ASP.NET Core 3.0預(yù)覽版體驗。

ASP.NET Core 3.0中主要更新還是Blazor和gRPC

Blazor

Blazor 是一個用于使用 .NET 生成交互式客戶端 Web UI 的框架:

  • 使用 C# 代替 JavaScript 來創(chuàng)建豐富的交互式 UI。

  • 共享使用 .NET 編寫的服務(wù)器端和客戶端應(yīng)用邏輯。

  • 將 UI 呈現(xiàn)為 HTML 和 CSS,以支持眾多瀏覽器,其中包括移動瀏覽器。

使用 .NET 進行客戶端 Web 開發(fā)可提供以下優(yōu)勢:

  • 使用 C# 代替 JavaScript 來編寫代碼。

  • 利用現(xiàn)有的 .NET 庫生態(tài)系統(tǒng)。

  • 在服務(wù)器和客戶端之間共享應(yīng)用邏輯。

  • 受益于 .NET 的性能、可靠性和安全性。

  • 始終高效支持 Windows、Linux 和 macOS 上的 Visual Studio。

  • 以一組穩(wěn)定、功能豐富且易用的通用語言、框架和工具為基礎(chǔ)來進行生成。

Blazor 應(yīng)用基于組件 。?Blazor 中的組件是指 UI 元素,例如,頁面、對話框或數(shù)據(jù)輸入窗體。

組件類通常以?Razor?標(biāo)記頁(文件擴展名為 .razor )的形式編寫。?Blazor 中的組件有時被稱為 Razor 組件 。

Razor 標(biāo)記演示組件:

<div>
<h1>@Title</h1>

@ChildContent

<button @οnclick="OnYes">Yes!</button>
</div>

@code {
[Parameter]
public string Title { get; set; }

[Parameter]
public RenderFragment ChildContent { get; set; }

private void OnYes()
{
Console.WriteLine("Write to the console in C#! 'Yes' button was selected.From LineZero");
}

對話框的正文內(nèi)容 (ChildContent) 和標(biāo)題 (Title) 由在其 UI 中使用此組件的組件提供。?OnYes?是由按鈕的?onclick?事件觸發(fā)的 C# 方法。

Blazor 使用 UI 構(gòu)成的自然 HTML 標(biāo)記。?HTML 元素指定組件,并且標(biāo)記的特性將值傳遞給組件的屬性。

在以下示例中,Index?組件中使用上面的?Dialog?組件。

@page "/"

<h1>Hello, world!</h1>

Welcome to your new app.

<Dialog Title="Blazor">
Do you want to <i>learn more</i> about Blazor?
   From LineZero
</Dialog>

更多官方介紹:https://docs.microsoft.com/zh-cn/aspnet/core/blazor/get-started?view=aspnetcore-3.0&tabs=visual-studio

gRPC

gRPC 的主要優(yōu)點是:

  • 現(xiàn)代高性能輕量級 RPC 框架。

  • 協(xié)定優(yōu)先 API 開發(fā),默認(rèn)使用協(xié)議緩沖區(qū),允許與語言無關(guān)的實現(xiàn)。

  • 可用于多種語言的工具,以生成強類型服務(wù)器和客戶端。

  • 支持客戶端、服務(wù)器和雙向流式處理調(diào)用。

  • 使用 Protobuf 二進制序列化減少對網(wǎng)絡(luò)的使用。

這些優(yōu)點使 gRPC 適用于:

  • 效率至關(guān)重要的輕量級微服務(wù)。

  • 需要多種語言用于開發(fā)的 Polyglot 系統(tǒng)。

  • 需要處理流式處理請求或響應(yīng)的點對點實時服務(wù)。

雖然 C# 實現(xiàn)目前在官方?gRPC 上有介紹,但當(dāng)前實現(xiàn)依賴于用 C (gRPC?C-core) 編寫的本機庫。?

目前正在基于 Kestrel HTTP 服務(wù)器和完全托管的 ASP.NET Core 實現(xiàn)gRPC。

原文鏈接:https://www.cnblogs.com/linezero/p/netcore3andaspnetcore3.html


.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總?http://www.csharpkit.com?

總結(jié)

以上是生活随笔為你收集整理的.NET Core 3.0及ASP.NET Core 3.0 前瞻的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。