1、.NET是什麼數據庫
有些開發者以爲.NET就是一個開發工具,或一個平臺、一個軟件開發環境。我以爲這些認識都不徹底,我的以爲,.NET應該是一個概念,是微軟的一個戰略與夢想。編程
微軟對於.NET的定義:Microsoft .NET 是 Microsoft XML Web services 平臺,XML Web services 容許應用程序經過 Internet 進行通信及共享數據,無論所採用的是哪一種操做系統、設備或編程語言,Microsoft .NET 平臺提供建立XML Web services 並將這些服務集成在一塊兒。 網絡
通俗理解爲:Microsoft .NET是微軟以Web services爲核心,爲信息、人、系統、各類設備提供無縫鏈接的一組軟件產品、技術或服務。咱們通常所說的.NET多指.NET Framework、Visual Studio.NET及開發出的應用程序,如ASP.NET、WinForm等。.NET Framework是一個開發和執行環境,容許不一樣的程序設計語言和庫無縫結合共同建立基於WINDOWS的應用程序,輕鬆的建立、管理、部署,並與其它網絡系統集成。框架
以下圖是.NET Framework的體系結構:編程語言
上圖能夠了解到.NET開發框架的幾個主要組成部分:工具
.NET Framework是一個與硬件無關的程序執行平臺,咱們使用的C、C++、Delphi語言開發的程序編譯後都是硬件能識別的機器代碼,而開發的.NET應用程序編譯後不是機器代碼,而是.NET Framework識別的中間語言代碼MSIL(Microsoft Intermediate Language),這些代碼不專用於任何一種操做系統,所以能夠跨語言。性能
程序運行時,首先由JIT(Just-In-Time)編譯器經過二次編譯成專用於當前操做系統和目標機器結構的本機代碼,而後經過託管的CLR環境和基類庫在計算機中執行,因此咱們開發的 .NET應用程序必需要安裝.NET Framework才能運行。開發工具
.NET應用程序運行的通過以下:優化
應用程序—(編譯)—>程序集(MSIL)—(JIT編譯)—>本機代碼操作系統
(1)使用.NET兼容語言(C#)開發應用程序,而後應用程序編譯爲中間語言(MSIL),存儲在程序集中;
(2)在執行代碼時,首先必須使用JIT編譯器將中間語言編譯成本機代碼。JIT編譯器會確切的知道程序運行在什麼類型的處理器上,能夠利用該處理器提供的特性或特定的機器指令來優化最後的可執行代碼;
(3)在託管的CLR環境下運行本機代碼。
使用比喻加深理解:
.NET就像中國移動整個的網絡和服務運營平臺,.NET Framework則是支持該平臺運行的那些基礎設施,開發的軟件就行運行在這個平臺下的各類服務,如語音通話、短信、彩信等。任何服務都須要移動網絡的支持,就像咱們開發的軟件須要.NET Framework的支持才能運行同樣。
2、.NET特性
.NET有以下幾大特性:
一、一次編譯,處處運行。
開發的應該程序編譯後是一種中間代碼(MSIL)的程序集,至於如何運行,是交給.NET Framework的JIT編譯器來完成中間代碼轉變成可識別的機器代碼。所以,只要.NET Framework支持的地方,應用程序就能夠運行。
二、編程語言匯成一家,不分你我。
如今編程語言多種多樣,VB、C#、J#、Delphi、JAVA等。.NET Framework中設計了一個通用語言系統CLS(Common Language System),定義了不少標準的數據類型,在編譯成中間語言MSIL時,各類高級語言的數據類型都被轉換成CLS系統中標準的數據類型。例如,VB.NET中的Integer數據類型被轉換成System.int32,C#中的int類型也被轉換成System.int32,這樣不一樣語言就能夠經過CLS相互轉換,就能相互調用不用語言編寫的方法和類庫。
三、內存自動管理,安心編程。
CLR最大的影響就是它的內存管理功能,爲應用程序提供了高性能的垃圾回收機制GC(Garbage Collector)。GC自動跟中應用程序操做的對象,對內容進行管理。
四、基類庫,使開發簡單。
類是面向對象設計語言的很是重要一部分,.NET Framework中的類庫提供了很是豐富的類,如字符串的處理、數據庫的鏈接、文件訪問等類,使開發變得簡單。