C#/.NET 関連のメモ

hello
.NET Frameworkの準備
変数をブロック内でちがう意味に書き換えることはできない
アセンブリの署名

Terminology

Base Class Library
.NET Framework と一緒に配布される共通クラス.
CLR ホスト
.NET の executable には,C# コンパイラが作成する CLR ホストと呼ばれるルーチンが組み込まれる.CLR ホストは,CLR を起動してアプリケーションをロードさせる役割をもつ.CLR ホストがあるため,Java のように java foo.class のようなコマンド起動を行わなくてもよくなっている.
Global Assembly Cache
Stringクラスなど基本的なクラスは,マシン内の .NET Framework 専用の領域に保管されている.この .NET Framework 専用の領域のことを Global Assembly Cache と呼ぶ.Windows でのデフォルトは %systemdrive%\Windows\assembly.
managed code
.NET 用語では,.NET Framework で作成されたコードを managed code,マシン実行可能な機械語コードを unmanaged code と呼ぶ.

コマンド

cl.exe
ngen.exe Native Image Generator.通常.NETアセンブリはプラットフォーム中立な中間語(Intermediate Language.IL)でできており,実行時に Just-In-Time コンパイラが中間語をマシンが直接実行可能なネイティブ イメージ(Native Image)にコンパイルするようになっている..NET では実行前に JIT コンパイルを あらかじめやって Native Image をオブジェクトファイルに埋め込んでおく仕組みがある.この Native Image の生成・埋め込み処理をおこなうのが ngen.exe である.
Native Image の埋め込みをおこなうと実行時の JIT コンパイルが必要なくなるため,性能が向上する.また,埋め込まれている Native Image と実行環境が合致しない場合には,Native Image を無視してプラットフォーム中立の .NET アセンブリから JIT コンパイルを行うようになっているため,(ファイルサイズが大きくなる以外の)害もない.
sn.exe 署名の作成.

.NET 関連情報

.NET Framework 年表
Mono Visual Basic.Compiler

Links

[1] @IT: 連載 改訂版C#入門
[2] C#によるプログラミング入門
[3] Wikipedia: .NET Framework
[4] Hyperlinked ECMA C# Language Specification
[5] @IT: .NET Framework/Visual Studio 年表, 2007-09-07.
[6] Nobuhisa: Visual F# Express Edition の入手方法 (2010-09-05 初稿, 2012-10-27 Visual Studio Express 2012 で無償で使えるようになった件を追記)

はたいたかし
http://exlight.net/
Home > 開発 > C#/.NET