.NET Frameworkとは何者なのか?
2019-04-27
azblob://2022/11/11/eyecatch/2019-04-27-new-hire-training-net-framework-000.png

初めまして、今年の4月1日に株式会社FIXERに入社した神田です。新入社員研修で.NET Frameworkについて触れる機会があったので、自らの理解の確認としてこの記事を書きます。

まず.NET Framework (正確にはMicrosoft.NET Framework )とはMicrosoft社が提供しているアプリケーション開発、実行環境のことです。これで.NET Frameworkが何者なのかということは分かったのですが、これだけでは味気がないので、より詳しく掘り下げていきます。

.NET Frameworkは大きく分けると2つの部品で構成されています。1つがクラスライブラリ、もう1つが共通言語ランタイム (Common Language Runtime : CLR )です。

クラスライブラリとは、汎用性の高いプログラムを再利用可能な形でまとめたものです。分かりやすくすると、あらかじめよく使用する機能をまとめておき、実際にプログラムを制作する際には簡単な表記で機能を呼び出すことがこのクラスライブラリの機能です。このおかげでプログラム開発の際に、全ての動作を一から書くような効率の悪い事態を回避できます。

共通言語ランタイムの機能について書く前に、.NET Frameworkに対応している言語について書きます。.NET FrameworkではC#やVBなどの言語が対応しています。しかしここで一つの疑問が生まれます。なぜ.NET Frameworkという一つの構造が複数の言語に対応しているのでしょうか。そもそもコンピューターは0と1による二進数表記しか理解することができません。しかし、人間では二進数を理解することは不可能に近いです。そのため二進数の表記を人間でも理解できる形にしたプログラミング言語を用いて私たちはプログラムを作成します。そして作成したプログラムを、コンパイラを用いてコンピューターの理解できる形 (機械語 )に翻訳してプログラムを実行させます。

しかし、.NET Frameworkではコンパイラを使っていきなり機械語に翻訳するのではなく、一度中間言語という形に翻訳します。C#で書かれたプログラムも、VBで書かれたプログラムも一度中間言語という共通の形に翻訳し、この中間言語を先に挙げた共通言語ランタイムが解釈しプログラムを実行します。これにより.NET Frameworkは複数の言語に対応しています。これらの機能により.NET Frameworkは汎用的なアプリケーションの開発、実行環境を提供しています。

以上のように.NET Frameworkの機能を簡単にまとめましたが、これらの知識がなくてもおそらく、プログラムの開発には今の段階では支障はないと私は考えています。しかし、軽自動車に軽油を給油する人がいるように、自分が使っているモノやシステムの仕組みを理解しないままでは、いつか問題を起こすかもしれないと考え、この記事を書きました。具体的な仕組みや機能がよく分かっていないモノはまだまだあるので今後も、調べて自分なりにまとめていきたいと考えています。