Windowsの仕組み(.NET Frameworkとは?)

Windowsの仕組み(.NET Frameworkとは?)

概要

Windowsアプリケーションの開発&実行ソフトウェア。
.NET Framework対応のアプリケーションは.NET FrameworkがインストールされているOS上で動作可能。
Windowsはなぜ動くのか
プログラム言語 他言語プログラムの呼び出し

マネージ/アン・マネージコード

net_framework1

マネージコードとは?

.NET Frameworkの管理下にあるアプリケーションのこと。
.NET Frameworkに含まれる「CLR」における、ガーベージコレクション等の機能により、
アプリケーションのセキュリティと安定性がはかれる。
更にアプリで問題があってもOSも守られるという利点もあり。

アン・マネージコードとは?

.NET Frameworkの管理下にないアプリケーションのこと。
.NET Framework以前のWindowsアプリケーション。
ActiveX、Win32API等を用いて作られている。

CLRとは?

実行エンジン
.NET Frameworkの命令をWin32/64命令へ変換、OSへ伝える役割を果たす。
(1)実行前:VB.NET、C#、C++等で書かれたソースを中間言語(MSIL)へコンパイルする。
(2)メタデータを生成する。
(3)実行時:MSILを各種CPUに合わせて機械語にコンパイル&実行する。
CLR管理下のプログラムは、
・メモリ管理(ガベージコレクション)
・型とアセンブリの管理
・スレッド管理
・例外処理
・セキュリティ
等の機能を利用できる。

フレームワーク

アプリケーションの雛形
それぞれのフレームワーク毎に処理の流れが決められている。
開発者は流れの中で必要とされる部分だけを作る。
.Net Frameworkでは、図にある通り、
・Winフォーム
・Webフォーム
・MVC
の内、1つを選択する。
他のフレームワークとの併用できない。

net_framework2

基本クラスライブラリとは?

CLRから利用可能な標準ライブラリ
言語仕様。型等。

クラスライブラリとは?

CLRから利用可能なライブラリ。
関数やオブジェクト。
追加や継承を繰り返し、どんどん拡張される。

コンパイル

・ソース(C#、C++、VB等)
↓ ←(言語コンパイラ)
・MSIL
・メタデータ
↓ ←JITコンパイラ
・機械語

MSIL

MicroSoftIntermediateLanguage
言語コンパイラによって作成される中間言語。

メタデータ

データのデータ
・クラス情報(型、メンバー、引数、戻り値)
・クラスから呼び出されるクラス
MSILを補足し、JITコンパイラが機械語に翻訳する際の再チェックに使用される。
これによりアプリケーションの安全性が高まる。

JITコンパイラ

JustInTimeコンパイラ
MSILを機械語にコンパイルする。
ブラウザ等ではインタプリタ方式のコンパイラでないと動作しない為に、これが用いられる。
デスクトップアプリ等でも同様の方式でコンパイルされる。
JITコンパイラによってコンパイルされた機械語の実行速度は、通常のコンパイラと同等。
ただしコンパイル完了までの時間は余分にかかる。メモリ消費量も大きい。
CLRによって各プラットフォームに応じたJITコンパイラが用意される。