官术网_书友最值得收藏!

1.2 .NET的體系結構

在.NET的整個結構中,包括虛擬執行系統、類型系統、元數據和公用語言規范4個組成部分。筆者建議初學者好好領會這一節的內容,雖然比較抽象難懂,但學習好它們對于掌握C#語言的本質有很大的幫助。在本節中,將分別對它們進行簡要地介紹。.NET的結構如圖1.4所示。

圖1.4 .NET的結構

1.2.1 虛擬執行系統VES

虛擬執行系統,簡稱VES。它是.NET環境中應用程序運行的基礎。其主要作用有:驅動.NET運行環境;元數據的生成和使用;公用語言規范的滿足條件檢查,以及應用程序執行過程中的內存管理等。可以把它想象成一臺虛擬的計算機,只不過這臺計算機的硬件是軟模擬的。

提示:在.NET環境中的虛擬執行系統和Java體系中的虛擬機基本是一個概念,但是兩者內部實現有所差異。Sun公司一直在宣揚Java語言是跨平臺的,其實.NET平臺也可以跨平臺,只要有能運行在Linux系統上的虛擬執行系統,那么用.NET中的公共語言編寫的程序同樣可以在Linux系統上運行。目前,Microsoft公司并沒有發行這種官方版本的虛擬執行系統,但是有一些開源組織已經寫出了能運行在Linux系統上的虛擬執行系統。

1.2.2 元數據

元數據是一種二進制信息,用來存儲公共語言環境中的可執行文件,在術語中稱為PE文件。當編寫一個程序時,通過利用類型聲明,所聲明的類型被介紹給時間運行環境,它用來管理代碼的執行,目的是使程序設計更為簡便。類型聲明在于PE可執行文件內部描述。元數據和可執行代碼并存的主要優勢是:

· 信息和類型自身放在一起,不會遍布很多地方。

· 有助于解決COM中的版本問題。

· 在相同的上下文中使用不同的版本庫,因為庫不僅被注冊表引用,也被包含在可執行代碼中的元數據引用。

1.2.3 通用語言規范CLS

通用語言規范,簡稱CLS。在.NET中,如果用C#語言寫了一個遵守CLS規則的類,其他編程語言如果也遵守該規則,那么用其他編程語言就可以調用C#語言編寫的類。CLS最大的好處就是帶來了語言的交互可操作性。

提示:在CLS規則下,用C#語言寫一個組件,在VB.NET語言中派生它,在C#中再次從VB.NET類派生它。只要所有的外部可訪問項遵守CLS規則,這都是允許的。

1.2.4 類型系統CTS

通用類型系統簡稱CTS。它提供豐富的類型系統,同時支持面向對象和過程編程語言。它的功能在于實現很多種近似但有點不兼容的類型互相兼容。例如整型數據,在VB.NET中,它的長度是16位,而在C++和C#語言中,它的長度是32位。這樣的情況在日期和時間及數據庫方面的數據類型中很常見。這種不兼容問題使應用程序的創建和維護更加復雜化,尤其是當在一個程序中使用了多種編程語言時。

另一個問題是,因為編程語言之間存在著一些差別,不能在一種語言中重用另一種語言創建的類型。除非采用COM用二進制標準接口部分地解決這個問題,因為編譯成的二進制數據都是相同的,計算機最終執行的數據也是二進制形式。有了VOS后,用C#寫的文件就可以在VB.NET里調用了。

主站蜘蛛池模板: 泗水县| 新和县| 新和县| 苍溪县| 大名县| 延吉市| 瑞昌市| 万年县| 玉溪市| 白玉县| 连州市| 安阳市| 江西省| 平原县| 鄱阳县| 太白县| 佛坪县| 鹤山市| 利川市| 松江区| 荃湾区| 师宗县| 建阳市| 抚顺市| 公主岭市| 镇巴县| 谷城县| 东丰县| 如东县| 华亭县| 永登县| 潼关县| 磴口县| 贵州省| 嘉荫县| 武鸣县| 佛学| 靖江市| 于都县| 辽中县| 乌鲁木齐县|