.net column
.NET開発者のためのブログメディア

.NET Frameworkとは?3つの構成要素や覚えておきたい用語も紹介

 
.NET Frameworkとは?3つの構成要素や覚えておきたい用語も紹介
SE
そもそも.NETFrameworkとはどういうものなのですか。
PM
共通言語ランタイム、基本クラスライブラリ、フレームワークの3つの要素で成り立っています。

.NET Frameworkとは?


.NET Frameworkとはマイクロソフトがリリースしている開発環境のことで、正式名称は「Microsoft .NET Framework」です。
主にWindowsのアプリケーションやWebサービスの開発に利用されており、Windows7以降のコンピュータにはデフォルトで搭載されています。

.NET Frameworkの歴史


.NET Frameworkはマイクロソフトの「大規模ネットワークサービス構築のためにあらゆる電子機器とインターネットを接続する」という構想を実現するために開発されたものです。
この構想実現のために「Visual Studio .NET」と呼ばれるツールが開発され、それをもとに現在の.NET Frameworkは生まれました。

.NET Frameworkの3つの構成要素


.NET Frameworkとは大きく分けて3つの要素によって構成されています。ここでは.NET Frameworkの3つの構成要素について紹介していきますので、ぜひ参考にしてみてください。

1:共通言語ランタイム(CLR:Common Language Runtime)

.NET Frameworkでは、様々な言語を使って開発をすることができます。そして、それを可能にしているのが、共通言語ランタイム(CTR)という機能です。
共通言語ランタイム(CTR)とは、いわば.NETアプリケーションを実行するためのエンジン機能のようなものと考えて良いでしょう。
.NET Frameworkでは、人が書いたプログラムを一度「共通中間言語(CIL)」に変換し、その中間言語を解釈してプログラムを実行します。その仕組みが共通言語ランタイムです。

2:基本クラスライブラリ(BCL:Base Class Library)

クラスライブラリは、汎用性の高いプログラムを使い回しできるように、クラスとしてまとめたものです。分かりやすい例を挙げるとすれば、文字列を扱う「Stringクラス」。簡単な記述で呼び出せるようになっており、実は基本クラスライブラリが提供している機能なのです。
他にも多数のクラスライブラリが用意されているため、初心者が気づかないところで、開発効率を格段に高めてくれています。

3:フレームワーク

クラスライブラリと異なり、処理の流れが実装されているものがフレームワークです。
.NET Framework自体がWebアプリケーションフレームワークとなっており、Webアプリケーションとして機能する枠組みを提供しています。

.NET Frameworkでできることとは?


.NET FrameworkはWindowsと相性が良いことから、Windowsで動作するシステムやWebサービスなどの開発で用いられることが多いです。特に業務システムの開発現場では.NET Frameworkが用いられているケースが少なくないでしょう。

覚えておきたい.NET Frameworkの基本用語


ここでは、.NET Frameworkで頻繁に使用される用語について、エンジニアが知っておくべきものを中心に紹介します。

◆アセンブリ
アプリケーション、または他のアセンブリから呼び出せるAPIコレクションを含む「.dll/.exe」ファイル。
インターフェース・クラス・構造体・列挙型・デリゲートなどの種類も含むことができます。

◆CLR/CoreCLR
CLRは、前述したとおり共通言語ランタイムのことです。OSや機種に依存しない共通中間言語をコンパイルして、プログラムを実行します。

CoreCLRとは、.NET CoreのCLRです。CoreCLRは次に解説するガベージコレクタ・JITコンパイラ・プリミティブな型/クラスライブラリから成り立っています。

◆ガベージ コレクタ
プログラムが動的に確保したメモリ領域を、自動的に開放する機能のことをガーベジコレクションと呼びます。そのガーベジコレクション行う主体をガベージコレクタと呼び、タスクやスレッドとして実装されるケースが多くなっています。

◆JIT/AOT
JIT・AOTのどちらもコンパイルの方式です。
JITは実行時コンパイラ(Just-In-Time)、AOTは事前コンパイラ(Ahead-Of-Time)と呼ばれています。
JITはアプリケーションの実行時にコンパイルを行い、AOTはアプリケーションが実行される前にコンパイルを行います。
いずれも共通中間言語(IL)を機械語(マシンコード)に変換するコンパイラです。

◆UWP
UWPは、ユニバーサルWindowsプラットフォームの略称です。Windows10から実装された、多様なデバイス上で動作するアプリケーションを、単一のフレームワークに統合する仕組みになっています。
また、ユニバーサルというだけあって、ほとんどのWindows10のデバイスで動作させることができます。タッチ操作対応も簡単です。

◆ランタイム
プログラムの実行環境です。OSもランタイム環境の1つですが、.NETランタイムとは異なります。.NETランタイムは下記のものが挙げられます。

・共通言語ランタイム(CLR)
・Core 共通言語ランタイム (CoreCLR)
・.NET Native (UWP の場合)
・Mono ランタイム
また、.NETのドキュメントでは「ランタイム」は「実装」の意味で使われることがあります。

◆スタック
スタックとは、「後出し先入れ(LIFO:Last In First Out)」と呼ばれるコレクションのことです。「積み重ね」とも呼ばれており、入れたものが入れた順番と逆に出てくるコレクションと言えば分かりやすいかもしれません。

アプリケーションの構築・実行に使われる、プログラミングテクノロジーのセットとして覚えておきましょう。

◆IL
「中間言語」のことです。
.NET Frameworkでは、プログラムの実行にあたり、様々な言語で書かれたプログラムを一度中間言語に翻訳します。中間言語に翻訳した後、機械語にコンパイルしてプログラムが実行されるのです。中間言語を挟むことで、特定の言語に縛られない開発が可能となっています。

.NET Framework以外の3つの「.NET」


一般的に「.NET」は.NET Frameworkを指すケースが多いですが、他にも「.NET」とつくものはあります。ここでは最後に、.NET Framework以外の3つの「.NET」についてご紹介します。

1:VB.NET

「VB.NET」は.NET Frameworkの環境下に置かれるようになった「Visual Basic」のことです。もともとVBは.NETに対応していませんでしたが、2002年に新しくバージョンアップして.NET Frameworkで動作するようになったVBのことをVB.NETと呼びます。

2:ASP.NET

「ASP.NET」の「ASP」とは「Active Server Pages」の略で、マイクロソフトが提供しているWebサービスやWebアプリケーション開発に特化した機能を提供するフレームワークです。

3:C#.NET

「C#.NET」とはC#を使用したコンパイラです。C#はマイクロソフトが開発したプログラミング言語で、.NET Framework上での使用を想定して設計されており、さまざまなプログラミング言語の中でも長い歴史を持ちます。

SE
Windowsでは.NET Frameworkは必須のアイテムですね。
PM
.NET Frameworkの構成要素や基本用語をしっかり学んで理解するようにしましょう。

.NET Frameworkとは何か理解を深めよう


ぜひ本記事でご紹介した.NET Frameworkの歴史や構成要素、.NET Frameworkでできることなどを参考に、.NET Frameworkについて理解を深めてみてはいかがでしょうか。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags