NET Framework簡介

ChenLee_1發表於2013-02-28

.NET Framework是微軟為開發應用程式而建立的一個平臺,利用它,你可以開發Windows桌面應用程式,Web應用程式,Web服務以及其它型別的應用程式。.NET Framework的設計方式確保它可以用於各種語言,包括C#,C++Visual Basic, JScript等。為此,還推出了這些語言的.NET版本,所有的這些語言都可以訪問.NET Framework,它們彼此之間還可以通訊。C#開發人員可以使用Visual Basic程式設計師寫的程式碼,反之亦然。

    .NET Framework主要包含一個非常大的程式碼庫,可以再客戶語言(C#)中通過物件導向程式設計技術來使用這些程式碼。這個庫分為不同的模組,這樣就可以根據希望得到的結果來選擇使用其中的各個部分。使用.NET Framework編寫應用程式,就是使用.NET程式碼庫來編寫程式碼(使用支援Framework的任何一種語言)

    為了能夠執行C#程式碼,必須將它們轉換為目標作業系統能夠理解的語言,即本機程式碼。這種轉換稱之為編譯程式碼,由編譯器執行。但是,在.NET Framework下,該過程包含兩個階段:CILJIT;在編譯使用.NET Framework庫的程式碼時,不是立即建立用於作業系統的本機程式碼,而是把程式碼編譯為通用中間語言(Common Intermediate Language, CIL)程式碼,這些程式碼並非專門用於任何一種作業系統,也並非專門用於C#。其他的.NET語言,例如VB.NET也可以在第一階段編譯為這種語言,開發C#應用程式時,這個編譯步驟由Visual Studio來完成。顯然,要執行應用程式,必須要完成更多的工作,這就是Just In Time(JIT)編譯器的任務,它把CIL編譯為專用於OS和目標機器結構的本機程式碼。這樣OS才能執行應用程式。這裡編譯器的名稱Just In Time反映了CIL程式碼僅在需要時才編譯的事實。C#只是用於.NET開發的一種語言,但它是最好的語言之一。它的優點是:它是唯一徹頭徹尾為.NET Framework設計的語言,是在一直到其它作業系統上的.NET版本中使用的主要語言。

    .NET Framework可以用來建立windows應用程式,web應用程式,web服務和其它各種型別的應用程式。另外注意,對於web應用程式,按照定義,它們是多平臺的應用程式,因為任何帶web瀏覽器的系統都可以訪問它們。最近新增了silverlight,這種類別還包含執行在客戶瀏覽器內部的應用程式,以及僅為HTML格式顯示web內容的應用程式。

.NET Framework主要包含一個非常大的程式碼庫,可以再客戶語言(如c#)中通過物件導向程式設計技術來使用這些程式碼。這些庫分為多個不同的模組,這樣就可以根據希望得到的結果來選擇使用其中的各個部分。除了提供這些庫之外,.NET Framework還包含.NET 公共語言執行庫(Common Language Runtime, CLR),它負責管理用.NET庫開發的所有應用程式的執行。

將程式碼編譯為CIL,再用JIT編譯器將它編譯為本機程式碼之後,CLR的任務並沒有全部完成,還需要管理正在執行的用.NET Framework編寫的程式碼(這個執行程式碼的階段通常稱為執行時runtime)。即CLR管理著應用程式,其方式是管理記憶體、處理安全性以及允許進行跨語言除錯等。相反,不受CLR控制執行的應用程式屬於非託管型別,某些語言如C++可以編寫這種型別的程式,例如,訪問作業系統的低階功能,但是在c#,只能編寫在託管環境下執行的程式碼。我們將使用CLR的託管功能,讓.NET自己與作業系統進行互動。

託管程式碼最重要的一個功能是垃圾回收(garbage collection),這種.NET 方法確保應用程式不再使用某些記憶體時,就會完全釋放這些記憶體。在.NET推出之前,這項工作注意由程式設計師負責,程式碼中的幾個簡單錯誤會把大塊記憶體分配到錯誤的地方,使這些記憶體神祕失蹤。這通常意味著計算機的速度逐漸減慢,最終導致系統崩潰。.NET垃圾回收會定期檢查計算機記憶體,從中刪除不再需要的內容。它不設定時間幀,可以一秒鐘進行上千次的檢查,也可能幾秒鐘才檢查一次,或者隨時進行檢查。


相關文章