第一章 .NET之道
日期:20091117
1,.NET平台構造塊
.NET可以理解為一個運行庫環境和一個全面的基底類別庫。CLR,CTS,CLS 和base class library的關係如:
其中
CLR的主要作用是 為我們定位、載入和管理.NET類型,同時負責一些底層的工作,如記憶體管理,建立應用程式定義域、線程和物件內容邊界等。
CTS(Common Type System) 描述了運行庫所支援的所有可能的資料類型和編程結構,以及這些之間的互動。
CLS(Common Language Specification) 定義了一個所有.NET語言都支援的公用類型和編程結構的子集。
2,.NET 3.5新特性
- 支援強型別的查詢(LINQ)
- 支援匿名型別
- 使用擴充方法擴充既有類型功能的能力
- Lambda運算子(=>)
- 新的對象初始化文法
3,.NET程式集(DLL或EXE檔案)包含的是平台無關的IL和類型中繼資料。不包含特定於平台的指令,而各種編程語句的原始碼通過各自的編譯器產生統一的 包含IL和類型中繼資料的.NET二進位檔案。
中繼資料是許多.NET技術的支柱,這些技術包括WCF,XML Web服務/遠端層、反射、晚期綁定和對象序列化等。
4,CLR
.NET 程式執行流程
5,.NET的平台無關性
當微軟發布C#語言和.NET平台時,同時發布了一整套正式的文檔來說明C#和CIL語言的文法及語義、.NET程式集格式、核心.NET命名空間及假定的.NET運行時引擎的結構(虛擬執行系統,VES)。基於這些文檔,第三方組織就可以在各種作業系統和處理器上構建不同的.NET平台發行版。
開源.NET版本的兩個派別:
- Mono項目,一個CLI的開源版,針對各種版本Linux 以及Win32 和Mac Os X
- Portable.NET,目的是在儘可能多的作業系統上運行(Win32\AIX\BeOS\Mac OS X\Solaris\所有主要的Linux發行版本)
Mono項目新進展,見Novell加速非Windows環境.NET應用上市步伐