.NET

.NET（旧称 .NET Core）は、.NETを実装したフリーでオープンソースなクロスプラットフォームマネージソフトウェアフレームワークである。.NET 5以降は、.NET FrameworkおよびXamarin/Monoの機能が統合され、それらの後継にもなっている。

.NETの実装には.NET FrameworkやXamarin/Monoが存在する。.NET Coreはクロスプラットフォームを特徴としてMicrosoftが開発を主導している.NET実装の1つである。Windows・Linux・macOS等に対応している。.NET Coreの基盤上では以下のタイプ（シナリオ）のアプリケーションを開発できる。

 Webアプリ（ASP.NET Coreによる）
 コマンドラインアプリ
 ライブラリ
 GUIアプリ（Windows限定）
 ユニバーサルWindowsプラットフォーム (UWP) アプリ - .NETネイティブ
 デスクトップアプリ (Windows Forms / WPF)

.NET Coreはモジュラーでもあるため、開発者は.NET CoreをアセンブリではなくNuGetパッケージにしてもよい。.NET FrameworkはWindows Updateにより更新されるが、.NET Coreの更新はそのパッケージマネージャに依存する。

機能 

.NET Coreはフレームワークとして、実行環境のような下位レイヤーからUIフレームワークのような上位レイヤーまで様々な機能を提供する。以下は機能の例である。

 プログラム実行環境（CoreCLRによるマネージコード実行環境）
 ポータブル実行ファイル（各言語から共通中間言語へのコンパイルが可能にする持ち運べる実行ファイル）
 型/クラスライブラリ（標準ライブラリ = 言語仕様以上の型/クラス提供 by CoreCLR & CoreFX）

対応言語 
.NET Coreは以下の3言語をサポートする。

 C#
 Visual Basic (Visual Basic .NET)
 F#

実装 
.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 における対応ランタイムである。

 CoreCLR
 Monoランタイム: .NET規格実装の1つであるMonoに由来するランタイム。
 NativeAOT: AOTコンパイルに特化したランタイム。開発段階ではCoreRTと呼ばれ .NET 7 より正式導入された。

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

バージョン 

.NET Core 3から、デスクトップ・人工知能/機械学習・IoTアプリケーションの開発をサポートした。

.NET Core 4はスキップされ、.NET 5になった。これは.NET 5が.NET Framework 4.8の後継でもあることから、.NET Framework 4.xとの混同を防ぐ目的を含んでいる。

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
 .NET Framework の概要
 
 .NET ダウンロード

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