Microsoft が開発した、無料かつオープンソースのクロスプラットフォーム ソフトウェア プラットフォーム
.NET プラットフォーム(「 ドットネット」 と発音 、旧称 .NET Core )は、 Windows 、 Linux 、 macOS オペレーティングシステム 用の 無料かつオープンソースの マネージド コンピュータ ソフトウェアフレームワーク です。 [5] これは、 .NET Framework のクロスプラットフォームの後継です 。このプロジェクトは、主に Microsoftの従業員によって .NET Foundation を通じて開発されており、現在は MITライセンス の下でリリースされています 。 [4]
.NETプラットフォームの新バージョンは毎年、通常は11月にリリースされます。.NETの最新バージョンは、2025年11月にリリースされた.NET 10です。これは長期サポート(LTS)バージョンであり、2028年11月まで更新が予定されています。 [6]
歴史
1990 年代後半、マイクロソフトは マネージ コード ランタイムとプログラミング言語 ( C# ) の開発を開始し、これらをまとめて「.NET プラットフォーム」の一部として宣伝しました。コア ランタイムと ソフトウェア ライブラリは .NET Framework を構成します 。
.NETプラットフォームの中心となるのは.NET Frameworkです。これは、言語間の継承やデバッグなどの重要な機能を備えたWebサービスを構築および実行するための、生産性の高い多言語開発および実行環境です。 [7]
2000年の Professional Developers Conference でC#言語が発表され、そのソフトウェアのプレビュー版が利用可能になった直後、マイクロソフトは ECMAを通じて、 Common Language Infrastructure(共通言語基盤 )と名付けた標準化活動を開始しました。 その間も、 同社は独自の実装を プロプライエタリなクローズドソースソフトウェアとして開発とサポートを継続しました。 [ 要出典 ]
2014年11月12日、 マイクロソフトは .NET Frameworkの オープンソースで クロスプラットフォームな 後継 [8 ] である .NET Coreを発表し、 .NET Core の「ライブラリスタック全体」のソースである CoreCLR実装の ソースコード を公開し、 [10]、. NET Foundation の管理下で 従来の( 「バザール」のような ) オープンソース開発モデル を採用することを発表しました。 ミゲル・デ・イカサは .NET Coreを「クラスライブラリの簡素化されたバージョンに基づいた.NETの再設計バージョン」と表現し [11] 、マイクロソフトのイモ・ランドワースは.NET Coreが「将来のすべての.NETプラットフォームの基盤となる」と説明しました。発表当時、.NET Coreプロジェクトの初期リリースにはライブラリのソースコードのサブセットが組み込まれており、Microsoftの既存の.NETリファレンスソースが Ms-RSL の制限から解放される形で再ライセンスされた時期と一致していました。ランドワース氏は、以前選択された共有ライセンスの欠点を認め、 コードネーム「Rotor 」は オープンソース・イニシアティブ (OSI)承認ライセンスの基準を満たしていなかったため、コミュニティ開発型のオープンソースプロジェクトとしては「実現不可能」だったと説明しました 。 [12] [13] [14]
.NET Core 1.0は、2016年6月27日にリリースされ、 [15] .NET Core開発を可能にする Microsoft Visual Studio 2015 Update 3とともにリリースされました。 [16] .NET Core 1.0.4と.NET Core 1.1.1は、2017年3月7日に.NET Core Tools 1.0とVisual Studio 2017とともにリリースされました。 [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] .NET Frameworkとの混同を避けるため、「Core」ブランドは廃止され、バージョン4.0はスキップされた。.NET Frameworkの最新リリースでは、2010年以降のすべての重要な(バグ修正以外の)リリースで バージョン 4.xが使用されていた 。
バージョン管理の実践
.NET Core ランタイムは 、 セマンティック・バージョニング (major.minor.patch 形式)を採用しています。メジャーバージョンは、「重要な変更」、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に含まれる、またはSDKと連携しているランタイムのメジャーバージョンとマイナーバージョンと常に一致します。 [36]
OSとアーキテクチャのサポート
Alpine Linuxは主に musl libc をサポートし使用しており [40]、. NET Core 2.1以降でサポートされています。 [41]
Windows Arm64 は.NET 5以降ネイティブにサポートされています。以前は、ARM上の.NETはx86アーキテクチャ用にコンパイルされ、ARMエミュレーション層を介して実行されるアプリケーションを意味していました。 [30]
Linux .NETは.NET 7以降、ある程度Power ISA上で動作しますが、Microsoftは公式にはサポートを表明していません。しかし、.NETにはLinuxシステムのPower ISA互換性のためのコードが含まれており、特に64ビットの リトルエンディアン バリアントのPower ISAシステム用にコンパイルできます。 [42]
言語サポート
.NET は 共通言語インフラストラクチャ (CLI) を使用するため、複数のプログラミング言語を使用できます。
.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ランタイムが実装されていません。Microsoftは当初、.NET Core 3にVisual Basicランタイムが含まれると発表していましたが、2年後、サポートのスケジュールは.NET 5に更新されました。 [44] [45]
建築
.NETは、 ASP.NET Core Webアプリ 、コマンドライン/コンソールアプリ、ライブラリ、 ユニバーサルWindowsプラットフォームアプリという クロスプラットフォームの シナリオをサポートしています 。.NET Core 3.0より前は、 Windows上のデスクトップソフトウェアの 標準 GUIをレンダリングする Windowsフォーム や Windows Presentation Foundation (WPF)は実装されていませんでした。 [46]しかし、.NET Core 3以降は、 ユニバーサルWindowsプラットフォーム (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]
CLIの仮想実行システム (VES)の実装であるCoreCLRは、 CLIプログラムの マネージド 実行 のための 完全な ランタイム および 仮想マシン であり、 RyuJITと呼ばれる ジャストインタイムコンパイラが含まれています。 [51] [a] .NET Coreには、 AOT コンパイルされたネイティブ バイナリ に統合されるように最適化された.NETネイティブランタイムであるCoreRTも含まれています 。 [53]
CLIの標準ライブラリ の実装として 、 [54] CoreFXは.NET Framework APIのサブセットを共有していますが、.NET Frameworkに含まれない独自のAPIも付属しています。 [46] UWP では.NET ライブラリ のバリアントが使用されています 。 [55]
.NET コマンドラインインターフェースは オペレーティングシステム の実行エントリポイントを提供し 、コンパイルやパッケージ管理などの開発者向けサービスも提供します。 [56]
.NET におけるストリーム階層の UML パッケージ図
.NET マウイ
.NETマルチプラットフォームアプリUI ( .NET MAUI 、.NET 6で導入)は、 C# と 拡張アプリケーションマークアップ言語 (XAML)を使用してネイティブモバイルおよびデスクトップアプリを作成するためのクロスプラットフォームフレームワークであり、 [57] Android 、 iOS 、 macOS 、 Windows 、 Tizen もサポートしています 。
マスコット
.NET のコミュニティ マスコット、dotnet bot
.NETの公式コミュニティマスコットは、.NET Bot(「dotnet bot」または「dotnet-bot」と表記)です。dotnet botは、.NETソースコードがオープンソース化された際に、最初のチェックイン時に開発者の仮登録として機能しました。 [58] 以来、公式マスコットとして使用されています。
注記
参考文献
^ 「.NET 10.0 をダウンロード」 。 2025年 12月9日 閲覧。
^ 「.NET 10.0 をダウンロード」 。 2025年 10月14日 閲覧。
^ 「第4章 サポートされているオペレーティングシステムとアーキテクチャ | .NET 8.0 RPMパッケージのリリースノート | .NET | 8.0 | Red Hatドキュメント」 。docs.redhat.com 。 2025年 9月13日 閲覧 。
^ ab "core/LICENSE.TXT". GitHub . 2021年7月16日時点のオリジナルよりアーカイブ 。 2018年 6月4日 閲覧。
^ 「.NET Core をダウンロード」 。microsoft.com。Microsoft 。 2017年9月3 日 時点のオリジナルよりアーカイブ 。 2017年 10月31日 閲覧。
^ ab 「.NET および .NET Core の公式サポート ポリシー」 。.NET。Microsoft 。
^ 「Microsoft、Webサービス構築向け初の.NETプラットフォーム開発ツールを提供」2000年7月11日. 2023年 11月5日 閲覧 。
^ “.NET Coreは.NETの未来だ”. 2019年5月6日. 2022年4月9日時点のオリジナルよりアーカイブ 。 2019年 5月17日 閲覧。
^ “.NET Frameworkは終了 – .NET 5万歳”. 2019年5月7日. 2021年11月13日時点のオリジナルよりアーカイブ 。 2019年 6月4日 閲覧。
^ 「.NET開発会社が最適な後押しとなる理由 | Pangea.ai」 www.pangea.ai . 2022年 12月8日 閲覧 。
^ de Icaza, Miguel . 「Microsoft Open Sources .NET and Mono」. Miguel de Icaza の個人ブログ . 2015年1月4日時点のオリジナルよりアーカイブ。 2014年 11月16日 閲覧 。
^ Landwerth, Immo (2014年11月12日). 「.NET Coreはオープンソースです」. .NET Framework ブログ . Microsoft. 2016年3月1日時点のオリジナルよりアーカイブ 。 2014年 12月30日 閲覧。
^ "dotnet/corefx". GitHub. 2018年7月3日時点のオリジナルよりアーカイブ 。 2014年 11月16日 閲覧。
^ "Microsoft/referencesource". GitHub. 2015年2月4日時点のオリジナルよりアーカイブ 。 2014年 11月16日 閲覧。
^ Bright, Peter (2016年6月27日). 「.NET Core 1.0 リリース、Red Hat が公式サポートを開始」 Ars Technica . Condé Nast . 2022年5月25日時点のオリジナルよりアーカイブ。 2018年 7月9日 閲覧 。
^ Foley, Mary Jo (2016年6月27日). 「Microsoft、Red Hat Enterprise Linux 上の SQL Server と .NET Core の成果物を展示」 ZDNet . CBS Interactive . 2021年10月26日時点のオリジナルよりアーカイブ。 2024年 7月5日 閲覧 。
^ “Announcement .NET Core Tools 1.0 | .NET Blog”. Blogs.msdn.microsoft.com. 2017年3月7日. 2019年5月5日時点のオリジナルよりアーカイブ。 2020年 1月18日 閲覧 。
^ ab ".NET Core 2.0 を発表". .NET Blog . Microsoft. 2017年8月14日. 2020年6月1日時点のオリジナルよりアーカイブ 。 2021年 10月17日 閲覧。
^ ab ".NET Core 2.1 を発表". .NET Blog . Microsoft. 2018年5月30日. 2019年12月25日時点のオリジナルよりアーカイブ 。 2021年 10月17日 閲覧。
^ ab ".NET Core 2.2 を発表". .NET Blog . Microsoft. 2018年12月4日. 2019年2月16日時点のオリジナルよりアーカイブ 。 2021年 10月17日 閲覧。
^ “.NET Core は .NET の未来です”. .NET Blog . 2019年5月6日. オリジナルより2022年4月9日時点のアーカイブ 。 2019年 5月17日 閲覧。
^ 「.NET Core 3.0の新機能」 。.NETドキュメント 。2020年12月24日時点のオリジナルよりアーカイブ 。 2020年 12月30日 閲覧。
^ “Announcement .NET 5.0”. .NET Blog . 2020年11月10日. 2022年6月29日時点のオリジナルよりアーカイブ。 2020年 11月21日 閲覧 。
^ “Microsoft .NET and .NET Core - Microsoft Lifecycle”. learn.microsoft.com . Microsoft. 2024年12月14日時点のオリジナルよりアーカイブ。 2024年 12月22日 閲覧 。
^ Damkewala, Jamshed (2025年9月16日). 「.NET STSリリースのサポート期間は24か月間」. devblogs.microsoft.com . Microsoft . 2025年 9月17日 閲覧 。
^ 「.NET Core 1.0 を発表」 。.NET ブログ 。Microsoft。2016年6月27日。2022年1月4日時点のオリジナルよりアーカイブ 。 2019年 11月30日 閲覧。
^ 「.NET Core 1.1 を発表」 。.NET ブログ 。Microsoft。2016年11月16日。2022年5月25日時点のオリジナルよりアーカイブ 。 2019年 11月30日 閲覧。
^ 「.NET Core 3.0 を発表」 。.NET ブログ 。Microsoft。2019年9月23日。2020年6月1日時点のオリジナルよりアーカイブ 。 2019年 11月30日 閲覧。
^ “Announcement .NET Core 3.1”. .NET Blog . Microsoft. 2019年12月3日. 2022年6月26日時点のオリジナルよりアーカイブ 。 2019年 12月4日 閲覧。
^ ab ".NET 5.0 を発表". .NET Blog . Microsoft. 2020年11月10日. 2022年6月29日時点のオリジナルよりアーカイブ 。 2020年 11月11日 閲覧。
^ 「.NET 6 を発表 — 史上最速の .NET」. .Net Blog . 2021年11月8日. 2025年11月11日時点のオリジナルよりアーカイブ 。 2025年 11月11日 閲覧。
^ “.NET 7 is Available Today”. .Net Blog . 2022年11月8日. 2025年11月11日時点のオリジナルよりアーカイブ 。 2025年 11月11日 閲覧。
^ “Announcement .NET 8”. .Net Blog . 2023年11月14日. 2025年11月11日時点のオリジナルよりアーカイブ。 2025年 11月11日 閲覧 。
^ “Announcement .NET 9”. .Net Blog . 2024年11月12日. 2025年11月11日時点のオリジナルよりアーカイブ。 2025年 11月11日 閲覧 。
^ “Announcement .NET 10”. .Net Blog . 2025年11月11日. オリジナルより2025年11月11日時点のアーカイブ。 2025年 11月11日 閲覧 。
^ abc 「.NET ランタイムと SDK のバージョン管理方法 - .NET」 。learn.microsoft.com 。2025年6月5日時点のオリジナルよりアーカイブ。 2025年 6月5日 閲覧 。
^ ab Kang, M. 「.NET Core ランタイムは以前のリリースと下位互換性がありますか?」. Stack Overflow . ...NET Core ランタイムのアップデートは、1.x や 2.x といったメジャーバージョンの範囲内で互換性があります。[...] 「.NET Core 2.1」は .NET Core ランタイムのバージョン番号を指します。.NET Core ランタイムは、セマンティックバージョニングに準拠したメジャー/マイナー/パッチ方式のバージョン管理を採用しています。
^ 「ターゲティング、ランタイム、および AppHost パック」 。GitHub 。
^ 「.NET Frameworkターゲットパックの簡単な入手」 GitHub . 2021年4月17日時点のオリジナルよりアーカイブ 。 2025年 6月5日 閲覧。
^ “Alpine 3.10.0 リリース | Alpine Linux”. alpinelinux.org . 2020年 6月9日 閲覧 。
^ “dotnet/core”. GitHub . 2016年2月11日時点のオリジナルよりアーカイブ 。 2020年 6月9日 閲覧。
^ Clingan, John (2022年11月8日). 「.NET 7がRHELおよびOpenShiftで利用可能になりました」. Red Hat Developer . 2025年3月18日時点のオリジナルよりアーカイブ 。 2025年 4月26日 閲覧。
^ “.NET Frameworkはさまざまなプログラミング言語をサポートしています”. 2022年1月23日時点のオリジナルよりアーカイブ 。 2022年 4月21日 閲覧。
^ “Visual Basic in .NET Core 3.0 | Visual Basic Blog”. Blogs.msdn.microsoft.com. 2019年10月12日. 2018年11月19日時点のオリジナルよりアーカイブ。 2020年 1月18日 閲覧 。
^ “Visual Basic support plans for .NET 5.0 | Visual Basic Blog”. Blogs.msdn.microsoft.com. 2020年3月11日. 2022年1月5日時点のオリジナルよりアーカイブ 。 2020年 8月26日 閲覧。
^ abc Carter, Phillip; Knezevic, Zlatko (2016年4月). 「.NET Core – .NET が .NET Core でクロスプラットフォーム化」. MSDN Magazine . Microsoft . 2018年7月10日時点のオリジナルよりアーカイブ。 2018年 7月9日 閲覧 。
^ Lander, Rich (2018年5月7日). 「.NET Core 3とWindowsデスクトップアプリケーションのサポート」. MSDN . Microsoft . 2019年1月11日時点のオリジナルよりアーカイブ 。 2019年 1月14日 閲覧。
^ 「Mono/GTK-sharp」 。GitHub 。
^ “.NET Core 2.1、3.1、.NET 5.0 の更新プログラムが Microsoft Update に登場”. .NET Blog . 2020年12月3日. 2020年12月12日時点のオリジナルよりアーカイブ 。 2020年 12月15日 閲覧。
^ 「.NET Framework、.NET Core、.NET Standard、そして将来の.NETを理解する」 www.c-sharpcorner.com . 2021年 2月1日 閲覧 。
^ Landwerth, Immo (2015年2月3日). 「CoreCLRがオープンソース化」. .NET Framework ブログ . Microsoft . 2016年3月24日時点のオリジナルよりアーカイブ 。 2015年 2月27日 閲覧。
^ 「なぜRyuJITなのか?名前の由来は?」 nuWave eSolutions開発チームブログ 。2014年11月25日。2016年10月4日時点のオリジナルよりアーカイブ 。 2016年 6月21日 閲覧。
^ Ramel, David (2020年8月31日). 「Microsoft Survey: Developers Held Back by Lack of 'Native AOT' in .NET Core -」. Visual Studio Magazine . 2020年10月22日時点のオリジナルよりアーカイブ。 2021年 2月1日 閲覧 。
^ Landwerth, Immo (2014年12月4日). 「.NET Core の紹介」. .NET Framework ブログ . Microsoft . 2016年2月24日時点のオリジナルよりアーカイブ 。 2015年 2月27日 閲覧。
^ “.NET NativeとCoreRTの紹介”. GitHub . 2016年4月23日. 2020年6月1日時点のオリジナルよりアーカイブ 。 2018年 7月9日 閲覧。
^ “CLI入門”. GitHub . 2016年4月23日. 2020年6月1日時点のオリジナルよりアーカイブ 。 2018年 7月9日 閲覧。
^ 「.NET MAUI とは? - .NET MAUI」 。learn.microsoft.com . 2022年 11月8日 閲覧 。
^ Wang, Abel (2020年9月9日). What is the dotnet bot? (ポッドキャスト). Microsoft. イベントは4秒目に発生. 2023年3月8日時点のオリジナルよりアーカイブ。 2021年 3月9日 閲覧 。
さらに読む
アリフ・ハマド、クレシ・ハビブ (2020). 『 .NET 5の導入:最新のアーキテクチャ、移行のベストプラクティス、そして.NET 5の新機能を理解する』 Packt Publishing. ISBN 978-1800560567 。
メッツガー、ダスティン(2018年) .NET Core in Action . Manning Publications. ISBN 978-1617294273 。
マーク・J・プライス(2021年)『 C# 10と.NET 6:最新のクロスプラットフォーム開発 』Packt Publishing. ISBN 978-1801077361 。
Price, Mark J. (2020). C# 9 と .NET 5 – 最新のクロスプラットフォーム開発 . Packt Publishing. ISBN 978-1800568105 。
Price, Mark J. (2019). C# 8.0 と .NET Core 3.0 – 最新のクロスプラットフォーム開発 . Packt Publishing. ISBN 978-1788478120 。
Price, Mark J. (2017). C# 7.1 と .NET Core 2.0 – 最新のクロスプラットフォーム開発 . Packt Publishing. ISBN 978-1788398077 。
Price, Mark J. (2017). C# 7 と .NET Core: 最新のクロスプラットフォーム開発 . Packt Publishing. ISBN 978-1787129559 。
Price, Mark J. (2016). C# 6 と .NET Core 1.0: 最新のクロスプラットフォーム開発 . Packt Publishing. ISBN 978-1785285691 。
Zimarev, Alexey (2019). 『.NET Core によるドメイン駆動設計の実践』 . Packt Publishing. ISBN 978-1788834094 。
外部リンク
Wikibooksには、「.NET Development Foundation」 に関する書籍があります。
Wikiversityには.NET入門 に関する学習リソースがあります