.NET 架構組成
- VOS (Virtual Object System):虛擬物件系統 / 通用型別系統 (CTS)
- Metadata:中繼資料
- CLS:共同語言規範
- VES (Virtual Execution System):虛擬執行系統 / CLR 實作
VOS / CTS:跨語言型別統一
- 解決不同語言型別系統不相容問題(如 VB 16 位整數 vs SQL 32 位整數)。
- 支援程序性與物件導向語言。
- 提供豐富型別系統容納各語言特性。
- 每個物件具唯一身分識別。
中繼資料:自我描述的程式碼
- 編譯時自動產生,內嵌於 PE 檔。
- 描述型別定義、成員、參考、版本、安全屬性等。
- CLR 透過中繼資料:定位/載入型別、JIT 編譯、建立實例、強制型別安全。
- 解決版本衝突:型別描述與程式碼綁定,不依賴登錄表。
CLS:互通性契約
- 定義語言特徵子集,確保跨語言存取。
- 僅約束外部可見項目。
- 詳細規則見 CLS 專章。
VES:執行引擎核心功能
| 功能 | 說明 |
| 載入 IL 碼 | 從組件讀取 MSIL |
| JIT 編譯 | IL → 原生碼 |
| 載入中繼資料 | 型別資訊、版本、安全性 |
| 程式碼管理 | GC、例外處理、執行緒、AppDomain |
| 偵錯/分析服務 | Profiling API、Debugging API |
| 執行緒與環境管理 | 同步、鎖定、ThreadPool |
關係圖譜
原始碼 → 編譯器 → IL + Metadata → [VES] → 執行
↑ ↑
CLS 規範 VOS/CTS 型別系統