新たにリリースされた.NET5について紹介

こんにちは。内定者ライターの鎌田です。今回は2020年11月に正式にリリースされた.NET5.0について紹介していきたいと思います。

.NETとは

はじめに.NET5.0について紹介する前に.NETについて紹介したいと思います。
.NETはMicrosoftが提供する無料のオープンソース開発プラットフォームのことで、複数種類のアプリケーションを開発・実行することができます。

.NETの実装

.NETの実装についてMicrosoftの公式ドキュメントでは次のように説明しています。

.NET の実装には次のものが含まれます。
                  
・1 つまたは複数のランタイム。次に例を示します。CLR、CoreRT。
 
・.NET Standard の1つのバージョンを実装し、他の API を含むことができるクラス ライブラリ。たとえば、.NET Frameworkおよび.NET 5 (および .NET Core) 以降のバージョンのBCLです。
 
・必要に応じて、1つまたは複数のアプリケーション フレームワーク。次に例を示します。 .NET Framework と .NET 5 には、ASP.NET、Windows フォーム、WPF が含まれます。
 
・必要に応じて、開発ツール。一部の開発ツールは、複数の実装間で共有されます。
 
(引用元:*1)

現在Microsoftによって下記4つの.NETの実装がサポートされています。(*2)
・ .NET Framework
・ Mono
・ .NET 5.0 (および .NET Core) 以降のバージョン
・ UWP

※今回紹介する.NET5.0とはあまり関係が無いので、下記表ではUWPは省略しています。

.NET5.0は.NET統一計画の第一歩

Microsoftは2019年5月に開催された『Microsoft Build 2019』にて、.NETの統一計画を発表しました。
計画の目的は1つのAPI、言語、ツールを使用して多くの種類のアプリケーションを開発できるようにすることです。

今後のリリーススケジュール

元々の計画では.NET5.0で統一計画を実現する予定でしたが、新型コロナウイルスの影響で.NET5.0と.NET6.0、2回のリリースで統一を実現していくことになりました。
そのため.NET5のリリースではまだ完全に統一されたわけではありませんが、統一計画実現のための重要な第一歩となったことは間違いないでしょう。
今後は毎年1回.NET(.NET5以降の実装バージョン)がリリースされる予定です。
また.NET6や.NET8などの偶数バージョンはLTS(Long Term Support)リリースとなります。
※LTSバージョンは.NET Core3.1(LTS)と同じく3年間サポートされるそうです。

図2 .NET のリリース スケジュール(引用元:*7)

.NET5.0とは

.NETのリリースは変更による影響の大きさでメジャー・リリースとマイナー・リリースに種類が分けられています。(*6)
今回紹介する.NET5.0は.NET Coreに.NET Framework、Monoを統合した、.NET Core3.1の次のメジャー リリースです。

統一実現後の.NET

図1は『Microsoft Build 2019』で発表された昔のものなので.NET5.0のリリース1回で統一計画が実現した場合を表していますが、現在は.NET5.0と.NET6.0のリリース2回で図1が実現される予定になっています。
計画が実現すれば1つの実装で多くの種類のアプリケーションを開発できるようになるでしょう。

図1 NET 5.0—統合された実装(引用元:*7)

.NET5.0の追加機能と廃止機能

.NET3.1から比べて.NET5.0に新たに追加された機能は、C#9.0、F#5.0のサポートやガベージコレクションの改善など様々です。
詳細は文末記載のリンク(*8~9)から確認できます。
また.NET5.0では.NET Coreと機能が重複する他の実装の機能は廃止されたので、.NET Frameworkから.NET5.0に移植する時は注意が必要です。
廃止された機能→.NET5の代替え機能
・ Web Forms → ASP.NET Core Blazor または Razor Pages
・ Windows Workflow → Open-source CoreWF または Elsa-Workflow
・ WCF → gRPC

なぜ.NET5なのか

前述のとおり.NET5.0は.NET Core3.1の次のメジャー・リリースです。

「.NET Core3.1の次のメジャー・リリースならば.NET Core4.0となるのでは?なぜ.NET5.0にしたのだろう?」
「.NET Coreの”Core”がなぜ消えているのだろう?」
と疑問に思うかもしれません。

理由は2つあります。

1つ目は統合した.NET Framework4.xとの混同を避けるために、バージョン番号4.xをスキップしたためです。

2つ目は名前から”Core”を削除することで、.NET5が今後の.NETの主な実装になることを強調するためです。

また.NETは、.NET5リリース後のMicrosoftの公式ドキュメントでは「.NET5以降の実装バージョン」を意味して使用されることがあります。

まとめ
今回の記事では以下の3つについて紹介しました。
・ .NETとは何か
・ .NET統合計画について
・ .NET5.0とは何か

.NET5がリリースされたことで複数あった.NETの実装が統合され、複雑さが軽減し.NETは開発者にとってより便利で使いやすい開発プラットフォームになったのではないでしょうか。

また、2021年2月時点の.NETダウンロードページでは.NET5.0での開発が推奨と記載されており、新たに.NETで開発をする際は基本的に.NET5.0を使用し、必要に応じて.NET Core3.1を使用するのがいいかもしれません。(*10)




エンジニア募集中

株式会社キャパでは中途エンジニアの募集をしています。
私たちと一緒に働きませんか?
募集概要について詳しくは


参考・引用リンク
*1 : .NET 用語集 | Microsoft Docs
*2 : .NET の概要 | Microsoft Docs
*3 : .NET Framework の概要 | Microsoft Docs
*4 : About Mono | Mono (mono-project.com)
*5 : .NET アーキテクチャ コンポーネント | Microsoft Docs
*6 : .NET のリリース、パッチ、およびサポート | Microsoft Docs
*7 : Introducing .NET 5 | .NET Blog (microsoft.com)
*8 : What’s new in .NET 5 | Microsoft Docs
*9 : Announcing .NET 5.0 | .NET Blog (microsoft.com)
*10: Download .NET (Linux, macOS, and Windows) (microsoft.com)

関連記事一覧