13
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

.NETってなに?基礎から学ぶ開発プラットフォーム

Last updated at Posted at 2025-05-20

はじめに

これまでの業務でC#を使用してきて「.NET」という単語は耳にしていましたが、「.NETって何?」「C#とどんな関係があるの?」とわからない部分が多かったため、調べてまとめてみました。
.NET初心者の方向けに分かりやすく解説していきます。

.NETってなに?

「.NET」とは、Microsoftが開発したアプリケーション開発プラットフォームです。Windowsだけでなく、複数のOSで動作するクロスプラットフォームの仕組みとなっています。

主な特徴とメリット

.NETの主な特徴とそのメリットを以下にまとめてみました。

クロスプラットフォーム対応

特徴:上でも触れましたが、現在の.NETはクロスプラットフォームに対応しており、Windowsだけでなく、Linux、macOS、Android、iOSでも動作します。

メリット:複数のプラットフォームをターゲットにした開発が可能になり、一度書いたコードを多くの環境で実行できます。


多言語対応

特徴:複数言語に対応しており、主にC#、F#、VB.NETなどを使っての開発が可能です。

メリット:複数の言語間での互換性を保てるため、言語間の移行がスムーズになります。


高パフォーマンス

特徴:JIT(Just-In-Time)コンパイルにより最適化され、高速に動作します。

メリット:サーバーサイドの処理や大量のデータを扱うようなパフォーマンスが重要なシステムで力を発揮します。


デメリット

.NETには多くのメリットがある反面、デメリットもあります。

ランタイム依存
.NETアプリケーションは、実行時に.NETランタイム(実行環境)が必要です。 ユーザーのPCに.NETランタイムがない場合は動作しないため、インストールする必要があります。

オープン性に劣る
.NETはオープンソースとして公開されていますが、開発の方向性などの決定権はMicrosoftにあります。
そのため、システムの変更や終了などのリスクがあり、「今後も安心して使えるか?」という長期的な技術選定への不安要素となり得ます。

何が作れるの?

.NETは複数のプログラミング言語に対応していることや、拡張性が高いことから様々な開発に使用されています。主な使用例は以下です。
・Webアプリケーション
・デスクトップアプリ
・モバイルアプリ
・クラウドアプリ
・ゲーム


.NETの進化

.NETについて調べていく中で、「".NET" と ".NET Framework" と ".NET Core"って何が違うの?」と疑問に思ったのでこちらで少し説明していきます。

①.NET Framework
まず初めに生まれたのが、「.NET Framework」です。
2002年にリリースされ、2022年までの間バージョンアップを重ねてきました。
こちらはWindows専用で、マルチプラットフォームには非対応となっています。

②.NET Core
「.NET Core」は2016年にリリースされました。
従来の「.NET Framework」とは別物として開発されており、ここでマルチプラットフォーム(Windows / Linux / macOS)への対応が可能になりました。

③.NET
2020年には既存の「.NET Framework」と「.NET Core」を統合し、「.NET 5」がリリースされました。以降は、「.NET + バージョン番号」でバージョンアップされています。
現在は.NET 9までリリースされています。

「.NET Core」は現行の「.NET」に統合されましたが、
「.NET Framework」は今も現役で動いています。
(将来的にはすべて「.NET」に移行される予定です。)

.NETの構成要素

.NETの構成要素は大きく分けて以下の4つです。

①共通言語仕様(CLS)
CLS(Common Language Specification)とは、.NETでの多言語での開発をサポートする言語間の共通ルールのことです。
.NETではC#、F#、VB.NETなどの複数言語での開発が可能なため、ルールを決めておくことによって各言語の互換性を保っています。

②共通言語ランタイム(CLR)
.NETはCLR(Common Language Runtime)上で動作します。
CLRとは、.NETアプリケーションを実行するための仮想マシンのことで、コードを中間言語にコンパイルしてから実行します。
一度共通の中間言語にコンパイルされることによって、プログラミング言語に依存しない開発や実行が可能になります。
 
③基本クラスライブラリ(BCL)
BCL(Base Class Library)とは、.NETアプリケーションで使える標準のライブラリ群のことで、DB操作、通信、ファイルI/O、文字列操作、通信などの標準部品として使用できる機能が準備されています。
 
④アプリケーションフレームワーク
.NETでは以下のように用途に応じて複数のアプリケーションフレームワークが用意されています。
フレームワーク 用途
ASP.NET Webサイト、WebAPI
Blazor Web UI
Windows Forms デスクトップアプリ
WPF(Windows Presentation Foundation) 高機能デスクトップアプリ
.NET MAUI(Multi-platform App UI) クロスプラットフォームアプリ
Console App バッチ処理、ツール作成
Unity ゲーム開発     

C#と.NETの関係性

.NETの概要をつかんだところで、C#と.NETの関係性について考えていきます。
これまで自分は「C#=.NET」という認識でいましたが、そうではありません。
上で説明してきたとおり、
C# = プログラミング言語であり、.NET = 開発プラットフォームです。

ただ、もともとC#はMicrosoftが.NET上で使うことを想定して作った言語であるため、
普通通り開発を行う場合は C#.NET(.NET上で動くC#プログラム) の環境になります。

概念として、C# = C#.NET ではないが、C#と言ったらほぼほぼC#.NETだと考えて問題ないと思われます。

最後に

ここまで、.NETの概要とC#との関係性について説明してきました。
.NETを学ぶことで、さまざまな開発分野に対応できるスキルを身につけることができ、クロスプラットフォーム対応のアプリ開発やクラウド技術、ゲーム開発など、多岐にわたる分野で生かすことができます。
この記事が自分と同じような「そもそも.NETってなに?」というような疑問を抱えている方の助けになれば幸いです!

参考文献

13
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?