.NET

.NET（ドットネット）は、マイクロソフトを中心に開発されてきたアプリケーション開発基盤の総称である。C#やF#などのプログラミング言語、共通言語ランタイム（CLR）、標準ライブラリ、開発ツール群を含み、単一の製品や単一の言語を指す名称ではない。このため、「.NET」という語は文脈によって異なる意味で用いられることがある。

現在の.NETは、旧来は .NET Core として提供されていた、FOSSとして開発されているクロスプラットフォーム対応のソフトウェアフレームワークであり、Windows、Linux、macOSなど複数のオペレーティングシステム上で動作する。.NET 5以降では、従来の.NET FrameworkおよびXamarin/Monoで提供されてきた機能が統合され、これらの後継として位置づけられている。

 構成 

.NETの主な構成要素として、共通言語ランタイム（CLR）、標準ライブラリ、プログラミング言語、開発ツール群が挙げられる。

共通言語ランタイム（CLR）は、.NETにおけるプログラムの実行環境であり、複数のプログラミング言語で記述されたアプリケーションを共通に実行する役割を担う。

標準ライブラリは、.NETで利用可能な型やクラスの集合であり、入出力処理、コレクション、文字列操作、ネットワーク通信など、アプリケーション開発に必要な基本的な機能を提供する。

.NETでは、複数のプログラミング言語がCLRおよび標準ライブラリを共有する形で利用される。公式にサポートされているプログラミング言語としては、C#、F#、Visual Basic .NETがある。これらの言語は、それぞれ異なる記述スタイルを持ちながら、同一の実行環境上で動作する。

また、.NETには、これらの構成要素を用いたアプリケーション開発を支援するための開発ツール群が含まれる。これには、ソフトウェア開発キット（SDK）やコマンドラインツール、統合開発環境（IDE）向けの支援機能などが含まれる。

これらの要素は相互に連携し、Webアプリケーション、コンソールアプリケーション、デスクトップアプリケーションなど、さまざまな種類のアプリケーションの開発に利用されている。

 実装 
.NETは共通言語基盤 (CLI) の元となっている仕様であり、.NET CoreはCLIの実装になっている。

.NET CoreのランタイムはCoreCLRである。CoreCLRはガベージコレクタ、JITコンパイラ（RyuJIT）、プリミティブな型/クラスライブラリからなっている。またランタイムに必要な型/クラスライブラリに追加して、フレームワークとして規定する型群としてCoreFXが.NET Coreには含まれる。CoreFXはの一部をフォークしたものである。

.NET Coreと.NET FrameworkはAPIを一部共有しているが、.NET Coreには.NET Frameworkに存在しない固有のAPIが搭載されている。.NET Coreライブラリの派生物はUWP用に利用されている。.NET Coreのコマンドラインインタフェースは、オペレーティングシステムには実行エントリポイントを、開発者にはコンパイルやパッケージ管理などのサービスを提供する。

 ランタイム 
.NETは複数のランタイムを利用できる。以下は .NET 7 における対応ランタイムである"Mono is one of the two runtimes that are supported by the .NET 6 project. CoreCLR is the other." danmoseley. (2021). Discussions#50150. dotnet/runtime. 2022-12-18閲覧."the Native AOT support now shipping in .NET 7." Douglas, et al. (2022). .NET 7 is Available Today. .NET Blog.。

 CoreCLR
 Monoランタイム: .NET規格実装の1つであるMonoに由来するランタイム。
 NativeAOT: AOTコンパイルに特化したランタイム"NativeAOT - .NET runtime optimized for ahead of time compilation." dotnet/runtimelab. 2022-12-18閲覧.。開発段階ではCoreRTと呼ばれ .NET 7 より正式導入された。

これらは目的に応じて使い分けられる。例えば iOS はAOTコンパイル前提でありMonoランタイムが利用される。

 Windows系UI専用ライブラリ 
もともと.NET Coreはクロスプラットフォームを前提とするフレームワークであり、.NET Core 3よりも前のバージョンでは、Windowsのデスクトップソフトウェア用の標準GUIを提供するためのWindows FormsとWPFが実装されていなかった。2018年にマイクロソフトは、デスクトップ技術であるWindows Forms、WPF、UWPを.NET Core 3からサポートすることを公表した。.NET Core 3.0では、Windows版に限りWindows FormsおよびWPFのサポートが提供されるようになった。

 バージョン 
+.NET バージョンバージョンリリース日長期サポート変更内容 .NET Core 1.0 2016-06-27.NET Core 1.12017-03-07.NET Core 2.02017-08-14.NET Core 2.12018-05-30.NET Core 2.22018-12-04.NET Core 3.02019-09-23で発表。デスクトップ・人工知能/機械学習・IoTアプリケーションの開発をサポートした。.NET Core 3.12019-12-03.NET 52020-11-10名前から"Core"が外れた。.NET Core 4はスキップされ、.NET 5になった。これは.NET 5が.NET Framework 4.8の後継でもあることから、.NET Framework 4.xとの混同を防ぐ目的を含んでいる。.NET 62021-11-08.NET 72022-11-08Windows 8以前がサポート対象外となった。.NET 82023-11-14.NET 92024-11-12.NET 102025-11-11

 サポート期限 
長期サポート版（LTS）はJavaと同じく2年ごとにリリースされているが、Javaのプレミア・サポートが5年、延長サポートがその次の3年と比べて、.NETは3年と短く、長期サポート版を使い続けるには、長期サポート版がリリースされる度に1年以内に乗り換えないといけない。UbuntuとRed Hat Enterprise Linuxも.NETの長期サポート版の独自サポートを行っていて、Red Hat Enterprise Linuxのサポート期限は同じく3年だが、Ubuntuは長期サポート版OSのサポート期限（最長15年）までサポートを行う。

 脚注 

 注釈 

 出典 

 外部リンク 


 .NET の概要

 .NET ダウンロード

*
Category:オープンソースソフトウェア
Category:クロスプラットフォームのソフトウェア
Category:マイクロソフトのAPI
Category:マイクロソフトの開発ツール