.NET Core 3.0およびASP.NET Core 3.0の展望
10465 ワード
先日マイクロソフトが発表しました.NET Core 3.0 Preview 9、これは.NET Core 3.0最後のプレビュー版.
.NET Core 3.0が正式にリリースされます.NET Confでリリース、.NET Confは9月23日から25日までです.
Visual Studio 2019 16.3プレビュー版3とVisual Studio for Mac 8.3がサポートする.NET Core 3.0は、これらのバージョンも同時にリリースされています.
からNET Core 3.0 Preview 7は生産に使用でき、現在dotnet公式サイトで使用されている.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 Standard 2.1をターゲットに、プロジェクトファイルを編集し、TargetFrameworkプロパティをnetstandard 2に変更する必要があります.1: .NET Frameworkはサポートしていません.NET Standard 2.1.
Microsoft.Data.SqlClientは、Microsoft Sql Serverのデータプロバイダです.
2つのシステムですData.SqlClientコンポーネントの連合体は、独立に存在する.NET Frameworkと.NET Coreにあります.
最新バージョンのインストール
Install-Package Microsoft.Data.SqlClient
https://github.com/dotnet/SqlClient
dotnet publish -r win10-x64/p:PublishSingleFile=true
.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 tool install--global dotnet-counters--version 3.0.0-preview 8.19412.1
使用例:
すべての情報を表示
dotnet-counters monitor --process-id 1902 System.Runtime
CPU使用GCおよび異常数の表示
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(R 2 R)形式にコンパイルすることで短縮できます.NET Coreアプリケーションの起動時間.R 2 Rは、プリコンパイル(AOT)形式である.
サンプルのアップグレード:
ILのみの適用:
起動時間:1.9秒
メモリ使用量:69.1 MB
アプリケーションサイズ:150 MB
ReadyToRunイメージを使用するには:
起動時間:1.3秒.
メモリ使用量:55.7 MB
アプリケーション・サイズ:156 MB
ReadyToRunコンパイルを有効にするには、次の操作が必要です.
PublishReadyToRunプロパティをtrueに設定します.RuntimeIdentifierを明示的にパブリッシュします.
dotnet publish -r win-x64 -c Release
ReadyToRunコンパイラでは現在、クロスポジションはサポートされていません.特定のターゲットでコンパイルする必要があります.例えば、Windows x 64のR 2 Rプログラムが必要な場合は、その環境でpublishコマンドを実行する必要があります.
IL linkerを使用すると、プログラムサイズを約68 MBから約28 MBに削減できます.
dotnet publish -r win10-x64 -c Release/p:PublishTrimmed=true/p:PublishSingleFile=true
使用例:
前編でも紹介したASP.NET Core 3.0プレビュー版体験.
ASP.NET Core 3.0の主な更新はBlazorとgRPCです
Blazorは使用するためのものである.NETはインタラクティブクライアントWeb UIのフレームワークを生成する: JavaScriptの代わりにC#を使用して、豊富なインタラクティブUIを作成します. 共有使用.NETが作成したサーバ側とクライアント側のアプリケーションロジック. は、モバイルブラウザを含む多くのブラウザをサポートするために、UIをHTMLおよびCSSとして提示する.
使用するNETがクライアントWeb開発を行うことで、以下のメリットが得られます. JavaScriptの代わりにC#を使用してコードを記述します. は、従来のものを利用する.NETライブラリエコシステム. は、サーバとクライアントとの間でアプリケーションロジックを共有する. は.NETのパフォーマンス、信頼性、セキュリティ. は、Windows、Linux、macOSのVisual Studioを常に効率的にサポートします. は、安定した機能が豊富で使いやすい共通言語、フレームワーク、ツールのセットに基づいて生成されます.
Blazorアプリケーションはコンポーネントベースです.Blazorのコンポーネントとは、ページ、ダイアログ、データ入力フォームなどのUI要素を指します.
コンポーネントクラスは、通常、Razorタグページ(ファイル拡張子.razor)として記述されます.BlazorのコンポーネントはRazorコンポーネントと呼ばれることがあります.
Razorタグプレゼンテーションコンポーネント:
ダイアログボックスの本文の内容(
BlazorはUIで構成された自然HTMLタグを使用します.HTML要素はコンポーネントを指定し、タグのプロパティはコンポーネントのプロパティに値を渡します.
以下の例では、
詳細については、https://docs.microsoft.com/zh-cn/aspnet/core/blazor/get-started?view=aspnetcore-3.0&tabs=visual-studio
gRPCの主な利点は:現代高性能軽量級RPCフレームワーク. 協定優先API開発は、デフォルトでプロトコルバッファを使用し、言語に関係のない実装を許可する. は、強力なタイプのサーバおよびクライアントを生成するために、複数の言語のツールで使用することができる. は、クライアント、サーバ、および双方向ストリーム処理呼び出しをサポートします. Protobufバイナリシーケンス化を使用して、ネットワークの使用を削減します.
これらの利点は、gRPCを以下のように適用する.効率が重要な軽量レベルのマイクロサービス. は、開発のために複数の言語を必要とするPolyglotシステムである. は、ストリーミング処理要求または応答を処理するポイント・ツー・ポイント・リアルタイム・サービスを必要とする.
C#インプリメンテーションは現在、公式のgRPCで紹介されていますが、現在のインプリメンテーションは、C(gRPC C-core)で作成されたライブラリに依存しています.
現在、Kestrel HTTPサーバーと完全管理ASPに基づいている.NET CoreはgRPCを実現する.
転載先:https://www.cnblogs.com/linezero/p/netcore3andaspnetcore3.html
.NET Core 3.0が正式にリリースされます.NET Confでリリース、.NET Confは9月23日から25日までです.
Visual Studio 2019 16.3プレビュー版3とVisual Studio for Mac 8.3がサポートする.NET Core 3.0は、これらのバージョンも同時にリリースされています.
からNET Core 3.0 Preview 7は生産に使用でき、現在dotnet公式サイトで使用されている.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; }
}
//
string json = ...
Person person = JsonSerializer.Parse(json);
// json
Person person = ...
string json = JsonSerializer.ToString(person);
.NET Standard 2.1
以てNET Standard 2.1をターゲットに、プロジェクトファイルを編集し、TargetFrameworkプロパティをnetstandard 2に変更する必要があります.1: .NET Frameworkはサポートしていません.NET Standard 2.1.
"Microsoft.NET.Sdk">
netstandard2.1
Microsoft.Data.SqlClient
Microsoft.Data.SqlClientは、Microsoft Sql Serverのデータプロバイダです.
2つのシステムですData.SqlClientコンポーネントの連合体は、独立に存在する.NET Frameworkと.NET Coreにあります.
最新バージョンのインストール
Install-Package Microsoft.Data.SqlClient
https://github.com/dotnet/SqlClient
単一のプログラムにパブリッシュ
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-preview 8.19412.1
使用例:
すべての情報を表示
dotnet-counters monitor --process-id 1902 System.Runtime
CPU使用GCおよび異常数の表示
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
アプリケーションセットをReadyToRun(R 2 R)形式にコンパイルすることで短縮できます.NET Coreアプリケーションの起動時間.R 2 Rは、プリコンパイル(AOT)形式である.
サンプルのアップグレード:
ILのみの適用:
起動時間:1.9秒
メモリ使用量:69.1 MB
アプリケーションサイズ:150 MB
ReadyToRunイメージを使用するには:
起動時間:1.3秒.
メモリ使用量:55.7 MB
アプリケーション・サイズ:156 MB
ReadyToRunコンパイルを有効にするには、次の操作が必要です.
PublishReadyToRunプロパティをtrueに設定します.RuntimeIdentifierを明示的にパブリッシュします.
"Microsoft.NET.Sdk">
Exe
netcoreapp3.0
true
dotnet publish -r win-x64 -c Release
ReadyToRunコンパイラでは現在、クロスポジションはサポートされていません.特定のターゲットでコンパイルする必要があります.例えば、Windows x 64のR 2 Rプログラムが必要な場合は、その環境でpublishコマンドを実行する必要があります.
IL linker
IL linkerを使用すると、プログラムサイズを約68 MBから約28 MBに削減できます.
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プレビュー版体験.
ASP.NET Core 3.0の主な更新はBlazorとgRPCです
Blazor
Blazorは使用するためのものである.NETはインタラクティブクライアントWeb UIのフレームワークを生成する:
使用するNETがクライアントWeb開発を行うことで、以下のメリットが得られます.
Blazorアプリケーションはコンポーネントベースです.Blazorのコンポーネントとは、ページ、ダイアログ、データ入力フォームなどのUI要素を指します.
コンポーネントクラスは、通常、Razorタグページ(ファイル拡張子.razor)として記述されます.BlazorのコンポーネントはRazorコンポーネントと呼ばれることがあります.
Razorタグプレゼンテーションコンポーネント:
@Title
@ChildContent
@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");
}
ダイアログボックスの本文の内容(
ChildContent
)とタイトル(Title
)は、UIでこのコンポーネントを使用するコンポーネントによって提供される.OnYes
は、ボタンのonclick
イベントによってトリガーされるC#メソッドである.BlazorはUIで構成された自然HTMLタグを使用します.HTML要素はコンポーネントを指定し、タグのプロパティはコンポーネントのプロパティに値を渡します.
以下の例では、
Index
アセンブリにおいて、上記のDialog
アセンブリが使用される.@page "/"
Hello, world!
Welcome to your new app.
詳細については、https://docs.microsoft.com/zh-cn/aspnet/core/blazor/get-started?view=aspnetcore-3.0&tabs=visual-studio
gRPC
gRPCの主な利点は:
これらの利点は、gRPCを以下のように適用する.
C#インプリメンテーションは現在、公式のgRPCで紹介されていますが、現在のインプリメンテーションは、C(gRPC C-core)で作成されたライブラリに依存しています.
現在、Kestrel HTTPサーバーと完全管理ASPに基づいている.NET CoreはgRPCを実現する.
転載先:https://www.cnblogs.com/linezero/p/netcore3andaspnetcore3.html