.NET Coreの将来と.NET 5
先ほど紹介した通り「.NET Core 3.0.0 Preview 5」がリリースされました。「.NET Core 3」以降「.NET Core」が向かう未来が以下で紹介されています。
.NET 5
「.NET Core 3」の次に控えるメジャーリリースは、「.NET 5」になります。「.NET 5」は単一のプラットフォームとなり、「.NET 5」の一環として新しい「.NET API」、ランタイム機能、言語機能が導入される予定です。
「.NET Core」プロジェクト開始以来、約5万の「.NET Framework API」が「.NET Core」プラットフォームに追加されてきました。
「.NET Core 3.0」では「Windows Forms」「WPF」「Entity Framework 6」のサポート含め「.NET Framework」との乖離が小さくなっています。
「.NET 5」はこの成果を元に構築されます。
.NET 4はスキップ
「.NET Framework」のLTSリリースで「.NET Framework 4.x」をバージョン番号に使用しているため、ユーザーの混乱を避けるためにも「.NET 4」を飛ばし、「.NET Core 3.0」の次に「.NET 5」を設定しています。また「.NET 5」は「.NET」プラットフォームの未来であることをはっきりと表現するため、という意図も含まれています。
.NET 5のリリース予定
「.NET 5」は2020年11月にリリースを目指し開発が行われます。最初のプレビュー版「.NET 5」は、2020年前半リリースされる予定です。
「.NET Core 3.0」も含めたリリーススケジュールは、以下のようになります。
.NET Core/.NET | スケジュール |
---|---|
.NET Core 3.0 RC | 2019年7月 |
.NET Core 3.0 GA | 2019年9月 |
.NET Core 3.1 LTS | 2019年11月 |
.NET 5.0 GA | 2020年11月 |
.NET 6.0 LTS | 2021年11月 |
.NET 7.0 GA | 2022年11月 |
.NET 8.0 LTS | 2023年11月 |
「.NET」は毎年メジャーリリースが行われ、偶数バージョンはLTSリリースになります。
.NET 5は.NET Core vNextである
「.NET 5」は「.NET Core vNext(Next version of .NET Core)」であり、「.NET Core」の次のメジャーバージョンになります。「.NET 5」プロジェクトは、以下の目標を持ちます。
- 単一の.NETランタイムとフレームワークを構築し、様々なプラットフォームをサポートし、統一された振る舞いを行うランタイムと統一された使い勝手を開発者に提供します。
- 「.NET Core」「.NET Framework」「Xamarin」「Mono」の優れた点を取り入れ、「.NET」の機能を拡張します。
- Microsoftとコミュニティーが連携し、共に発展及びすべてのシナリオを改良できるよう、プロダクトを構築していきます。
開発しているアプリの種類を問わず「.NET 5」で開発されたコード及びプロジェクトファイルは、同じ見た目や間隔を提供します。
開発者は各種アプリで同じランタイム、API、言語機能にアクセスできます。
Coreという名称が外される
「.NET Core」がメインストリームとなり、今後「.NET」プラットフォームが向かう唯一の未来であるため、「.NET Core」から「Core」が削除され、名称がシンプルになりました。ちなみに「.NET Core」という名称が好みなら、引き続き気軽に「.NET Core」という名称を使用してくれて構わないとのことです。
.NET Coreから引き継ぐ機能や方針と新たに導入する機能
「.NET 5」は「.NET Core」から引き継ぐ機能や方針と新たに導入する機能があります。.NET Coreから引き継ぐ機能や方針
「.NET 5」は「.NET Core」から以下の機能や方針を引き継ぎます。- オープンソースでありGitHub上でコミュニティーを重視した開発を行う
- クロスプラットフォームで実装する
- Windowsにおける「Windows Forms」や「WPF」、「Xamarin」由来のネイティブバインディングなどプラットフォーム固有の機能をサポートする
- 優れたパフォーマンス
- サイドバイサイドによるインストール
- プロジェクトファイルの小型化
- CLI(コマンドラインインターフェース)のサポート
- Visual Studio/Visual Studio for Mac/Visual Studio Codeとの統合
新しく導入する機能
「.NET 5」は以下の新たな機能を導入します。- ランタイムエクスペリエンスの選択肢を増やす(Mono/CoreCLR)
- すべてのプラットフォームで「Java」との相互運用をサポートする
- 複数のOSで「Objective-C/Swift」との相互運用をサポートする
- 「CoreFX」は「.NET」の静的コンパイル(ahead-of-time/AOT)、フットプリントの縮小、より多くのOSをサポートするため拡張する
.NET Framework 4.8が最後のメジャーバージョンに
「.NET Framework」は「.NET Framework 4.8」が最後のメジャーバージョンになります。サポートは継続される
すでに「.NET Framework」上で動作しているアプリを開発・保守しているなら、「.NET Core」へ移行する必要はありません。「.NET Framework」は引き続きサポートが提供されます。
不具合の修正や安定性の改善及びセキュリティーアップデートが継続的に提供されます。
また「Windows」コンポーネントの多くが「.NET Framework」に依存しているということもあり、引き続き「Windows」に同梱されて出荷されます。
例えば「Visual Studio」は「.NET Framework」で記述されています。
加えて「Visual Studio」のツール群もサポートの改良が継続的に行われます。
ただし新機能の実装や仕組みの改善等は「.NET Core」に対して行われるため、それらの機能を活用するには、「.NET Core」へ移行する必要があります。
新しいアプリは.NET Coreベースへ
その一方で「.NET Core 3.0」リリース以降は、新しい全ての「.NETアプリケーション」は 「.NET Core」ベースの開発が強く推奨されます。「.NET Framework」で開発可能な主要なアプリケーションタイプは、「.NET Core」でもサポートされます。
また今後将来的に「.NET」に対して行われる投資は、以下のものを含みすべて「.NET Core」 に注がれます。
- Runtime
- JIT
- AOT
- GC
- BCL (Base Class Library)
- C#
- VB.NET
- F#
- ASP.NET
- Entity Framework
- ML.NET
- WinForms
- WPF
- Xamarin