水曜日, 5月 21, 2025
ホームニューステックニュース.NETってなに?基礎から学ぶ開発プラットフォーム #C# - Qiita

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



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

これまでの業務でC#を使用してきて「.NET」という単語は耳にしていましたが、「.NETって何?」「C#とどんな関係があるの?」とわからない部分が多かったため、調べてまとめてみました。
.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の構成要素は大きく分けて以下の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 ゲーム開発     

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

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

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

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





Source link

Views: 2

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -

インモビ転職