| この項目では、ソフトウェアフレームワークについて説明しています。ドメイン名におけるトップレベルドメインについては「.net」をご覧ください。 |
| 開発元 | .NET Foundation |
|---|---|
| 最新評価版 | |
| リポジトリ | |
| プログラミング 言語 | C++およびC# |
| 対応OS |
|
| プラットフォーム | x86,x64,ARM32,ARM64,ppc64le,s390x |
| 前身 | .NET Framework,Xamarin,Mono |
| 後継 | 現行 |
| サポート状況 | サポート中です。 |
| 種別 | 開発支援、開発フレームワーク、オープンソースソフトウェア(?) |
| ライセンス | MIT License[4] |
| 公式サイト | dotnet |
| テンプレートを表示 | |
.NET(ドットネット)は、マイクロソフトを中心に開発されてきたアプリケーション開発基盤の総称である。C#やF#などのプログラミング言語、共通言語ランタイム(CLR)、標準ライブラリ、開発ツール群を含み、単一の製品や単一の言語を指す名称ではない。このため、「.NET」という語は文脈によって異なる意味で用いられることがある。
現在の.NETは、旧来は .NET Core として提供されていた、FOSSとして開発されているクロスプラットフォーム対応のソフトウェアフレームワークであり[5]、Windows、Linux、macOSなど複数のオペレーティングシステム上で動作する。.NET 5以降では、従来の.NET FrameworkおよびXamarin/Monoで提供されてきた機能が統合され、これらの後継として位置づけられている[6]。
.NETの主な構成要素として、共通言語ランタイム(CLR)、標準ライブラリ、プログラミング言語、開発ツール群が挙げられる。
共通言語ランタイム(CLR)は、.NETにおけるプログラムの実行環境であり、複数のプログラミング言語で記述されたアプリケーションを共通に実行する役割を担う。
標準ライブラリは、.NETで利用可能な型やクラスの集合であり、入出力処理、コレクション、文字列操作、ネットワーク通信など、アプリケーション開発に必要な基本的な機能を提供する。
.NETでは、複数のプログラミング言語がCLRおよび標準ライブラリを共有する形で利用される。公式にサポートされているプログラミング言語としては、C#、F#、Visual Basic .NETがある[7]。これらの言語は、それぞれ異なる記述スタイルを持ちながら、同一の実行環境上で動作する。
また、.NETには、これらの構成要素を用いたアプリケーション開発を支援するための開発ツール群が含まれる。これには、ソフトウェア開発キット(SDK)やコマンドラインツール、統合開発環境(IDE)向けの支援機能などが含まれる。
これらの要素は相互に連携し、Webアプリケーション、コンソールアプリケーション、デスクトップアプリケーションなど、さまざまな種類のアプリケーションの開発に利用されている。
.NETは共通言語基盤 (CLI) の元となっている仕様であり、.NET CoreはCLIの実装になっている[8]。
.NET CoreのランタイムはCoreCLRである[9]。CoreCLRはガベージコレクタ、JITコンパイラ(RyuJIT)、プリミティブな型/クラスライブラリからなっている[10][11][注釈 1][注釈 2][12]。またランタイムに必要な型/クラスライブラリに追加して、フレームワークとして規定する型群としてCoreFXが.NET Coreには含まれる[13]。CoreFXはFramework Class Library(英語版)の一部をフォークしたものである[14]。
.NET Coreと.NET FrameworkはAPIを一部共有しているが、.NET Coreには.NET Frameworkに存在しない固有のAPIが搭載されている[15]。.NET Coreライブラリの派生物はUWP用に利用されている[16]。.NET Coreのコマンドラインインタフェースは、オペレーティングシステムには実行エントリポイントを、開発者にはコンパイルやパッケージ管理などのサービスを提供する[17]。
.NETは複数のランタイムを利用できる。以下は .NET 7 における対応ランタイムである[18][19]。
これらは目的に応じて使い分けられる。例えばiOS はAOTコンパイル前提でありMonoランタイムが利用される。
もともと.NET Coreはクロスプラットフォームを前提とするフレームワークであり、.NET Core 3よりも前のバージョンでは、Windowsのデスクトップソフトウェア用の標準GUIを提供するためのWindows FormsとWPFが実装されていなかった[15][21]。2018年にマイクロソフトは、デスクトップ技術であるWindows Forms、WPF、UWPを.NET Core 3からサポートすることを公表した[22]。.NET Core 3.0では、Windows版に限りWindows FormsおよびWPFのサポートが提供されるようになった[23]。
| バージョン | リリース日 | 長期 サポート | 変更内容 |
|---|---|---|---|
| .NET Core 1.0 | 2016-06-27[25] | ||
| .NET Core 1.1 | 2017-03-07[26] | ||
| .NET Core 2.0 | 2017-08-14 | ||
| .NET Core 2.1 | 2018-05-30 | ||
| .NET Core 2.2 | 2018-12-04 | ||
| .NET Core 3.0 | 2019-09-23[27] | Build 2018(英語版)で発表。デスクトップ・人工知能/機械学習・IoTアプリケーションの開発をサポートした。 | |
| .NET Core 3.1 | 2019-12-03 | ||
| .NET 5 | 2020-11-10[28] | 名前から"Core"が外れた[29]。.NET Core 4はスキップされ、.NET 5になった。これは.NET 5が.NET Framework 4.8の後継でもあることから、.NET Framework 4.xとの混同を防ぐ目的を含んでいる[30]。 | |
| .NET 6 | 2021-11-08[31] | ||
| .NET 7 | 2022-11-08 | Windows 8以前がサポート対象外となった。[32] | |
| .NET 8 | 2023-11-14 | ||
| .NET 9 | 2024-11-12 | ||
| .NET 10 | 2025-11-11 |
長期サポート版(LTS)はJavaと同じく2年ごとにリリースされているが、Javaのプレミア・サポートが5年、延長サポートがその次の3年[33]と比べて、.NETは3年[24]と短く、長期サポート版を使い続けるには、長期サポート版がリリースされる度に1年以内に乗り換えないといけない。UbuntuとRed Hat Enterprise Linuxも.NETの長期サポート版の独自サポートを行っていて[34]、Red Hat Enterprise Linuxのサポート期限は同じく3年だが[35]、Ubuntuは長期サポート版OSのサポート期限(最長15年)までサポートを行う[36]。
System.Collections,System.IO,System.Xml and so on), live in packages defined in the dotnet/corefx repository.”| アーキテクチャ | |
|---|---|
| 共通言語基盤 | |
| 言語 | |
| パッケージマネージャ | |
| 関連技術 | |
| その他のCLI実装 | |
| 組織 | |
| 開発環境 | |
| その他 | |
マイクロソフトのAPIとフレームワーク | |
|---|---|
| グラフィック | |
| オーディオ | |
| マルチメディア | |
| ウェブ | |
| データアクセス | |
| ネットワーク | |
| コミュニケーション | |
| 管理 | |
| コンポーネントモデル | |
| ライブラリ | |
| デバイスドライバ | |
| セキュリティ | |
| .NET | |
| ソフトウェアファクトリー | |
| IPC | |
| アクセシビリティ | |
テキストと多言語 サポート | |
| 人工知能 | |