Unityと.NETとMono

(2017-03-05)

.NETとかよくわからなかったのでまとめてみた。

.NET Framework

.NET Framework - Wikipedia

Microsoftが開発したアプリケーション開発、実行環境。

各言語のコンパイラによって言語、環境によらない共通の中間言語(CIL, Common Intermediate Language)バイナリ(exeやdll)に変換し、 実行時に共通言語基盤(CLI, Common Language Infrastructure)の仮想実行システム(VES)が環境依存の機械語を動的に生成(JIT, Just in time)する。 CLIの仕様はECMAで標準化されていて、Microsoftが実装したCLIが共通言語ランタイム(CLR)。Windowsでしか動かない。

.NET Core

.NET Core - .NET Core による .NET のクロスプラットフォームへの移行

Microsoft/dotnet

オープンソースで、クロスプラットフォームに対応した.NET。CoreCLRはWindowsだけではなくMacやLinuxでも動く。 .NET Frameworkと共通のAPIもあるが、GUIまわりでどちらかにしかないAPIが存在する。

Mono

オープンソースで、クロスプラットフォームな.NET Framework互換ソフトウェア。C#のコンパイラとCLIが実装されている。 Unityはこれを使っているが、バージョンが古くて使えないライブラリがある。

参考

Unityと.NET