三 .Net中的普通語言運行時(Common Language Runtime)指什么?它在.Net中處什么位置?
CLR(Common Language Runtime)普通語言運行時是整個.net framework構建的基礎,是實現.Net跨平臺,跨語言,代碼安全等核心特性的關鍵。它實際上是駐留在內存里的一段代理代碼,負責在整個.net整個執行期間的代碼管理工作,比較典型的有:內存管理,線程管理,遠程管理,代碼強制安全類型等。這些都可稱得上.net framework的生命線。實際上,普通語言運行時代理了一部分操作系統的管理功能。
.Net語言的互操作性是指遵循普通語言運行時(Common Language Runtime)規范的語言在對象繼承方面的支持,即用一種語言在.Net平臺下開發的類可在另一語言中重用,這通過一種稱作微軟中間語言MIL來實現,即語言編譯器首先將該語言編譯成微軟中間語言,再在相應平臺下編譯出本地代碼。這一切都是在普通語言運行時的規范下進行。
六 .Net支持的平臺有哪些?它的跨平臺實現得如何?
目前支持.Net的平臺有Windows 2000, NT4 SP6a, Windows Me和Windows 98。其聲稱支持的平臺有Unix,Linux等,目前有三個項目正在開發Linux下的.Net平臺:Ximian公司的Mono項目,DotGNU以及 Potable .NET.
.Net中的中間語言是指可以在普通語言運行時規范下,.執行時通過即時(Just In Time)編譯器轉化為本地代碼的,與CPU獨立的一族指令集合。它在.Net平臺中是實現語言互操作的一個核心環節,所有.Net平臺的語言都要先被編譯成中間語言(IL)。程序員也可以直接利用中間語言(IL)來編程,但不推薦那樣做,中間語言對理解.Net對象某些行為和程序的調試很有幫助
.Net的受管代碼(Managed Code)是指符合普通語言運行時(Common Language Runtime)規范,在內存中受運行時代碼代理進行內存管理,線程管理,遠程管理,代碼強制安全類型的代碼。非受管代碼指對內存,文件,數據庫等非受管資源進行操作的代碼,他們通常不受運行時代碼代理管理,是不安全的。對受管代碼的編程只需專注于編程的邏輯,對于內存等資源的管理交由普通語言運行時(Common Language Runtime)來負責,而對非受管代碼的編程,則要開發人員精心負責各種非受管資源的分配和回收工作。