【转】.NET框架简介
.NET 框架是由微軟開發的軟件開發平臺,其最主要的兩個組成部分是公共語言運行時 (CLR) 和框架類庫 (FCL),基礎類庫 (BCL)是框架類庫的一個子集。
.NET 框架簡介
下圖展示了 .NET 框架的主要結構。
?
其中,最下層的無疑就是操作系統了。
在 .NET 框架中,運行于底層的是公共語言運行時 (CLR),它是公共語言基礎設施 (CLI) 的一個實現。
在 CLR 之上,.NET 框架提供了全面、豐富的框架類庫 (FCL),這些類庫通過 CLR 調用操作系統的 API 實現各種功能。
框架類庫致力于讓開發者通過 .NET 平臺編寫各種各樣的應用程序,并調用微軟的其他產品。
這些類庫中,一些基礎的類組成基礎類庫(BCL)。
在類庫之上,.NET 框架的各種語言共同實現了公共語言規范(CLS)。
甲骨文公司的?Java?EE 是 .NET 平臺的競爭對手之一。.NET 框架的最新版本是 4.7.1 (截至2017年底)。
.NET 框架發展史
截至現在年,C#?和 .NET 平臺已經分別有了 18 和 16 年的歷史。
我們簡單回顧一下 .NET 平臺的發展歷史,它對于我們更好地了解 .NET 平臺有著重要的意義。
2002 年:.NET 1.0
在 .NET 出現之前,編寫 Windows 上可以運行的程序就要直接和 COM(微軟的一套軟件的接口標準)打交道。
.NET 框架試圖通過 CLR 代替 COM,并提供更多功能,令用戶可以更輕松的使用 Windows 的資源進行軟件開發。
2002 年微軟推出了 .NET Framework 1.0,相應地 Visual Studio 也升級到 7,稱為 Visual Studio 2002(上一個版本叫做 Visual Studio 6)。
該框架包括 C# 和 VB.NET( Visual Basic 的繼任者)。
同時,第一個版本的 ASP.NET 也在 .NET Framework 1.0 亮相,它作為網站的解決方案,一直是 .NET 框架最重要的產品線之一。
2005 年:.NET 2.0
2005 年 11 月,.NET Framework 2.0 發布。
該框架包括 C# 2,相比第一代添加了新的語法特性,其中最重要的就是泛型。
與此同時,CLR 的版本也相應更新為 2.0,Visual Studio 也升級到 Visual Studio 2005。
.NET Framework 2.0 中,Web 應用解決方案仍然是 ASP.NET WebForm,Windows Form 則作為 Windows下的應用解決方案。
數據庫連接為 ADO.NET(支持 SQL Server 和 Oracle), Web Service 則多種多樣,包括 .NET Remoting(TCP/HTTP/Pipeline communication)以及基礎的 Winsock 等。
2007 年:.NET 3.0,WCF+WPF+WF
.NET 3.0 是 .NET 框架最重大的一個更新,包括三大產品線:
- WCF:統一了過去 Web 服務混亂的形式,形成了一個統一的格式。
- WPF:作為前端用戶界面的解決方案,包括 Silverlight。
- WF:提供工作流的管理。
.NET 3.0 標志著 Windows 平臺開始全面轉向 .NET 時代(以后所有版本的 Windows 都預裝 .NET)。
而在這之前,只有服務器版本的 Windows 會預裝 .NET。
當時的 .NET 只能在 Windows 上運行,通過 CLR 調用 Windows 的 API,從而控制電腦硬件。.NET 3.0 的 CLR 和 .NET 2.0 相同。
2008 年:.NET 3.5,C# 3(LINQ)與 Entity Framework
.NET 3.5 集成了 C# 3,包括 C# 3 最重要的一個功能,即 LINQ。
相應地,為了支持 LINQ,此版本也加入了擴展方法、Lambda 表達式等新功能。
從 C# 3開始,C# 不再是 Java 的一個跟班小弟,某種意義上實現了對 Java 的超越(Java 直到 2014 年才在 Java 8 加入了 Lambda 表達式)。
另外,.NET 3.5 SP1 新增了 ADO.NET Entity Framework 取代 ADO.NET,作為 ORM 的解決方案。
在 ADO.NET Entity Framework 發表之前,NHibemate 是在 .NET Framework 上經常使用的 ORM 實現,顧名思義,它是?Hibernate?在 .NET Framework 上的實現。
相應地, Visual Studio 也升級到了 Visual Studio 2008。
2010 年:.NET 4.0 和 C# 4
.NET 4.0 集成了 C#4,主要增加了動態語言運行時(DLR)和任務并行庫(TPL),它包括 PLINQ、任務等,優化了多線程的編程方式。
CLR 由 2 直接升級到4。相應地,Visual Studio 也升級到了 Visual Studio 2010。
2012 年:.NET 4.5 和 C# 5
.NET 4.5 和 C#5 —起發布,.NET 4.5 框架的生態系統如下圖所示。
?
C# 5 基本上全部都是圍繞 async/await 關鍵字的。
相應地,Visual Studio 也升級到了 Visual Studio 2012。
在這之后,.NET 還有更高的版本 4.6 和 4.7,對應 Visual Studio 2015 和 Visual Studio 2017。
當然與此同時,各個 .NET 主要產品線也沒有閑著,例如 ASP.NET MVC 作為 ASP.NET 的一組類庫,于 2009 年初次發布,最新的版本是 ASP.NET MVC 5.2。
Web Service 也在不斷進化,從基于 XML 的 WCF 發展到 RESTful 的 WebAPI。
從圖中可以看到,最上面的應用層,ASP.NET 茁壯成長,繼續和?PHP/JSP?等技術分庭抗禮,用戶有 WebForm 和 MVC 可供選擇。
在 JS 方面,選擇了 jQuery 作為官方 JS。值得注意的是,MVC 中的 M 由 ADO.NET Entity Framework 負責。
Windows 下的解決方案仍然是WPF。中間的服務和數據層中,Web 服務擁抱 RESTful,數據庫方面也是由 ADO.NET Entity Framework 唱主角。
最下面當然就是基礎類庫(BCL)。在 C# 5 中,增加了對異步編程的簡化。
2016 年:.NET Core 的問世
.NET Core 是 .NET Framework 的新一代版本,也是另外一種實現方式,是微軟開發的第一個跨平臺的(Windows、Mac OSX、Linux)、開源的、模塊化的應用程序開發框架。
.NET Core 并不算是 .NET Framework 的繼任者,而更像是它的兄弟,所以,現在它們兩個各有自己的版本編號。
未來 .NET Framework 和 .NET Core 也將會是各自發展,但它們也會同時使用彼此的功能。
.NET Core 和 .NET Framework 共用一部分底層功能(例如一些 BCL),參見下圖。
?
與 .NET Framework 不同的是 ,.NET Core 采用組件化的管理方式,應用程序只需要通過 nuget 獲取需要的組件即可,與 .NET Framework 一上來就全部安裝的做法不同。
.NET Core 的應用層包括 UWP,用于開發 Windows 商店應用(部署到任何支持 Win10 的設備上,例如 XBox,智能手機甚至眼鏡),和 ASP.NET Core,用于開發網站應用(通常展現為微服務的形式)。
中間則是 CoreFX,它是 .NET Core 的基礎類庫,礎類庫 BCL。
底層則實現兩種運行時,Core RT 和 Core CLR。 Core RT 將 C# 或 VB.NET 代碼直接轉換為機器碼運行在宿主機器上,在不同的平臺上,會使用不同的技術(Windows 上使用的是 .NET Native,Mac OS 與 Linux 上使用的是LLILC)。
而 Core CLR 就是 .NET Framework CLR 的移植,它包括一個全新的 JIT 編譯器——RyuJIT,依據微軟的測試報告,該 JIT 的性能比舊版本提升了約25%。
由于 .NET Core 更佳的跨平臺表現,越來越多的網絡應用使用 ASP.NET Core 來編寫。
總結
以上是生活随笔為你收集整理的【转】.NET框架简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 优酷宣布会员涨价后 淘宝88VIP火了:
- 下一篇: 定义“北京时间” 中科院研发新一代光钟: