共通型システム
NET Frameworkの前身であるCOMは、プログラミング言語の壁を超えてソフトウェアコンポーネントをバイナリレベルで共有・再利用することを可能にする技術だが、開発者にとって多くの頭痛の種をもたらした。GUIDやHRESULTの定義、早期バインディング (early binding) と遅延バインディング (late binding)、参照カウントの管理、実行環境のスレッディングモデル、そして上述の型の互換性などである。幸い、その状況から開発者を救うためにVisual BasicやATLといった開発環境やフレームワークが登場し、この複雑さを解消した。例えばVisual Basicでは、適切なGUIDを自動的に生成したり、アプリケーション内で使用されるCOMオブジェクトの参照カウントを自動的に管理したりすることができた。しかし、Visual BasicのCOMの実装には依然として不満な点が多かった。
これを解決するために、さまざまな言語が共通して持つ型のシステムが考え出された。これが.NET Frameworkの共通型システムである。