次の方法で共有


.NET 5 の新機能

.NET 5 は、3.1 に続く .NET Core の次のメジャー リリースです。 このリリースでは、次の 2 つの理由から、.NET Core 4 の代わりに .NET 5 という名前が付けられました。

  • .NET Framework 4.x との混乱を避けるため、バージョン番号 4.x はスキップされました。
  • "Core" は、これが今後の .NET の主要な実装であることを強調するために、名前から削除されました。 .NET 5 では、.NET Core や .NET Framework よりも多くの種類のアプリとより多くのプラットフォームがサポートされています。

ASP.NET Core 5.0 は .NET 5 に基づいていますが、ASP.NET MVC 5 と混同しないように "Core" という名前を保持しています。 同様に、Entity Framework Core 5.0 では、Entity Framework 5 と 6 との混同を避けるために、"Core" という名前が保持されます。

.NET 5 には、.NET Core 3.1 と比較して次の機能強化と新機能が含まれています。

.NET 5 で .NET Framework が置き換えられることはありません

.NET 5 以降のバージョンは今後の .NET の主要な実装ですが、.NET Framework 4.x は引き続きサポートされています。 次のテクノロジを .NET Framework から .NET 5 に移植する予定はありませんが、.NET には代替手段があります。

テクノロジー 推奨される代替手段
Web フォーム ASP.NET Core Blazor または Razor Pages
Windows ワークフロー (WF) エルザワークフロー

Windows Communication Foundation

Windows Communication Foundation (WCF) の元の実装は、Windows でのみサポートされていました。 ただし、.NET Foundation から使用できるクライアント ポートがあります。 これは完全にオープンソース 、クロスプラットフォームであり、Microsoft によってサポートされています。 コア NuGet パッケージを次に示します。

前述のクライアント ライブラリを補完するサーバー コンポーネントは、CoreWCFを通じて利用できます。 2022 年 4 月の時点で、CoreWCF は Microsoft によって正式にサポートされています。 ただし、WCF の代わりに gRPCを検討してください。

.NET 5 で .NET Standard が置き換えられることはありません

新しいアプリケーション開発では、クラス ライブラリを含むすべてのプロジェクトの種類に対して net5.0 Target Framework モニカー (TFM) を指定できます。 .NET 5 ワークロード間でのコードの共有が簡素化されました。必要なのは、net5.0 TFM です。

.NET 5 アプリとライブラリの場合、net5.0 TFM は、netcoreappnetstandard の TFM を結合して置き換えます。 ただし、.NET Framework、.NET Core、および .NET 5 ワークロード間でコードを共有する予定の場合は、TFM として netstandard2.0 を指定します。 詳細については、「.NET Standard」を参照してください。

C# の更新

.NET 5 アプリを作成する開発者は、最新の C# バージョンと機能にアクセスできます。 .NET 5 は C# 9 とペアになっています。これにより、多くの新機能が言語に追加されます。 いくつかのハイライトを次に示します。

  • レコード: 値ベースの等値セマンティクスを使用する参照型と、新しい with 式でサポートされる非破壊的な変化。

  • リレーショナル パターン マッチング: 比較評価と式 (論理パターンを含む)、新しいキーワード andornotなど、パターン マッチング機能を関係演算子に拡張します。

  • 最上位レベルのステートメント: C# の導入と学習を促進する手段として、Main メソッドを省略でき、次の例のような単純なアプリケーションが有効です。

    System.Console.Write("Hello world!");
    
  • 関数ポインター: 次の中間言語 (IL) オペコードを公開する言語コンストラクト: ldftncalli

使用可能な C# 9 機能の詳細については、「C# 9の新機能」を参照してください。

ソース ジェネレーター

強調表示された新しい C# 機能の一部に加えて、ソース ジェネレーターは開発者プロジェクトに移行しています。 ソース ジェネレーターを使用すると、コンパイル中に実行されるコードでプログラムを検査し、残りのコードと共にコンパイルされる追加のファイルを生成できます。

ソース ジェネレーターの詳細については、「C# ソース ジェネレーター の概要」および「C# ソース ジェネレーターのサンプル」を参照してください。

F# の最新情報

F# は .NET 関数型プログラミング言語であり、.NET 5 では開発者は F# 5 にアクセスできます。 新しい機能の1つは、C#やJavaScriptの補間文字列と似たものです。

let name = "David"
let age = 36
let message = $"{name} is {age} years old."

基本的な文字列補間に加えて、型指定された補間があります。 型指定補間では、指定された型が書式指定子と一致する必要があります。

let name = "David"
let age = 36
let message = $"%s{name} is %d{age} years old."

この形式は、型セーフな入力に基づいて文字列を書式設定する sprintf 関数に似ています。

詳細については、「F# 5の新機能」を参照してください。

Visual Basic の更新プログラム

.NET 5 では、Visual Basic の新しい言語機能はありません。 ただし、.NET 5 では、Visual Basic のサポートは次の機能に拡張されます。

説明 dotnet new パラメーター
コンソール アプリケーション console
クラス ライブラリ classlib
WPF アプリケーション wpf
WPF クラス ライブラリ wpflib
WPF カスタム コントロール ライブラリ wpfcustomcontrollib
WPF ユーザー コントロール ライブラリ wpfusercontrollib
Windows フォーム (WinForms) アプリケーション winforms
Windows フォーム (WinForms) クラス ライブラリ winformslib
単体テスト プロジェクト mstest
NUnit 3 テスト プロジェクト nunit
NUnit 3 テスト項目 nunit-test
xUnit テスト プロジェクト xunit

.NET CLI からのプロジェクト テンプレートの詳細については、dotnet newを参照してください。

System.Text.Json の新機能

System.Text.Jsonには、次の新機能があります。

関連項目