kledgeb UbuntuやLinuxの最新情報を紹介

.NET その123 - .NET 5と.NET Standardの関係・.NETのリリース方針

.NET 5と.NET Standardの関係

「.NET 5」と「.NET Standard」の関係が以下で紹介されています。


  • The future of .NET Standard

今後新しい.NET Standardはリリースされない

今後新バージョンの「.NET Standard」はリリースされません。
しかし「.NET 5」以降の「.NET」は、「.NET Standard 2.1」及びそれ以前の「.NET Standard」をサポートします。
また「.NET 5」は「.NET Standard」を置き換える存在であり、「.NET 5」を新バージョンの「.NET Standard(.NET Standard vNext)」と捉えることもできます。

TFMsの整理とアップデート

「.NET 5」はWindowsデスクトップアプリやクロスプラットフォームのモバイルアプリ、コンソールアプリ、クラウドサービス、ウェブサイトの開発に利用可能な機能及びAPI群を提供する単一のプラットフォームになります。
言い換えれば「.NET 5」は、クロスプラットフォームで利用可能な機能と、「Windows」など固有のプラットフォームで利用可能な機能を提供します。

これを受け「.NET 5」では「TFMs(Target Framework Names)」が整理され、分かりやすい名称にアップデートされました。

  • Target Framework Names in .NET 5

クロスプラットフォームのTFM

例えば「TFM」の「net5.0」は、クロスプラットフォームで利用可能な機能及びAPI群を提供し、「netcoreapp」及び「netstandard」を組み合わせ、これらを置き換える「TFM」になります。
つまり「net5.0」は「net5.0」がサポートしているどのOS上でも利用可能な機能を提供します。

ただし「.NET Standard」が「ACL」やレジストリー、「WMI」など「Windows」固有の機能をサポートしたように、一部の機能は例外的に除きます。
このような実装は本意ではありませんが、ライブラリーのエコシステムを確保するために妥協され盛り込まれた機能です。

OS依存のTFM

そして「TFM」の「net5.0-windows」は、特定のOS固有の機能を提供します。
名称から分かる通り「net5.0-windows」は「Windows」固有の機能を提供する「TFM」です。

このような「TFM」は「net5.0」を含み、「net5.0」にOS固有の機能を加えた「TFM」になります。
他にも「net6.0-android」や「net6.0-ios」など、OS固有の機能を提供する「TFM」もあります。

.NETのバージョンとTFM

将来「.NET 6」がリリースされた暁には、これらの「TFM」は「net6.0-android」や「net6.0-ios」といったように、「.NET」のバージョンが「TFM」に反映されます。

ターゲットの選択

他のソフトウェアから利用されるライブラリーを新規に開発する際、目的に応じて適切なターゲットを選択する必要があります。

幅広く利用されるライブラリー

幅広く利用されるライブラリーを開発するなら、「.NET Standard 2.0」をターゲットに開発するのが好ましいでしょう。
「.NET Standard 2.0」は「.NET Framework」でサポートされている最もバージョンが高い「.NET Standard」になります。

将来を見越すなら「.NET Standard 2.0」だけでなく、「.NET 5」もサポートすることが望ましいでしょう。
「.NET Standard 2.0」により幅広いサポートを提供できるだけでなく、「.NET 5」が提供する最新機能も活用できるようになります。

.NET Frameworkをサポートする必要がないなら

もし「.NET Framework」をサポートする必要がないならば、「.NET Standard 2.1」もしくは「.NET 5」をターゲットに開発するのが好ましいでしょう。
多くのケースでは「.NET Standard 2.1」を飛ばして、「.NET 5」をターゲットにすることができるでしょう。

TFM

「.NET Framework」とその他すべてのプラットフォーム間でコードを共有したいなら、「netstandard2.0」を使用します。

「Mono」、「Xamarin」、「.NET Core 3.x」間でコードを共有したいなら、「netstandard2.1」を使用します。

先を見据え将来に向けてコードを共有したいなら、「net5.0」を使用します。

.NETのリリース方針

「.NET 5」以降、「.NET」の新バージョンは毎年11月にリリースされる予定です。
また隔年(つまり2年毎)に、長期サポートのLTS版(Long Term Support)がリリースされます。

例えば2020年11月にリリースされる「.NET 5」は、通常リリースの「.NET」になります。
そして2021年11月にリリースされる「.NET 6」は、LTSリリースの「.NET」になります。

開発スケジュールを立てやすくなる

この定期的なリリーススケジュールにより、「.NET」を利用している開発者は開発スケジュールを立てやすくなります。

.NET Core
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Ubuntu 26.04 その42 - Ubuntu 26.04.1 LTS のリリーススケジュール
    Ubuntu 26.04.1 LTSのリリーススケジュール Ubuntu 26.04.1 LTS のリリーススケジュールを紹介します。
  • Linux Mint その292 - Linux kernel 7.0 採用の Linux Mint 22.3 リリース・システム管理ツールにカーネル管理機能追加など
    Linux Mint 月刊ニュース Linux Mint 開発チームは Linux Mint 月刊ニュースにて、Linux Mint の開発状況や取り組みを紹介しています。
  • Linux その422 - GNOME Boxes の再構築と未来・Flatpak のみの提供やモダンな機能の実装など
    GNOME Boxes の再構築と未来 GNOME Boxes の再構築と未来が以下で紹介されています。
  • Ubuntu 26.04 その68 - Ubuntu 26.04.1 LTS がリリースされました・ディスクイメージのダウンロード
    Ubuntu 26.04.1 LTS リリース 2026年8月27日、Ubuntu 26.04.1 LTS がリリースされました。
  • Kubuntu その117 - Kubuntu 26.04 LTS にもっと手厚いサポートを・最高の信頼性を誇る KDE 搭載ディストリビューションを目指して
    最高の信頼性を誇る KDE 搭載ディストリビューションを目指して Kubuntu 26.04 LTS に手厚いサポートが導入されました。
  • Linux その421 - GNOME Shell のデザイン構想と長期的な見通し
    GNOME Shell のデザイン構想と長期的な見通し GNOME Shell のデザイン構想と長期的な見通しが、以下で紹介されています。
  • Linux その420 - KDE Plasma で実装予定の新機能や改善・UI レイアウトの調整やリモートデスクトップの改善など
    KDE Plasma で実装予定の新機能や改善 KDE Plasma で実装予定の新機能や改善を紹介します。
  • Windows その29 - Windows 向け Coreutils 登場・Coreutils のインストールやコマンドの一覧など
    Windows 向け Coreutils 登場 Windows 向け Coreutils が登場しました。
  • Linux その386 - Arch Linux の AUR パッケージで悪意あるコミットが続く・今度はソースコードの難読化か
    Arch Linux の AUR パッケージで悪意あるコミットが続く Arch Linux の AUR パッケージで悪意あるコミット(マルウェア)が続いています。
  • Ubuntu 18.04 その195 - PolicyKitにクラッシュや権限の昇格など複数の脆弱性・今すぐアップデートを
    PolicyKitの脆弱性 2018年7月16日、クラッシュや権限の昇格など複数の脆弱性に対応した「PolicyKit」がリリースされました。
記事のピックアップ
オプション