.NETプラットフォーム(「ドットネット」と発音。以前は.NET Coreと呼ばれていた)は、Windows、Linux、macOSオペレーティングシステム向けの、無料のオープンソースのマネージドコンピュータソフトウェアフレームワークです。[ 5 ]これは、.NET Frameworkの後継となるクロス プラットフォームです。このプロジェクトは主に.NET Foundationを通じてMicrosoft の従業員によって開発されており、現在はMIT ライセンスの下でリリースされています。[ 4 ]
.NET プラットフォームの新しいバージョンは毎年、通常は 11 月にリリースされます。.NET の最新バージョンは .NET 10 で、2025 年 11 月にリリースされました。これは長期サポート (LTS) バージョンであり、2028 年 11 月までアップデートが提供される予定です。[ 6 ]
1990年代後半、マイクロソフトはマネージドコードランタイムとプログラミング言語(C#)の開発を開始し、これらを「.NETプラットフォーム」の一部として売り出し、コアランタイムとソフトウェアライブラリを.NET Frameworkとして構成しました。
.NET プラットフォームの中核を成すのは .NET Framework であり、これは、言語間の継承やデバッグなどの重要な機能を備えた、Web サービスの構築と実行のための高生産性の多言語開発および実行環境です。[ 7 ]
2000年のプロフェッショナル開発者会議でC#言語が発表され、そのソフトウェアのプレビュー版が公開されると、マイクロソフトはECMAを通じて「共通言語インフラストラクチャ」と呼ばれる標準化活動を開始した。同時に、同社は独自のクローズドソースソフトウェアとして、自社実装の開発とサポートを継続した。
2014 年 11 月 12 日、マイクロソフトは.NET Coreを発表しました。これは.NET Framework の後継となるオープンソースのクロスプラットフォーム[ 8 ]です[ 9 ]。また、.NET Core CoreCLR実装のソースコード、.NET Core の「ライブラリ スタック全体」のソースコード[ 10 ]を公開し、 .NET Foundationの管理下で従来型の ( 「バザール」のような)オープンソース開発モデルを採用することを発表しました。ミゲル・デ・イカザは.NET Core を「クラス ライブラリの簡略版に基づいた .NET の再設計版」と説明し[ 11 ]、マイクロソフトのイモ・ランドワースは .NET Core が「将来のすべての .NET プラットフォームの基盤」になると説明しました。発表当時、.NET Core プロジェクトの最初のリリースにはライブラリのソースコードの一部がシードされており、Microsoft の既存の .NET 参照ソースがMs-RSLの制限から解放されて再ライセンスされた時期と一致していました。Landwerth 氏は、以前選択された共有ライセンスの欠点を認め、それがOpen Source Initiative (OSI) 承認ライセンスの基準を満たしていなかったため、コードネーム Rotor をコミュニティ開発のオープンソース プロジェクトとして「開始不可能」にしたと説明しました。[ 12 ] [ 13 ] [ 14 ]
.NET Core 1.0 は、 .NET Core 開発を可能にするMicrosoft Visual Studio 2015 Update 3とともに、2016 年 6 月 27 日にリリースされました。 [ 15 ] [ 16 ] .NET Core 1.0.4 と .NET Core 1.1.1 は、.NET Core Tools 1.0 および Visual Studio 2017 とともに、2017 年 3 月 7 日にリリースされました。[ 17 ]
.NET Core 2.0 は、Visual Studio 2017 15.3、ASP.NET Core 2.0、およびEntity Framework Core 2.0とともに、2017 年 8 月 14 日にリリースされました。[ 18 ] .NET Core 2.1 は、2018 年 5 月 30 日にリリースされました。[ 19 ] .NET Core 2.2 は、2018 年 12 月 4 日にリリースされました。[ 20 ]
.NET Core 3 は 2019 年 9 月 23 日にリリースされました。[ 21 ] .NET Core 3 では、Windows デスクトップ アプリケーション開発のサポートが追加され、 [ 22 ]基本ライブラリ全体で大幅なパフォーマンスの改善が行われています。
2020年11月、マイクロソフトは.NET 5.0をリリースしました。[ 23 ]「Core」というブランド名は廃止され、.NET Frameworkとの混同を避けるため、バージョン4.0はスキップされました。.NET Frameworkの最新リリースでは、2010年以降、重要な(バグ修正以外の)リリースすべてに4.xバージョンが使用されていました。
.NET Core ランタイムは、メジャー.マイナー.パッチ形式というセマンティック バージョニングを大まかに採用しています。メジャー バージョンは、「重大な変更」、API の互換性を損なう変更、または既存の依存関係のメジャー バージョンの増加によって増加します。これは毎年行われるべきです。マイナー バージョンは、API 機能、依存関係の追加、または既存の依存関係のマイナー バージョンの増加によって増加します。パッチ バージョンは、バグ修正、新しいプラットフォーム サポート、または上記に含まれないその他の変更に対して提供されます。[ 36 ] 2019 年現在、ランタイム バージョンは同じメジャー バージョン番号内で下位互換性があります。たとえば、.NET Core 2.2 は .NET Core 2.1 用に構築されたプログラムを実行できます。同じマイナー バージョン内のランタイム バージョン。[ 37 ]これは .NET 5 以降緩和されたようです。「ロールフォワード」動作により、適切な設定があれば、任意の .NET プログラムを任意の新しいバージョンで実行できます。[ 36 ]
SDK はセマンティック バージョニングを使用しません。2019 年現在、最大サポート バージョンより前のすべてのランタイム バージョンをターゲットにすることをサポートしています。 [ 37 ] 2020 年現在、これは.NET Frameworkランタイムにも拡張されますが、NuGetから追加の「ターゲット パック」をダウンロードする必要がある場合があります。[ 38 ] [ 39 ] SDK のメジャー バージョンとマイナー バージョンは、SDK に含まれる、またはアラインされているランタイムのメジャー バージョンとマイナー バージョンに常に一致します。[ 36 ]
主にmusl libcをサポートして使用するAlpine Linux [ 40 ]は、 .NET Core 2.1以降サポートされています[ 41 ] 。
Windows Arm64は .NET 5 以降ネイティブにサポートされています。以前は、.NET on ARM とは、x86 アーキテクチャ用にコンパイルされ、ARM エミュレーション レイヤーを介して実行されるアプリケーションを意味していました。[ 30 ]
Linux .NET は .NET 7 以降、ある程度 Power ISA 上で動作します。Microsoft は公式にはサポートを主張していませんが、.NET には Linux システム用の Power ISA 互換性コードが含まれており、特に 64 ビットリトルエンディアン版の Power ISA システム用にコンパイルできます。[ 42 ]

.NET はC#とF#を完全にサポートし(3.1 以降はC++/CLIもサポート。Windows でのみ有効)、Visual Basic .NETもサポートしています(.NET Core 5.0.100-preview.4 ではバージョン 15.5、古い .NET Core では一部の古いバージョンがサポートされています)。[ 43 ]
VB.NET は .NET 上でコンパイルおよび実行されますが、.NET Core 3.1 の時点では、独立した Visual Basic Runtime は実装されていません。Microsoft は当初、.NET Core 3 に Visual Basic Runtime が含まれると発表しましたが、2 年後にそのサポートのタイムラインが .NET 5 に更新されました。[ 44 ] [ 45 ]
.NET は、 ASP.NET Core Web アプリ、コマンドライン/コンソール アプリ、ライブラリ、Universal Windows Platform アプリといったクロス プラットフォームシナリオをサポートしています。.NET Core 3.0 より前は、Windows のデスクトップ ソフトウェアの標準GUIをレンダリングするWindows FormsやWindows Presentation Foundation (WPF) は実装されていませんでした。 [ 46 ]しかし、.NET Core 3 以降は、 Universal Windows Platform (UWP)とともにこれらの実装を開始しました。[ 47 ]また、 GTKウィジェット ツールキット用のGTK#言語バインディングを使用して .NET でクロス プラットフォームのグラフィカル アプリケーションを作成することも可能でしたが、このバインディングは長年メンテナンスされていません。[ 48 ]
.NET はNuGetパッケージの使用をサポートしています。Windows Updateを使用してサービスされる.NET Frameworkとは異なり、.NET は以前はパッケージ マネージャーを使用して更新を受け取っていました。[ 46 ]しかし、2020 年 12 月以降、.NET の更新は Windows Update 経由でも配信されるようになりました。[ 49 ]
NuGetは、.NETエコシステムにおけるライブラリやツールの主要な配布メカニズムとして機能し、コア機能を拡張するサードパーティ製コンポーネントも含まれます。これらの中には、デフォルトのSQL Serverサポートを超えるシステム向けにデータベース接続を提供するADO.NET互換データプロバイダーがあります。これらのプロバイダーは、Oracle、MySQL、PostgreSQLなどのデータベースへの直接アクセスを可能にし、クロスプラットフォームのデータアクセス、ORMテクノロジーとの統合、または特定のデータベース機能のサポートを必要とするアプリケーションで一般的に使用されています。
.NET の 2 つの主要コンポーネントは CoreCLR と CoreFX であり、これらは.NET Frameworkの共通言語インフラストラクチャ(CLI) 実装の共通言語ランタイム(CLR) とフレームワーク クラス ライブラリ(FCL)に相当します。[ 50 ]
CoreCLRはCLIの仮想実行システム(VES)の実装として、 CLIプログラムのマネージド実行のための完全なランタイムおよび仮想マシンであり、 RyuJITと呼ばれるジャストインタイムコンパイラが含まれています。 [ 51 ] [ a ] .NET Coreには、AOTコンパイルされたネイティブバイナリに統合するように最適化された.NETネイティブランタイムであるCoreRTも含まれています。[ 53 ]
CLI の標準ライブラリの実装として、[ 54 ] CoreFX は.NET Framework APIのサブセットを共有していますが、.NET Frameworkの一部ではない独自の API も備えています。[ 46 ] .NETライブラリのバリアントはUWPに使用されます。[ 55 ]
.NETコマンドラインインターフェイスは、オペレーティングシステムの実行エントリポイントを提供し、コンパイルやパッケージ管理などの開発者サービスを提供します。[ 56 ]

.NET マルチプラットフォーム アプリ UI ( .NET MAUI 、.NET 6 で導入) は、 C#と拡張アプリケーション マークアップ言語(XAML)を使用してネイティブ モバイル アプリとデスクトップ アプリを作成するためのクロス プラットフォーム フレームワークです[ 57 ]。Android、 iOS 、 macOS 、 Windows 、 Tizenもサポートしています。

.NET の公式コミュニティマスコットは .NET Bot (「dotnet bot」または「dotnet-bot」と表記) です。dotnet bot は、.NET ソースコードがオープンソース化された際の最初のチェックインのプレースホルダー開発者として機能しました。[ 58 ]それ以来、公式マスコットとして使用されています。
....NET Core ランタイムの更新は、1.x や 2.x などのメジャーバージョンの「バンド」内で互換性があります。[...]「.NET Core 2.1」は、.NET Core ランタイムのバージョン番号を指します。.NET Core ランタイムは、セマンティック バージョニングに従うメジャー/マイナー/パッチ方式でバージョン管理を行います。