NET Framework簡介
.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下,該過程包含兩個階段:CIL和JIT;在編譯使用.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垃圾回收會定期檢查計算機記憶體,從中刪除不再需要的內容。它不設定時間幀,可以一秒鐘進行上千次的檢查,也可能幾秒鐘才檢查一次,或者隨時進行檢查。
相關文章
- framework——DisplayContent簡介Framework
- .NET6 平臺系列1 .NET發展史之.NET Framework簡介Framework
- Spring_Framework_簡介SpringFramework
- Qt 之 Graphics View Framework 簡介QTViewFramework
- 前端框架 Quasar-Framework 簡介前端框架Framework
- .NET 5簡介
- EfficientNet 簡介
- USENET簡介SENet
- Android Media Framework(一)OpenMAX 框架簡介AndroidFramework框架
- .NET Core/.NET之Stream簡介
- TDD in .NET Core - 簡介
- Telnet簡介(轉)
- .NET Framework 4 和 .NET Framework 4 Client ProfileFrameworkclient
- 2.5.1. Oracle net簡介Oracle
- ASP.NET 5 簡介ASP.NET
- USB NETWORK SERVER 簡介Server
- .net framework 5.0Framework
- .NET Framework 工具Framework
- .NET科普:.NET簡史、.NET Standard以及C#和.NET Framework之間的關係C#Framework
- .NET平臺系列5 .NET Core 簡介
- 【C# .Net Framework】在.Net Framework中使用gRPCC#FrameworkRPC
- Netflix Mantis簡介 - Baeldung
- DotNet Dictionary 實現簡介
- ASP.NET MVC – 安全簡介ASP.NETMVC
- ASP.NET MVC – 模型簡介ASP.NETMVC模型
- Kubernetes入門簡介
- .NET Framework 4和.NET Framework 4 Client Profile的區別Frameworkclient
- .NET Framework 原始碼Framework原始碼
- .NET Framework 類庫Framework
- NET Framework 類庫Framework
- .NET Framework版本解析Framework
- LeaRun.Framework━ .NET快速開發框架 ━ 工作流程元件介紹Framework框架元件
- 傲視Kubernetes(一):Kubernetes簡介
- ASP.NET MVC – 檢視簡介ASP.NETMVC
- LeNet簡介以及Caffe實現
- ASP.NET Razor – 標記簡介ASP.NET
- ASP.NET Web Pages – 物件簡介ASP.NETWeb物件
- ASP.NET Web Forms – 事件簡介ASP.NETWebORM事件