記事内に広告が含まれています

.NETの全体像をわかりやすく解説【2025年版】

C#入門

本記事では、これからC#を学び始める方向けに、.NETの全体像についてわかりやすく解説します。

.NETとは?

.NET(ドットネット)とは、Microsoftが提供するアプリケーション開発プラットフォームです。

.NETを使うと、C#やVisual Basicなどのプログラミング言語で書かれたアプリケーションを開発・実行することができます。

よく .NET=C# と混同されやすいのですが、C#はあくまでプログラミング言語であり、.NETはその裏側で動く仕組みというイメージです。

.NETの種類と違い(.NET Framework / .NET Core / .NET)

「.NET」という言葉は、時代や文脈によって指すものが変わるため、混乱しやすい用語です。

ここでは、3つの.NET(.NET Framework / .NET Core / .NET)の違いをわかりやすく整理します。

.NET Frameworkとは?

.NET Frameworkは2002年に登場したWindows専用の.NETで、デスクトップアプリやWebアプリの開発に広く利用されてきました。(現在も多くの企業で使われています)

最新バージョンである .NET Framework 4.8.1 は、今後セキュリティ関連の修正のみが提供されるメンテナンスモードとなっており、新規開発には推奨されていません

.NET Coreとは?

.NET Coreは、2016年に登場したクロスプラットフォーム対応の.NETです。Windowsに加えて、macOSやLinuxでも動作する軽量なフレームワークとして注目を集めました。

その後、2020年に.NET Coreの進化版として「.NET 5」が登場し、現在は「.NET 6」「.NET 7」「.NET 8」…と毎年アップデートされています。

.NET Coreの最終バージョンは「3.1」 で、2022年12月に公式サポートが終了しているため、.NET Coreを使って新規開発を行うべきではありません

「ASP.NET Core」や「Entity Framework Core」のように、名前に「Core」が残っている技術もあります。これは旧世代の.NET Framework向けの技術(ASP.NETやEF6)と区別するためであり、現在も広く使われています。
紛らわしいですが、古い技術というわけではないので混同しないように注意しましょう。

統合後の.NET とは?(.NET 5以降)

2020年に登場した「.NET 5」からは、.NET Framework と .NET Core が統合され、名前もシンプルに「.NET」となりました。

バージョンは毎年更新されており、2025年4月時点での最新は「.NET 9」です。

「.NET 6」「.NET 8」などの偶数バージョンはLTS(Long Term Support・3年間の長期サポート版)となっており、多くの企業やプロジェクトで採用されています。

これから選ぶなら.NET 8以降

これから.NETやC#を学び始める方は、基本的に最新の安定版である .NET 8(LTS) 以降を使うことをおすすめします。

対応するC#のバージョンも自動的に最新(C# 12など)となり、機能を活用できます。

企業の場合はLTS版を選ぶのが無難ですが、個人用途であればCurrent版の.NET 9やPreview版の.NET 10などを選択するのもありです。
※Current版:最新版。奇数バージョンは標準サポート版(STS)で、約1年半のサポート期間となる
※Preview版:正式リリース前の開発版で、新機能を試す用途などで使えるバージョン

(参考).NETとC#のバージョン対応表【2025年時点】

.NET バージョンサポート期限C# バージョン主な新機能例
.NET Framework 4.8セキュリティ対応のみ(サポート継続)C# 7.3パターンマッチング、参照戻り値、タプル強化
.NET Core 3.1終了(2022年12月)C# 8.0null許容参照型、switch式、非同期ストリーム、defaultインターフェース実装
.NET 5終了(2022年5月)C# 9.0record型、init-onlyプロパティ、with式、トップレベルステートメント
.NET 6(LTS)終了(2024年11月12日)C# 10.0グローバルusing、ファイルスコープnamespace、record struct
.NET 7終了(2024年5月14日)C# 11.0raw文字列リテラル、Listパターン、required修飾子、UTF-8文字列リテラル
.NET 8(LTS)2026年11月10日までC# 12.0コレクション式、省略可能なラムダ引数、パラメータなしの new() コンストラクタ
.NET 9(Current)2026年5月12日までC# 13.0params 拡張、System.Threading.Lock、\e 文字、partial プロパティ
.NET 10(Preview)未定C# 14.0※正式なリリース情報待ち

