遂に正式リリース! .NET 6.0 LTS への移行の勧め。

2021年11月10日水曜日

システム開発 技術的備忘録

t f B! P L
 
 
.NET6.0 が正式リリースされた。
 
 
 
以下はそれに関する報道だ。
 
 
 
 
.NET6.0 は以下のサイトからダウンロードできる。
 
 
プログラマーならSDKを、一般ユーザーならRuntimeをどれか一つインストールする。
 
ASP.NET Core Runtime は、ASP.NETを使用するAPサーバー側にインストールする。
.NET Desktop Runtime は、デスクトップWindowsでアプリを稼働させる為にインストールする。
.NET Runtime は、コンソールアプリの実行に必要なコンポーネントのみが含まれている。バッチなどしか動作しないサーバー機などで使用する。
SDKには、これら全てが含まれる。
 
 

.NET4.8 と、.NET5.0 や.NET6.0 は全く違う

 
.NET4.8 と、.NET5.0 や.NET6.0 は全く異なる規格になる。
前者と後者の違いは、前回以下の記事で解説した。
 
 
この記事で解説したように、.NET4.8と、.NET5.0 は異なる規格のVM(仮想マシン)となる。
.NET4.8 は、.NET Framework というWindows固有の旧式VMである。
.NET5.0 は、.NET Core 3.1 と同じ、マルチOS型の新型VMである。
.NET6.0 は、.NET5.0 の後継となる最新の .NET Core 系列のVMとなる。
 
.NET Framework と .NET Core はしばらく並列に開発され食い違いがあった。
.NET5.0 は、.NET Framework にしかなく、Windows固有ではない機能を .NET Core 系列に統合した、最初の .NET Core である。
ちなみに .NET Core という呼称は .NET5.0 で廃止された。
 
.NET5.0 は最初の統合.NETである。
 

.NETには短期サポート版と長期サポート版がある

 
.NET Core 系列は、短期サポートバージョンと、長期サポートバージョンがある。
短期サポートバージョンを Current と呼ぶ。
長期サポートバージョンを LTS(Long Term Support) と呼ぶ。
旧 .NET Core 3.1 は LTS だ。
 
.NET5.0 は最初の統合.NETではあるが、短期サポートの Current である。
そのサポート期間は次にリリースされる LTS のリリース日から3ヶ月以内までだ。
.NET5.0 のサポート期間は 2022年2月 までとなる。
 
LTS のサポート期間は三年である。
 
.NET6.0 はこの LTS である。
.NET6.0 のサポート期間は 2024年11月 までとなる。
 
.NETのバージョンごとのサポート期間については、以前以下の記事で詳しく解説した。
 
 
 

.NET Framework のサポートは2025年に終了する

 
.NET Framework のバージョンアップは .NET Framework 4.8 を最後に既に終了している。
.NET Framework 4.8 が最後の .NET Framework である。
 
.NET Framework はインストール先の Windows のバージョンと同じライフサイクル ポリシーが適用されるため、Windows10のサポートが2025年で終わるなら、それと同時に .NET Framework のサポートも終わる事になる。
 
Windows10のサポートは2025年10月14日に終了する。
それと共に .NET Framework のサポートも終わる。
 
先に説明したように .NET5.0 は最初の統合.NETであり、.NET6.0 はその後継である。
.NET Framework の機能はWindows固有の機能以外は原則として .NET6.0 に統合されている。
 
一部の古い機能が廃止されたりしているが、その場合は最新の代替機能が用意されている。
 
つまり、.NET Framework 上に構築されたソフトウェアは全て .NET6.0 に再構築することが可能なはずだ。(タテマエ上は)
 
短期サポートの .NET5.0 は最新技術のお試し版のような側面があり、ソフトウェアの本番運用には適さないサポート体制になっていたが、.NET6.0 は LTS なので三年間サポートされる。
ソフトウェアの本番運用を想定したサポート体制になっている。
二年後には次のLTSである .NET8.0 がリリースされる。
.NET6.0 と .NET8.0 のサポート期間は一年だけ重複する。
 
.NET Framework で開発された業務ITシステムなどは、.NET Framework のサポートが終わる前に .NET6.0 へ移行する必要があるのである。
 
.NET Framework 4.8 のサポートは2025年10月14日まである。
2023年11月には、.NET8.0 LTS がリリースされるので、こちらに移行する事もできる。
 
 

