.NET

.NET Foundationが開発したソフトウェアフレームワーク

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

.NET
開発元 .NET Foundation
最新版
8.0.8 / 2024年8月13日 (3か月前) (2024-08-13)[1]
リポジトリ ウィキデータを編集
プログラミング
言語
C++およびC#
対応OS Windows 10以降, Windows Server 2012以降, Linux, macOS 12以降, Android 12以降, iOS 15以降, tvOS, watchOS[2]
プラットフォーム x86, x64, ARM32, ARM64
前身 .NET Framework, Xamarin, Mono
ライセンス MIT License[3]
公式サイト dotnet.microsoft.com ウィキデータを編集
テンプレートを表示

.NETの実装には.NET FrameworkXamarin/Monoが存在する[6].NET Coreはクロスプラットフォームを特徴としてMicrosoftが開発を主導している.NET実装の1つである[6]WindowsLinuxmacOS等に対応している[7]。.NET Coreの基盤上では以下のタイプ(シナリオ)のアプリケーションを開発できる。

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

機能

編集

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

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

対応言語

編集

.NET では以下の3つの言語を公式的にサポートしている[10]

実装

編集

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

.NET CoreのランタイムはCoreCLRである[12]。CoreCLRはガベージコレクタJITコンパイラ(RyuJIT)、プリミティブな型/クラスライブラリからなっている[13][14][注釈 1][注釈 2][15]。またランタイムに必要な型/クラスライブラリに追加して、フレームワークとして規定する型群としてCoreFXが.NET Coreには含まれる[16]。CoreFXはFramework Class Library英語版の一部をフォークしたものである[17]

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

ランタイム

編集

.NETは複数のランタイムを利用できる。以下は .NET 7 における対応ランタイムである[20][21]

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

Windows系UI専用ライブラリ

編集

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

バージョン

編集
.NET バージョン[25]
バージョン リリース日 長期
サポート
変更内容
.NET Core 1.0 2016-06-27[26]
.NET Core 1.1 2017-03-07[27]
.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[28] Build 2018英語版で発表。デスクトップ・人工知能/機械学習IoTアプリケーションの開発をサポートした。
.NET Core 3.1 2019-12-03  
.NET 5 2020-11-10[29] 名前から"Core"が外れた[30]。.NET Core 4はスキップされ、.NET 5になった。これは.NET 5が.NET Framework 4.8の後継でもあることから、.NET Framework 4.xとの混同を防ぐ目的を含んでいる[31]
.NET 6 2021-11-08[32]  
.NET 7 2022-11-08 Windows 8以前がサポート対象外となった。[33]
.NET 8 2023-11-14  

サポート期限

編集

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

脚注

編集

注釈

編集
  1. ^ RyuJITはもともと.NET Framework 4.6にて、新しい64ビット版のJITコンパイラとして導入された。
  2. ^ 接頭辞である "Ryu" は日本語の「竜」であるが、これはThe Dragon Book英語版に由来する。

出典

編集
  1. ^ Releases · dotnet/core”. May 17, 2024閲覧。
  2. ^ core/release-notes/8.0/supported-os.md at main · dotnet/core”. May 17, 2024閲覧。
  3. ^ core/LICENSE.TXT”. GitHub. 2018年6月4日閲覧。
  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.”
  5. ^ 再統合された .NET:.NET 5 に関する Microsoft の計画”. Microsoft Docs. 2021年10月18日閲覧。
  6. ^ a b What is .NET? An open-source developer platform.”. 2019年9月24日閲覧。
  7. ^ .NET の概要”. microsoft.com. マイクロソフト. 2021年3月8日閲覧。
  8. ^ 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日閲覧。. 
  9. ^ a b .NET 2015 Overview”. Channel 9英語版. マイクロソフト (18 November 2015). 2018年8月27日閲覧。
  10. ^ .NET マネージド言語の戦略 - .NET”. Microsoft Learn. 2024年3月18日閲覧。
  11. ^ README.md coreclr”. GitHub. 2019年9月24日閲覧。 “.NET Core is a self-contained .NET runtime and framework that implements ECMA 335.”
  12. ^ 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.”
  13. ^ 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.”
  14. ^ CoreCLR is now Open Source”. .NET Framework Blog. マイクロソフト (3 February 2015). 27 February 2015閲覧。
  15. ^ Why RyuJIT? How was the name chosen?”. nuWave eSolutions Development Team Blog. 21 June 2016閲覧。[出典無効]
  16. ^ 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.”
  17. ^ Introducing .NET Core”. .NET Blog. マイクロソフト (4 December 2014). 27 February 2015閲覧。
  18. ^ Intro to .NET Native and CoreRT”. GitHub (23 April 2016). 2018年8月27日閲覧。
  19. ^ Intro to CLI”. GitHub (23 April 2016). 2018年8月27日閲覧。
  20. ^ "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閲覧.
  21. ^ a b "the Native AOT support now shipping in .NET 7." Douglas, et al. (2022). .NET 7 is Available Today. .NET Blog.
  22. ^ "NativeAOT - .NET runtime optimized for ahead of time compilation." dotnet/runtimelab. 2022-12-18閲覧.
  23. ^ .NET Core 3 and Support for Windows Desktop Applications”. MSDNブログ. マイクロソフト (7 May 2018). 2018年8月27日閲覧。
  24. ^ Windows Forms アプリを .NET Core 3.0 に移植する - .NET Core”. Microsoft Docs. 2019年9月24日閲覧。 “Windows Forms は、まだ Windows 専用のフレームワークであるため、Windows 上でのみ実行されます。”
  25. ^ a b .NET および .NET Core オフィシャル サポート ポリシー”. Microsoft. 17 May 2024閲覧。
  26. ^ core/1.0.0.md at master · dotnet/core”. GitHub. 2020年5月26日閲覧。
  27. ^ Announcing .NET Core Tools 1.0”. 2017年3月29日閲覧。
  28. ^ Announcing .NET Core 3.0”. .NET Blog. 2019年9月24日閲覧。
  29. ^ Announcing .NET 5.0”. .NET Blog. 2020年11月11日閲覧。
  30. ^ Introducing .NET 5”. .NET Blog. 2019年5月7日閲覧。 “.NET 5 = .NET Core vNext
    .NET 5 is the next step forward with .NET Core.”
  31. ^ 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.”
  32. ^ core/roadmap.md at master · dotnet/core”. GitHub. 2019年12月4日閲覧。
  33. ^ core/release-notes/7.0/supported-os.md at main · dotnet/core”. May 17, 2024閲覧。
  34. ^ Oracle Java SE Supportロードマップ | Oracle 日本”. oracle.com. 17 May 2024閲覧。
  35. ^ core/support.md at main · dotnet/core”. May 17, 2024閲覧。
  36. ^ Life Cycle and Support Policies for the .NET Program - Red Hat Customer Portal”. Red Hat Customer Portal. 17 May 2024閲覧。
  37. ^ adegeo. “.NET and Ubuntu overview - .NET”. learn.microsoft.com. 17 May 2024閲覧。

外部リンク

編集