4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

.NET Framework と .NET

Last updated at Posted at 2024-12-19

はじめに

仕事として、ソフト開発に従事していた頃は、Microsoftサポート範囲の Windows(Home and Pro)と Windows Server を対象として、複数のライブラリと複数のデスクトップアプリで構成されるパッケージを主に担当していました。
このような構成のソフトであったこともあり、C# フレームワークは、最新の .NET ではなく、プレインストールされている .NET Framework を使い続けてきました。

このように .NET Framework を使い続けてきて、.NET はイマイチ知識不足なこともあり、自分自身として整理する目的で、.NET Framework と .NET について記載することにしました。

.NET Framework

.NET Framework の変遷として、1.01.12.x~3.x4.x はそれぞれ独立していたということなどは、現時点では不要な知識なので、今現在、.NET Framerowk を利用する上での情報をまとめることにしました。

ブレインストール

Windows(Home and Pro)、Windows Server に対する .NET Framework ランタイムのプレインストール状況を表記します。
※表は OS Build 降順としています。

OS Version OS Build OSサポート期限 .NET Framework
Windows Server 2025 24H2 26100 2034-10-10 4.8
Windows 11 24H2 26100 2026-10-13 4.8
Windows 11 23H2 22631 2025-11-11 4.8
Windows 11 22H2 22621 2024-10-08 4.8
Windows 11 21H2 22000 2023-10-10 4.8
Windows Server 2022 21H2 20348 2031-10-14 4.8
Windows 10 22H2 19045 2025-10-14 4.8
Windows 10 21H2 19044 2023-06-13 4.8
Windows Server 2019 1809 17763 2029-01-09 4.7.2
Windows Server 2016 1607 14393 2027-01-12 4.6.2

Microsoftサポート範囲の OS を対象とすることを前提として考えます。

Windows 10, Windows 11 は、Windows as a Service ということで、次バージョンへの無償アップデートが前提なので、基本的には、最新バージョンを対象と考えれば良いです。
Windows Server は、次バージョンへの無償アップデートはなく、サーバーという性質上、セキュリティパッチのみ実施して、機能強化アップデートは実施しないケースもあるので、現時点では、Windows Server 2016 - .NET Framework 4.6.2 を考慮する必要があります。

Windows のみを対象とする場合、.NET Framework 4.0~4.8 を利用するモジュールとしてビルドが望ましいです。
Windows Server も対象とする場合、.NET Framework 4.0~4.6.2 を利用するモジュールとしてビルドが望ましいです。

上記状況なので、Visual Studio 2022 では、オプションで「.NET Framework 4.6.2-4.7.1 開発ツール」の選択が可能となっています。

ライフサイクル

.NET Framework の基本的なライフサイクルポリシーは、ブレインストールされている OS のサポート期限までサポートが保証されます。

バージョン   リリース日 サポート期限
.NET Framework 4.8.1 2022-08-09
.NET Framework 4.8 2019-04-18
.NET Framework 4.7.2 2018-04-30
.NET Framework 4.7.1 2017-10-17
.NET Framework 4.7 2017-04-11
.NET Framework 4.6.2 2016-08-02 2027-01-12

.NET Framework 4.8 は Windows Server 2025 にプレインストールされています。Windows Server 2025 のサポート期限が 2034-10-10 なので、少なくとも 2034-10-10 まではサポートが保証されます。
さらに、次に発売される OS に .NET Framework 4.8(4.8.1)がプレインストールされればそのサポート期限がさらに延びるということになります。
今のところ、Microsoft は新バージョンの開発は終了しても、現行 .NET Framework 4.8(4.8.1)の次期 OS へのプレインストールを続けるとアナウンスしています。このためサポート期限は未定です。

OS毎の利用可否

OS 4.6.2 4.7 4.7.1 4.7.2 4.8 4.8.1
Windows Server 2025
Windows 11
Windows Server 2022
Windows 10
Windows Server 2019
Windows Server 2016

Global Assembly Cache(GAC)