.NET6.0では使用できない .NET Frameworkの機能

 
以前の .NET4.8と.NET5.0の違いの解説記事に既に書いたことだが、ここで改めて解説する。
 
.NET5.0と.NET6.0は、.NET Framework の機能を原則として統合しているので、.NET6.0においても、.NET Framework の機能を使用する事ができる。
しかし、例外として古い技術で作られた機能は廃止されている。
 
廃止された機能は以下の機能となる。
 

ASP.NET Web Forms は廃止

 
長年ASP.NETのGUIを担ってきた WebForms は .NET5.0 で廃止された。
.NET5.0 以降では、ASP.NET MVC や ASP.NET Blazor で再構築する必要がある。
Microsoft は ASP.NET Blazor を使用する事を推奨している。
 

WCF(Windows Communication Foundation) は廃止

 
スマートクライアントなどのクライアントとサーバー側の通信インターフェイスとして使用されてきたWCFは廃止された。
WCFは CoreWCF(github.com/CoreWCF/CoreWCF) としてコミュニティ運営に引き継がれる。
Microsoft は gRPC へ以降する事を推奨している。
 

WF(Windows Workflow) は廃止

 
Windows Workflow (WF) は廃止された。
Microsoft は .NET5.0においては Core WF (github.com/UiPath/corewf)への移行を推奨している。
 

.NET Standard は互換性維持のオプション的機能へ移行

 
.NET Standard は、.NET Core や Mono , Xamarin など複数の .NET規格で共通の機能をまとめた仕様だが、.NET5.0移行は、.NET5.0自体が統合.NETになるので、.NET Standard は標準的な共通仕様ではなくなる。
事実上は必要の無い仕様となる。
 
しかし、.NET5.0及び .NET6.0においても.NET Standard が廃止される事はなく、オプション的に使用する事ができる。
 
Microsoft は次のシナリオの場合、.NET Standard をターゲットにすることを推奨している。
・netstandard2.0 を使用して、.NET Framework と .NET の他のすべての実装の間でコードを共有する。
・netstandard2.1 を使用して、Mono、Xamarin、.NET Core 3.x の間でコードを共有する。
 

Visual Basic の進化は終了

 
Visual Basic 言語のアップグレードは終了している。
今後、Visual Basic 言語が .NET の新機能に対応する事はない。
古い仕様で使い続ける事はできる。
 
新規のシステム開発に Visual Basic 言語を採用する事は避けた方が良さそうだ。
 
既存システムでも、マイグレーションのタイミングで C# へ書き換えるべきだろう。
 

.NET のインストールはアプリにビルトインされる

 
.NET Framework は、OS側の Windows の一機能として組み込まれていた。
.NET5.0 以降はアプリの側に組み込まれる事になる。
そうでなければ、macOS や Linux 上で起動できない。
 
システムやアプリの、リリースやインストールの仕方が違ってくる。
 
これは、むしろ以前よりインストールが楽になる。
システムなどをリリースするとき、該当バージョンの .NET Framework をインストールしなくて良くなる。
 
 

.NET環境は本格的に「統合.NET」の時代に入った

 
.NET5.0 は初の「統合.NET」だった。
しかし、短期サポート版だったのでアプリやシステムの基盤として活用する事はできなかった。
これまでは、.NET Framework を使用して開発しなければならない体制だった。
 
今回の .NET6.0 LTS のリリースにより、本格的に「統合.NET」の時代に入った。
サポート期間は三年で、二年後には次のLTSの .NET8.0 がリリースされる。
 
これから .NET 基盤でアプリやシステムを開発するなら .NET6.0 一択だろう。
 
.NET Framework は、デスクトップにおいては 2025年10月14日にはサポートが打ち切られる。
旧 Windows Serverにおいては、もっと長くサポートされると思う。
 
どちらにせよ、今から .NET Framework で開発してもあと三年九ヶ月しかそのアプリを使用できない。
 
これまで .NET Framework で開発されたアプリやシステムも、そろそろ .NET6.0 へのマイグレーション計画を立てるべきだろう。
 
あまり、モタモタしている時間はないと思う。
 

このブログを検索

Translate

人気の投稿

自己紹介

自分の写真
オッサンです。実務経験は Windows環境にて C#,VB.NET ,SQL Server T-SQL,Oracle PL/SQL,PostgreSQL,MariaDB。昔はDelphi,C,C++ など。 趣味はUbuntu,PHP,PostgreSQL,MariaDBかな ?基本無料のやつ。

QooQ