.net框架基礎

1.什麼是CTS、CLS和CLR

答:公共語言運行庫(CLR--Common Language Runtime):是一個CLI的實現,包含了.NET運行引擎和符合CLI的類庫。

通用類型系統(CTS--Common Type System):包含在微軟公司提交的CLI規範中,定義了一個可以在CLR上運行的類型規範。

公共語言規範(CLS):是CTS的一個子集,定義了所有面向.NET的程序需要符合的最小規範集。 

CLI:公共語言基礎,是微軟公司向ECMA提交的一份語言和數據格式規範。

一種語言編寫的程序編譯能夠在CLR上運行,並不代表這種語言本身完全符合CTS的規範。例如C++語言,仍然保存了其不符合CTS規範的部分,並且在編譯時把這部分不符合CTS的代碼編譯成原始代碼而非中間代碼。

 

2.開發和運行.NET程序需要的最基本環境是什麼?

絕大多數程序員都在Visual Studio平臺上開發過.NET程序,但需注意的是IDE環境並不是必需的,任何一個文本編輯器都可以來編寫.NET代碼。

答:開發.NET程序需要一個文字編譯器和一個針對編碼語言的編譯器,對於C#來說,最常用的編譯器是csc.exe。而運行.NET程序,需要的是安裝.NET Framework組件。 

 

3.CLR技術和COM技術的比較

答:CLR和COM都定義了組件間交互的規範。COM並沒有定義如何描述組件間的依賴性,並且由於其嚴格的物理約定,造成了許多組件版本升級和控制的問題。CLR運用元數據和邏輯類型定義等機制,有效地解決了COM遺留的一些問題。並且,相較於COM模型,CLR更容易理解和學習(個人觀點)。

組件對象模型(COM--Common Object Mode):定義了所有組件之間的交互和組件接口的規範。可以理解爲一種編程模型和平臺技術。不同於傳統的DLL,COM技術實現了接口分離。每個標準的COM組件都會包含一個接口定義文件:IDL文件。而COM中所有的接口都繼承自IUnknown接口。對於類型,COM把其定義在一個類型庫文件:TLB文件中。這樣,一個最基礎的接口協議就形成了。

 

4.什麼是程序集和應用程序域?

答:程序集(Assembly)是一個由類型定義、數據文件和資源文件組成的邏輯集合。每個程序集都包含一個程序集清單,該清單通常被附加在某個文件頭上,也可以設置單獨建立一個文件來包含該清單。

應用程序域是CLR中提供代碼運行範圍、錯誤隔離和安全設置隔離的邏輯單元,功能類似於操作系統的進程。一個或多個應用程序域在一個操作系統的進程中運行。應用程序域的創建和銷燬所需的開銷,相對於操作系統進程較小。但和操作系統進程一樣,應用程序域之間的數據共享相當困難。

 

5..NET程序被編譯成什麼形式的代碼?

答:.NET程序在第一次編譯後,形成CLR頭、元數據和中間代碼。在實施運行或部署時,將經過第二次編譯,編譯的結果是在CLR中可執行的機器代碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章