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