マネージモジュール配置として、side-by-side ではなく .NET Framework システムフォルダに配置して、各アプリで参照する形態です。

マネージの Dll 参照順位は「GAC」「side-by-side」の順となり、GAC が優先参照されるので、複数パッケージで共有されている Dll を GAC 登録してしまうと、パッケージの保守/アップデートで問題が起こる可能性があります。

パッケージの独立性を維持する上で、複数パッケージで共用する Dll を GAC に登録すべきではありません。
共用する GAC の Dll 更新が必要となった場合、該当 Dll を参照する複数パッケージを同時にアップデートが必要となることがあるためです。

アンマネージの Dll 参照順位は「side-by-side」「環境変数 PATH 指定フォルダ」の順なので、環境変数 PATH 指定フォルダの Dll 更新が必要となった場合、side-by-side 配置に変更するという逃げ道を利用することで、他パッケージとの干渉なくアップデートすることができます。
(本来は、すべて side-by-side として独立性を維持するのが基本です)

.NET

.NET は、.NET Core、.NET Framework、Xamarin を統合したクロスプラットフォームのフレームワークで、無料のオープンソースとして公開されています。

プレインストール

現時点では、Windows OS に対して、.NET ランタイムはプレインストールされていません。

ライフサイクル

バージョン リリース日 サポート期限
.NET 9 2024-12-03
.NET 8(LTS) 2023-11-14 2026-11-10
.NET 7 2022-11-08 2024-05-14
.NET 6(LTS) 2021-11-08 2024-11-12
  • LTS(長期的なサポート)
    • 奇数年にリリースされ、最初のリリースから 3 年間サポートされます。
  • STS(標準期間サポート)
    • 偶数年にリリースされ、それ以降の STS または LTS リリースから 6カ月間サポートされます。
    • リリースは、基本的に 12か月ごとに行われるため、STS リリースのサポート期間は 18カ月となります。

上記リリース形態となっているので、LTS にあわせて、開発ソフトのアップデートを行うのが望ましいです。

OS毎の利用可否

OS .NET 8(LTS) .NET 9
Windows Server 2025
Windows 11
Windows Server 2022
Windows 10
Windows Server 2019
Windows Server 2016

アプリケーションの発行

開発プロジェクトにおける CI 観点からは、コマンドラインでの手法が必要ですが、まずは、手作業の手順を記載しておきます。
ソリューションエクスプローラーで、プロジェクトを選択、右クリックで「発行」を選択します。

cap2-vs-01.png

ターゲット等をステップに従い選択します。

cap2-vs-02.png

cap2-vs-03.png

cap2-vs-04.png

上記で「完了」を選択して発行が完了すると、下記画面が表示されるので「すべての設定を表示」を選択します。

cap2-vs-05.png

配置モードとして「フレームワーク依存」「自己完結」の選択ができます。

cap2-vs-06.png

「自己完結」を選択した場合は「単一ファイルの作成」にチェックをします。

cap2-vs-07.png

  • フレームワーク依存
    • 対象アプリと依存関係のみを含むアプリが生成されます。このように発行した場合、実行環境に .NET ランタイムを別途導入が必要となります。
       
  • 自己完結
    • .NET ランタイムとライブラリ、さらに対象アプリと依存関係を含むアプリが生成されます。このように発行した場合、.NET ランタイムがインストールされていないコンピューター上で対象アプリを実行可能となります。

メリットとデメリット

.NET Framework 利用

  • メリット
    • 現時点では、プリインストールされている .NET Framework ランタイムを利用するだけなので、手間がかかりません。
       
  • デメリット
    • 開発終了しているので、機能強化は望めなく、いつかは終焉が訪れます。

.NET 利用

  • メリット
    • Android、Apple、Linux、Windows オペレーティング システムで利用可能です。
       
  • デメリット
    • .NET ランタイムは、Windows OS にプレインストールされていません。
    • ライフサイクルが LTS でも 3年間と比較的短く感じます。
4
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?