首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

走進 C# 學習之旅(二):.NET 核心架構概念總覽

     編輯:關於C語言

.NET 運行時核心組件

術語全名核心職責
CLRCommon Language Runtime載入/執行/管理代碼,提供記憶體管理、執行緒、安全性、例外處理等服務。
CTSCommon Type System定義所有語言共享的型別系統(值型別/參考型別),確保跨語言互通。
CLSCommon Language SpecificationCTS 子集,規範語言需支援的最小特性集,保證組件跨語言可用。
BCL / FCLBase / Framework Class Library預先建好的類別庫:IO、集合、網路、資料存取、UI、XML 等。
ILIntermediate Language編譯器產生的中間碼(CPU 無關),由 JIT 編譯為原生機器碼。
JITJust-In-Time Compiler執行時將 IL 編譯為機器碼,支援分層編譯、優化熱路徑。
Assembly組件部署/版本/安全性單元,包含 Manifest(中繼資料)與模組(IL 碼)。
GACGlobal Assembly Cache共享組件儲存區,解決 DLL Hell,支援並存多版本。
AppDomain應用程式域進程內的隔離邊界,提供卸載、安全性、配置獨立性。
GCGarbage Collector自動記憶體回收,代碼無需手動釋放 managed 物件。
Reflection反射運行時檢視/操作組件中繼資料(型別、方法、屬性、Attribute)。

代碼分類

  • Managed Code:在 CLR 管理下執行(C#, VB.NET, F# 等),享有 GC、安全性、互通性。
  • Unmanaged Code:直接編譯為機器碼(C/C++、Win32 API),需手動管理記憶體,透過 P/Invoke 互通。

組件部署模式

  • Private Assembly:複製至應用程式目錄(bin),僅供單一應用使用,無版本衝突。
  • Shared Assembly:強名稱簽名(sn -k)安裝至 GAC,供多應用共享,支援並存版本。

執行流程簡圖

Source Code (.cs)
      ↓ C# Compiler (csc.exe)
IL Code (.dll/.exe) + Metadata
      ↓ CLR Loader
CLR (JIT) → Native Machine Code
      ↓ Execution Engine
Process / AppDomain
      ↓ GC / ThreadPool / Security / Remoting ...
Managed Services

學習路線建議

  1. 掌握 C# 語法與 OOP 基礎。
  2. 深入理解 CLR 記憶體模型(堆疊/堆積、代、Finalize/Dispose、弱參考)。
  3. 熟練 泛型、委派、事件、LINQ、非同步/await。
  4. 實作 反射、Attribute、動態類型、Expression Tree 進階技巧。
  5. 研讀 ASP.NET Core、Entity Framework Core、gRPC、Docker、K8s 現代生態。

參考資源

  • 《CLR via C#》- Jeffrey Richter(必讀經典)。
  • Microsoft Docs: .NET Guide / C# Guide / API Reference。
  • Source: dotnet/runtime(核心庫原始碼)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved