ニュース

Microsoft、「.NET 5.0」を正式公開 ~C# 9.0/F# 5.0に対応、Windows ARM64もサポート

.NETの統合に向けた第一歩

Microsoft、「.NET 5.0」を正式リリース(“.NET Conf 2020”の資料より)

 米Microsoftは11月10日(現地時間)、クロスプラットフォーム対応のアプリ開発フレームワーク「.NET 5.0」を正式リリースした。「.NET 5.0」は「.NET Core 3.0」の後継バージョン(“4.0”はWindows専用の「.NET Framework 4.x」との混同を避けるためにスキップ)で、長くWindows開発を担ってきた「.NET Framework」、クロスプラットフォーム対応で大きな役割を果たしてきた「Xamarin」「Mono」など、プラットフォームで分断されていた.NETの統一を目指した最初の一歩となっている。

 「.NET 5.0」は、「C# 9.0」「F# 5.0」をサポート。「C# 9」ではトップレベルのプログラムや「Java」でも採用されたレコード型などの新しい言語機能がサポートされた。「F# 5」では「Jupyter Notebooks」「nteract」「.NET Interactive Notebooks」への対応に加え、ランライムやコンパイラーのパフォーマンス向上が図られた。言語機能の拡充は凍結されているものの、「Visual Basic」も「.NET 5.0」で利用できるよう改善された。

 .NET ライブラリではJSONシリアライゼーション、正規表現、HTTP(HTTP 1.1、HTTP/2)のパフォーマンスが強化された。null許容(nullable)アノテーションにより、参照型変数にnull値が混入しないようプログラミングするのも容易だ。

 また、プラットフォーム対応の拡大も「.NET 5.0」の目玉と言えるだろう。WindowsではARM64が新たにサポートされ、MSIインストーラーも用意されるようになったほか、Webブラウザーで動作する「Blazor WebAssembly」の開発も正式にサポートされた。「Blazor」はもともと「Mono」をベースとしているが、現在は「.NET」と統一された“GitHub”リポジトリ(dotnet/runtime)からランタイムとライブラリが構築されるようになっており、サーバーの「Blazor」もWebブラウザーで動く「Blazor WebAssembly」も同じコードを利用する。「.NET」の統合を象徴する取り組みと言えるだろう。

 「.NET 5.0」はリリースされたばかりだが、すでに“dot.net”や“Bing.com”で数カ月にわたる実戦テストが行われている。ガベージコレクションやJITコンパイラーの改善によりパフォーマンスの向上も著しい。「.NET Framework」で長年にわたり用いられてきた「ClickOnce」によるアプリのインストール、単一の実行ファイル生成、コンテナイメージサイズの縮小、「Server Core」コンテナイメージの追加など、デプロイ関連でも多くの改善が行われている。

お馴染みの「ClickOnce」インストーラー

 Windowsで開発する場合、「.NET 5.0」は「Visual Studio 16.8」以降でサポートされる。「Visual Studio Code」の「C#」拡張機能はすでに「.NET 5.0」と「C# 9.0」に対応済みだ。

 サポート期間は、次の「.NET 6.0」がリリースされて3カ月後、つまり2022年2月中旬までとなる。「.NET」は毎年11月ごろにリリースされ、偶数バージョンが3年間サポートされる長期サポート(LTS)版となる。「.NET 6.0」の初期ビルドはすでに存在し、Appleの新しいCPU“M1”にも対応するという。

「.NET」のリリーススケジュール