.NETで開発できるアプリの種類

.NETを使えば、さまざまな種類のアプリを開発できます。

Webアプリケーション(ASP.NET Core)

高速かつセキュアなWebアプリを構築でき、Blazorなどの最新技術も利用可能です。企業の業務アプリやポータルサイトなどに幅広く使われています。

※Coreが付かない「ASP.NET」は.NET Framework向けの技術です。

デスクトップアプリ(WPF / WinForms / .NET MAUI)

Windows上で動く業務システムや管理ツールなど、リッチなUIを備えたアプリを作れます。

.NET MAUI(マウイ)を使えばクロスプラットフォームなデスクトップアプリも開発できます。

モバイルアプリ(.NET MAUI)

.NET MAUIを使えば、1つのコードでiOSとAndroidの両方に対応できるモバイルアプリの開発が可能です。

ゲーム

Unityというゲームエンジンでは、C#がスクリプト言語として使われています。
2D/3DゲームやVRアプリの開発にも活用されています。

AI・機械学習

Microsoftが提供するAzure OpenAI ServiceやML.NETなどの技術と組み合わせることで、AIを活用したアプリケーションの開発も可能です。

.NETの構成要素

.NETを支える主要な構成要素を簡単に紹介します。

ランタイム

アプリを動かすために必要な実行環境です。

内部には、プログラムを動かす心臓部である CLR(Common Language Runtime) が含まれており、C#コードの実行時コンパイルやメモリ管理なども担います。

ランタイムには、用途に応じて以下のような種類があります。

  • .NET ランタイム(ベースとなるランタイム)
  • .NET デスクトップランタイム(Windowsデスクトップアプリ用)
  • ASP.NET Core ランタイム(Webアプリ用)

.NET SDK

アプリを作成・ビルド・実行するための開発者向けツールです。
SDK は「開発用のツールセット」、ランタイムは「実行用の環境」という違いがあります。

ライブラリ

数値・文字列などの基本型や List や Dictionary といったコレクション、ファイルやネットワーク通信、日付操作など、アプリ開発に欠かせない機能が揃ったライブラリ群です。

フレームワーク

用途ごとに最適化された開発基盤です。
.NETでは用途に応じた複数のフレームワークが用意されています。

  • ASP.NET Core(Webアプリ・API)
  • WPF / WinForms(Windowsアプリ)
  • .NET MAUI(モバイル・デスクトップ両対応)

NuGet(パッケージ管理)

必要な外部のライブラリをプロジェクトに簡単に組み込めるパッケージ管理ツールです。

NuGetを使えば、パッケージ間の依存関係なども自動で管理してくれます。

.NETとC#の開発環境を構築するには(Visual Studio)

Visual Studio 2022と.NET 8を使って、C#の開発環境を構築する方法については以下の記事で説明しています。

これからC#によるプログラミングを始めたい方はぜひ参考にしてみてください。

【初心者向け】Visual StudioでC#開発環境を構築する方法

参考ドキュメント

.NET とは? オープンソースの開発者プラットフォームです。
.NET は、無料のクロスプラットフォームのオープンソース開発者プラットフォームです。.NET には、Web、モバイル、デスクトップ、ゲーム、IoT 用に構築する言語、エディター、ライブラリがあります。
.NET の概要 - .NET
.NET について説明します。 .NET は、さまざまな種類のアプリをビルドするための無料のオープンソース開発プラットフォームです。
.NET 用語集 - .NET
.NET のドキュメントで使われている用語からいくつか選択してその意味を説明します。
C#入門
hiranote

コメント

タイトルとURLをコピーしました