.NET
開発元 | .NET Foundation |
---|---|
リポジトリ | ウィキデータを編集 |
プログラミング 言語 | C++およびC# |
対応OS | Windows, Linux, macOS, Android, iOS, tvOS, watchOS |
種別 | ソフトウェアフレームワーク |
ライセンス | MIT License [1] |
公式サイト |
dotnet |
テンプレートを表示 |
.NET(旧称 .NET Core)は、.NETを実装したフリーでオープンソースなクロスプラットフォームマネージソフトウェアフレームワークである[2] 。.NET 5以降は、.NET FrameworkおよびXamarin/Monoの機能が統合され、それらの後継にもなっている。[3]
.NETの実装には.NET FrameworkやXamarin/Monoが存在する[4] 。.NET Coreはクロスプラットフォームを特徴としてMicrosoftが開発を主導している.NET実装の1つである[4] 。Windows・Linux・macOS等に対応している[5] 。.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の更新はそのパッケージマネージャに依存する[6] [7] 。
機能
.NET Coreはフレームワークとして、実行環境のような下位レイヤーからUIフレームワークのような上位レイヤーまで様々な機能を提供する。以下は機能の例である。
- プログラム実行環境(CoreCLRによるマネージコード実行環境)
- ポータブル実行ファイル(各言語から共通中間言語へのコンパイルが可能にする持ち運べる実行ファイル)
- 型/クラスライブラリ(標準ライブラリ = 言語仕様以上の型/クラス提供 by CoreCLR & CoreFX)
対応言語
.NET Coreは以下の3言語をサポートする[8] 。
- C#
- Visual Basic (Visual Basic .NET)
- F#
実装
.NETは共通言語基盤 (CLI) の元となっている仕様であり、.NET CoreはCLIの実装になっている[9] 。
.NET CoreのランタイムはCoreCLRである[10] 。CoreCLRはガベージコレクタ、JITコンパイラ(RyuJIT)、プリミティブな型/クラスライブラリからなっている[11] [12] [注釈 1] [注釈 2] [13] 。またランタイムに必要な型/クラスライブラリに追加して、フレームワークとして規定する型群としてCoreFXが.NET Coreには含まれる[14] 。CoreFXはFramework Class Library (英語版)の一部をフォークしたものである[15] 。
.NET Coreと.NET FrameworkはAPIを一部共有しているが、.NET Coreには.NET Frameworkに存在しない固有のAPIが搭載されている[6] 。.NET Coreライブラリの派生物はUWP用に利用されている[16] 。.NET Coreのコマンドラインインタフェースは、オペレーティングシステムには実行エントリポイントを、開発者にはコンパイルやパッケージ管理などのサービスを提供する[17] 。
ランタイム
.NETは複数のランタイムを利用できる。以下は .NET 7 における対応ランタイムである[18] [19] 。
- CoreCLR
- Monoランタイム: .NET規格実装の1つであるMonoに由来するランタイム。
- NativeAOT: AOTコンパイルに特化したランタイム[20] 。開発段階ではCoreRTと呼ばれ .NET 7 より正式導入された[19] 。
これらは目的に応じて使い分けられる。例えば iOS はAOTコンパイル前提でありMonoランタイムが利用される。
バージョン
バージョン | リリース日 | 発表 | 備考 |
---|---|---|---|
.NET Core 1.0 | 2016年06月27日[21] | ||
.NET Core 1.1 | 2017年03月07日[22] | ||
.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日[23] | Build 2018 (英語版) | |
.NET Core 3.1 | 2019年12月03日 | LTS | |
.NET 5 | 2020年11月10日[24] | 名前から"Core"が外れた[25] | |
.NET 6 | 2021年11月08日[26] | LTS | |
.NET 7 | 2022年11月08日 | ||
.NET 8 | 2023年11月14日 | LTS |
.NET Core 3から、デスクトップ・人工知能/機械学習・IoTアプリケーションの開発をサポートした。
.NET Core 4はスキップされ、.NET 5になった。これは.NET 5が.NET Framework 4.8の後継でもあることから、.NET Framework 4.xとの混同を防ぐ目的を含んでいる[27] 。
Windows系UI専用ライブラリ
もともと.NET Coreはクロスプラットフォームを前提とするフレームワークであり、.NET Core 3よりも前のバージョンでは、Windowsのデスクトップソフトウェア用の標準GUIを提供するためのWindows FormsとWPFが実装されていなかった[6] [7] 。2018年にマイクロソフトは、デスクトップ技術であるWindows Forms、WPF、UWPを.NET Core 3からサポートすることを公表した[28] 。.NET Core 3.0では、Windows版に限りWindows FormsおよびWPFのサポートが提供されるようになった[29] 。
脚注
注釈
- ^ RyuJITはもともと.NET Framework 4.6にて、新しい64ビット版のJITコンパイラとして導入された。
- ^ 接頭辞である "Ryu" は日本語の「竜」であるが、これはThe Dragon Book (英語版)に由来する。
出典
- ^ "core/LICENSE.TXT". GitHub . 2018年6月4日閲覧。
- ^ "What is .NET? An open-source developer platform.". 2019年9月24日閲覧。 ".NET Core is a cross-platform .NET implementation for websites, servers, and console apps on Windows, Linux, and macOS."
- ^ "再統合された .NET:.NET 5 に関する Microsoft の計画". Microsoft Docs. 2021年10月18日閲覧。
- ^ a b "What is .NET? An open-source developer platform.". 2019年9月24日閲覧。
- ^ ".NET の概要". microsoft.com. マイクロソフト. 8 March 2021閲覧。
- ^ a b c Carter, Phillip; Knezevic, Zlatko (April 2016). ".NET Core - .NET Goes Cross-Platform with .NET Core". MSDN マガジン (マイクロソフト) 13 (4). https://msdn.microsoft.com/magazine/mt694084 2018年8月27日閲覧。.
- ^ a b ".NET 2015 Overview". Channel 9 (英語版). マイクロソフト (18 November 2015). 2018年8月27日閲覧。
- ^ ".NET Core について - 言語". Microsoft Docs. 2019年9月24日閲覧。
- ^ "README.md coreclr". GitHub. 2019年9月24日閲覧。 ".NET Core is a self-contained .NET runtime and framework that implements ECMA 335."
- ^ "dotnet/coreclr: CoreCLR is the runtime for .NET Core. It includes the garbage collector, JIT compiler, primitive data types and low-level classes.". GitHub. 2019年9月24日閲覧。 "CoreCLR is the runtime for .NET Core."
- ^ "dotnet/coreclr: CoreCLR is the runtime for .NET Core. It includes the garbage collector, JIT compiler, primitive data types and low-level classes.". GitHub. 2019年9月24日閲覧。 "It includes the garbage collector, JIT compiler, primitive data types and low-level classes."
- ^ "CoreCLR is now Open Source". .NET Framework Blog. マイクロソフト (3 February 2015). 27 February 2015閲覧。
- ^ "Why RyuJIT? How was the name chosen?". nuWave eSolutions Development Team Blog. 21 June 2016閲覧。[出典無効 ]
- ^ "dotnet/coreclr: CoreCLR is the runtime for .NET Core. It includes the garbage collector, JIT compiler, primitive data types and low-level classes.". GitHub. 2019年9月24日閲覧。 "Many of the most familiar classes (
System.Collections
,System.IO
,System.Xml
and so on), live in packages defined in the dotnet/corefx repository." - ^ "Introducing .NET Core". .NET Blog. マイクロソフト (4 December 2014). 27 February 2015閲覧。
- ^ "Intro to .NET Native and CoreRT". GitHub (23 April 2016). 2018年8月27日閲覧。
- ^ "Intro to CLI". GitHub (23 April 2016). 2018年8月27日閲覧。
- ^ "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日閲覧.
- ^ a b "the Native AOT support now shipping in .NET 7." Douglas, et al. (2022). .NET 7 is Available Today . .NET Blog.
- ^ "NativeAOT - .NET runtime optimized for ahead of time compilation." dotnet/runtimelab . 2022年12月18日閲覧.
- ^ "core/1.0.0.md at master · dotnet/core". GitHub. 2020年5月26日閲覧。
- ^ "Announcing .NET Core Tools 1.0". 2017年3月29日閲覧。
- ^ "Announcing .NET Core 3.0". .NET Blog. 2019年9月24日閲覧。
- ^ "Announcing .NET 5.0". .NET Blog. 2020年11月11日閲覧。
- ^ "Introducing .NET 5". .NET Blog. 2019年5月7日閲覧。 ".NET 5 = .NET Core vNext .NET 5 is the next step forward with .NET Core."
- ^ "core/roadmap.md at master · dotnet/core". GitHub. 2019年12月4日閲覧。
- ^ "Introducing .NET 5". .NET Blog. 2019年9月19日閲覧。 "We’re skipping the version 4 because it would confuse users that are familiar with the .NET Framework, which has been using the 4.x series for a long time."
- ^ ".NET Core 3 and Support for Windows Desktop Applications". MSDNブログ. マイクロソフト (7 May 2018). 2018年8月27日閲覧。
- ^ "Windows Forms アプリを .NET Core 3.0 に移植する - .NET Core". Microsoft Docs. 2019年9月24日閲覧。 "Windows Forms は、まだ Windows 専用のフレームワークであるため、Windows 上でのみ実行されます。"
外部リンク
- .NET (英語)
- .NET (日本語)
- .NET Framework の概要
- microsoft / dotnet - GitHub
- .NET ダウンロード
アーキテクチャ | |
---|---|
共通言語基盤 | |
言語 |
|
パッケージマネージャ | |
関連技術 | |
その他のCLI実装 | |
組織 | |
開発環境 | |
その他 | |
カテゴリ カテゴリ |
マイクロソフトのAPIとフレームワーク | |
---|---|
グラフィック | |
オーディオ | |
マルチメディア | |
ウェブ | |
データアクセス | |
ネットワーク | |
コミュニケーション | |
管理 | |
コンポーネントモデル | |
ライブラリ | |
デバイスドライバ | |
セキュリティ | |
.NET | |
ソフトウェアファクトリー | |
IPC | |
アクセシビリティ | |
テキストと多言語 サポート | |