.NET Core(ドットネット・コア)は、.NETを実装したフリーでオープンソースなクロスプラットフォームマネージソフトウェアフレームワークである[3]

.NET Core
.NET Logo.svg
開発元 .NET Foundation
最新版 3.1.4 / 2020年5月19日(7日前) (2020-05-19[1]
最新評価版 5.0.0 Preview 4 / 2020年5月19日(7日前) (2020-05-19
リポジトリ https://github.com/dotnet/core,
https://github.com/dotnet/coreclr
プログラミング言語 C++およびC#
対応OS Windows, Linux, macOS
種別 ソフトウェアフレームワーク
ライセンス MIT License[2]
公式サイト dotnet.github.io
テンプレートを表示

概要編集

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

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

機能編集

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

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

対応言語編集

.NET Coreは以下の3言語をサポートする[8]

実装編集

.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 FrameworkAPIを一部共有しているが、.NET Coreには.NET Frameworkに存在しない固有のAPIが搭載されている[6]のに加え、CoreRTも含まれている。CoreRTとは、AOTコンパイルされたネイティブバイナリとの統合のために最適化された、.NETネイティブランタイムである。.NET Coreライブラリの派生物はUWP用に利用されている[16]。.NET Coreのコマンドラインインタフェースは、オペレーティングシステムには実行エントリポイントを、開発者にはコンパイルやパッケージ管理などのサービスを提供する[17]

バージョン編集

.NET Coreバージョン
バージョン リリース日 発表 備考
.NET Core 1.0 2016-06-27[18]
.NET Core 1.1 2017-03-07[19]
.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[20] Build 2018英語版
.NET Core 3.1 2019-12-03 LTS
.NET 5 2020-11予定[21] 名前から"Core"が外れる予定[22]
.NET 6 2021-11予定[23] LTS
.NET 7 2022-11予定
.NET 8 2023-11予定 LTS

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

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

Windows系UI専用ライブラリ編集

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

脚注編集

[脚注の使い方]

注釈編集

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

出典編集

  1. ^ Download .NET Core”. Microsoft. 2020年5月26日閲覧。
  2. ^ core/LICENSE.TXT”. GitHub. 2018年6月4日閲覧。
  3. ^ 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.”
  4. ^ a b What is .NET? An open-source developer platform.”. 2019年9月24日閲覧。
  5. ^ Download .NET Core”. microsoft.com. マイクロソフト. 2017年10月31日閲覧。
  6. ^ 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日閲覧。. 
  7. ^ a b .NET 2015 Overview”. Channel 9英語版. マイクロソフト (2015年11月18日). 2018年8月27日閲覧。
  8. ^ .NET Core について - 言語”. Microsoft Docs. 2019年9月24日閲覧。
  9. ^ README.md coreclr”. GitHub. 2019年9月24日閲覧。 “.NET Core is a self-contained .NET runtime and framework that implements ECMA 335.”
  10. ^ 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.”
  11. ^ 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.”
  12. ^ CoreCLR is now Open Source”. .NET Framework Blog. マイクロソフト (2015年2月3日). 2015年2月27日閲覧。
  13. ^ Why RyuJIT? How was the name chosen?”. nuWave eSolutions Development Team Blog. 2016年6月21日閲覧。[出典無効]
  14. ^ 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.”
  15. ^ Introducing .NET Core”. .NET Blog. マイクロソフト (2014年12月4日). 2015年2月27日閲覧。
  16. ^ Intro to .NET Native and CoreRT”. GitHub (2016年4月23日). 2018年8月27日閲覧。
  17. ^ Intro to CLI”. GitHub (2016年4月23日). 2018年8月27日閲覧。
  18. ^ core/1.0.0.md at master · dotnet/core”. GitHub. 2020年5月26日閲覧。
  19. ^ Announcing .NET Core Tools 1.0”. 2017年3月29日閲覧。
  20. ^ Announcing .NET Core 3.0”. .NET Blog. 2019年9月24日閲覧。
  21. ^ Introducing .NET 5”. .NET Blog. 2019年5月7日閲覧。 “We intend to release .NET 5 in November 2020”
  22. ^ Introducing .NET 5”. .NET Blog. 2019年5月7日閲覧。 “.NET 5 = .NET Core vNext
    .NET 5 is the next step forward with .NET Core.”
  23. ^ core/roadmap.md at master · dotnet/core”. GitHub. 2019年12月4日閲覧。
  24. ^ 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.”
  25. ^ .NET Core 3 and Support for Windows Desktop Applications”. MSDNブログ. マイクロソフト (2018年5月7日). 2018年8月27日閲覧。
  26. ^ Windows Forms アプリを .NET Core 3.0 に移植する - .NET Core”. Microsoft Docs. 2019年9月24日閲覧。 “Windows Forms は、まだ Windows 専用のフレームワークであるため、Windows 上でのみ実行されます。”

外部リンク編集