什麼是.Net?它主要包括什麼?本文總結了一些.NET常見問題,雖然時間比較早,而.NET平台在過去幾年間發展很快,但文中介紹的概念基本上都還沒有變化。
本文總結了一些關於.NET的常見問題與解答。這些.NET常見問題對於想要了解.NET整體概念的讀者們會有一些幫助。
一什麼是.Net?它主要包括什麼?
.Net是為簡化在第三代因特網的高分散式環境下的應用程式開發,基於開放互聯網標準和協議之上,實現異質語言和平台高度交互性,而構建的新一代計算和通信平台。
.Net主要包括普通語言執行時期(Common Language Runtime)和.Net架構類別庫。
二.Net主要的優點有哪些?
.Net的主要優點有跨語言,跨平台,安全,以及對開放網際網路標準和協定的支援。
.Net支援多種語言的互通,即在一種語言下開發的元件,可在另一元件下透過物件導向的繼承而得以重複使用,目前.Net支援的語言達二十多種。
.Net透過將各語言先編譯成中間語言(IL),然後再執行時用即時(Just In Time)編譯器將之編譯成本地平台代碼來實現異構平台下對象的互操作,目前.Net支持的平台有Windows,Linux和Unix的支援正在開發中。
.Net透過普通語言執行時期(Common Language Runtime)來實現資源對象,類型的安全性。
.Net透過對HTTP,XML,SOAP,WSDL等Internet標準的強勁支援提供在異質網路環境下獲取遠端服務,連接遠端設備,交互遠端應用的程式介面.
三.Net中的普通語言運行時(Common Language Runtime)指什麼?它在.Net中處什麼位置?
CLR(Common Language Runtime)普通語言運行時是整個.net framework構建的基礎,是實現.Net跨平台,跨語言,代碼安全等核心特性的關鍵。它實際上是駐留在記憶體裡的一段代理程式碼,負責在整個.net整個執行期間的程式碼管理工作,比較典型的有:記憶體管理,執行緒管理,遠端管理,程式碼強制安全型別等。這些都可稱得上.net framework的生命線。實際上,普通語言運行時代理了一部分作業系統的管理功能。
四.Net構架類別庫是什麼?包括哪些內容?
.Netl構架類別庫是基於運行時面向對象的特性而建造的,和普通語言運行時緊密整合的一族可重用類別(Class)的集合。它大大簡化了軟體開發的難度,而且很容易與第三方組件無縫整合。
.Net架構類別庫主要包括對一下程式設計模型的支援:
1. 控制台應用程式。
2. 腳本和宿主應用程式。
3. Windows Forms應用程式(Windows 桌面GUI應用程式)。
4. ASP.Net應用程式。
5. Web Services應用程式。
6. Windows 服務程序
五.Net支援的開發語言有哪些?.Net語言的互通性是指什麼?
.Net聲稱支援市面上20多種語言,但目前只有微軟官方發布的C#,Visual Basic.Net,Managed C++,和Jsript,其他廠商聲稱正在開發中的支援工具有COBOL,Eiffel,Perl,Smalltalk,Python 。
.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與COM的關係是什麼?.Net是否意味著COM的終結?
COM定義了組件物件間通訊的二進位標準,.Net透過元件內建的型別系統提供了類似的機制,它為此提供了另一個途經。 .Net並不意味著COM的終結,但必將大幅減少開發人員對COM的依賴。 .Net 支援COM和.Net元件之間的互通性,實際上可透過Runtime Callable Wrapper(RCW)來實現在.Net中取得COM元件,透過COM Callable Wrapper(CCW)來實現在COM中取得.Net組件。
八.Net中的中間語言(IL)是什麼?它在.Net平台中起什麼作用?開發人員可以用中間語言(IL)編程嗎?
.Net中的中間語言是指可以在普通語言運行時規範下,.執行時通過即時(Just In Time)編譯器轉化為本地代碼的,與CPU獨立的一族指令集合。它在.Net平台中是實現語言互通的一個核心環節,所有.Net平台的語言都要先被編譯成中間語言(IL)。程式設計師也可以直接利用中間語言(IL)來編程,但不建議那樣做,中間語言對理解.Net對象某些行為和程序的調試很有幫助
九.Net中的自動垃圾收集是什麼?它為.Net平台下的程式設計帶來什麼變化?
.Net垃圾收集器負責整個.Net運行時受管代碼的記憶體分配與釋放任務。它透過一定的最佳化演算法來選擇收集的物件和時間。程式設計師只有在釋放大量受管資源時可以進行立即強制垃圾收集,在釋放非受管資源時採用終止化(Finalize)操作來處理,需要在程式運作中釋放的應該實作Dispose()方法,並明確調用。其它時間將資源的回收交由.Net垃圾收集起來做。
十.Net的受管(Managed)代碼與非受管(Unmanaged)代碼指什麼?他們的編碼有什麼區別?
.Net的受管代碼(Managed Code)是指符合普通語言運行時(Common Language Runtime)規範,在內存中受運行時代碼代理進行內存管理,線程管理,遠端管理,代碼強制安全類型的代碼。非受管代碼指對內存,文件,數據庫等非受管資源進行操作的代碼,他們通常不受運行時代碼代理管理,是不安全的。受管程式碼的程式設計只需專注於程式設計的邏輯,對於記憶體等資源的管理交由普通語言執行時間(Common Language Runtime)來負責,而對非受管程式碼的編程,則要開發人員精心負責各種非受管資源的分配和回收工作。
以上十條.NET常見問題,希望看了之後會增進你對.NET平台的認識。
本文出自CSDN博客,轉載請標示出處: http://blog.csdn.net/thy822/archive/2009/12/23/5061127.aspx
-