interlude

プログラミングや私的なこと

共通言語基板て何ですか

共通言語基板(Common Language Infrastructure)について

プログラマが書いたソースコードを、OS環境に依存することなく動かすための(マイクロソフトが定めた)仕様です。 .NET Frameworkという実行環境が必要です。
ちなみに自分はC#で開発する時は.NET Frameworkが必要くらいにしか思ってませんでした。

Javaと.NET

CやC++VBその他の高級言語で書かれたコードが、OS関係無く動く中間コードに生成されます。
どこかで聞いた話だなと思ったらJavaと似た仕組みなんですね。Javaもどんな環境でも動きますし。
それもそのはずで、Javaに対抗するためにマイクロソフトが後追いで作ったのが.NETなのだそうです。

スマホアプリの作成に興味がある人は、AndroidiOS両方に向けて作りたいけど、開発言語が違うし、どちらも習得するのに時間がかかる。だったらどちらのコードも生成してくれるツールがあればいいよね、ということでXamarin(ザマリン)

のようなクロスプラットフォーム(異なるOSでも同じように動くこと)開発環境に.NETの仕組みが使われてます。 Unityもそうですね。

メリットとデメリット

メリットは色々な環境で動くことですが、デメリットは実行速度が遅くなったりソースを解読されやすいという点があるようです。

参考:

雑把の仮想マシン(JVM, .NET, BEAM, スクリプト言語, LLVM) | プログラマーズ雑記帳