.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 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のフレームワークを生成する:
  • 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タグプレゼンテーションコンポーネント:

    @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. "Blazor"> Do you want to learn more about Blazor?
       From LineZero

    詳細については、https://docs.microsoft.com/zh-cn/aspnet/core/blazor/get-started?view=aspnetcore-3.0&tabs=visual-studio

    gRPC


    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