首頁 >後端開發 >C#.Net教程 >簡析.NET Core 以及與 .NET Framework的關係

簡析.NET Core 以及與 .NET Framework的關係

黄舟
黄舟原創
2017-02-22 10:17:061488瀏覽

至2002微軟公司推出.NET平台已近15年,在互聯網快速迭代的浪潮中,許多語言已被淘汰,同時也有更多新的語言湧現,但.Net 依然堅挺的站在系統開發平台的一線陣營中,並且隨著.NET Core 即將到來(2016年6月27日)的正式版,勢必迎來新一輪春天。

 一 .NET 的 Framework 們

  要理解.NET Core就有必要了解之前的.NET平台的眾多Framework們。 2002年微軟公司發布的第一個.NET框架——.NET Framework,不久後又發布了.NET Compact Framework 用於在較小的行動裝置(Windows mobile),而.NET Compact Framework 也含有一套類似.NET Framework 系統(Runtime, Framework,Application Model),它是一個複製精簡版的.NET Framework。在數年間微軟樂此不疲的推出了數個類似 .NET Framework的框架,以用於在不同的裝置和平台上運作。每個Framework都有類似的系統但又不完全相同的,這樣Framework越來越多,對開發者來說不一樣的設備即便功能相同也需要維護多套程式碼,增加了開發的複雜度。

.net 的框架

 二 .NET Core的到來

#  微軟對這些問題的重新思考和改進讓.NET Core橫空出世。

  .NET Core是一個開源的模組化的Framework,不管是開發web或行動裝置都在同一個Framework(.NET Core)下運行,而且.NET Core也可在不同的作業系統上運行,包括Windows、linux、MacOS,實現了跨平台跨裝置。

  更棒的是.NET Core 在發佈程式時不用事先安裝Framework而是透過Nuget下載,這樣在初次部署時就不用安裝一個複雜而龐大Framework,而是按需下載。這種基於Nuget的按需加載鑄就了.NET Core 跨平台。

簡析.NET Core 以及與 .NET Framework的關係

  .NET Core 構成系統如下:

  1. Runtime

  在.NET Core 中有實作兩種RunTime,NativeRuntime 和##  在.NET Core 有實作兩種RunTime,NativeRuntime 和CoreCLR。 NativeRuntime 將C# 或 VB.net 程式碼直接轉換為原生機器碼。而CoreCLR是一個開源的JIT運行時,會將程式碼編譯成中間語言(IL)在最終運行時再轉換機器碼。

  2. Unified BCL

  Base Classlibrary即基礎類,例如 FileSystem、Console、XML操作等。

  3. Windows Store AppModel & 簡析.NET Core 以及與 .NET Framework的關係 Core 1.0

  提供開發Windows系統的各種觸控螢幕裝置和簡析.NET Core 以及與 .NET Framework的關係程式的一組基礎函式庫。

 三.NET Core 與.NET 其他Framework的關係

簡析.NET Core 以及與 .NET Framework的關係

簡析.NET Core 以及與 .NET Framework的關係

  1 .NET Core & .NET Framework

  .NET Core & .NET Framework 都是NET Standard Library 的實現,一種是跨平台,而另一種是Windows下特有的,除實現NET Standard Library外.NET Core 和.NET Framework 都有各自特有的實現。 .NET Standard Library 是跨作業系統的關鍵所在,它定義了一組接口,而每個作業系統有各自的實現,.NET Core透過nuget可以動態下載當前作業系統的實現,從而實現跨作業系統(暨跨作業系統共享代碼)。

  .NET Core 更依賴Nuget,允許本機application在部署時動態下載所需的class library。而.NET Framework需要在系統中預先安裝。這樣.NET Core的部署比.NET Framework 更簡單快速同樣也更輕。

  2 .NET Core & 簡析.NET Core 以及與 .NET Framework的關係

簡析.NET Core 以及與 .NET Framework的關係

#  從上圖可以看到簡析.NET Core 以及與 .NET Framework的關係 Core 有兩種形態的存在:

  簡析.NET Core 以及與 .NET Framework的關係 Core Web Application(.NET Core)

#  依賴.NET Core的簡析.NET Core 以及與 .NET Framework的關係 只可以呼叫.NET Core的API,可以在多個作業系統上運行。 (可見下圖下半部的Reference Manager,在assemblies中沒有.NET Framework 中的函式庫)

  簡析.NET Core 以及與 .NET Framework的關係 Core Web Application(.NET Framework)

  依賴.NET Core & .NET Framework 的簡析.NET Core 以及與 .NET Framework的關係 可以呼叫.NET Core&.NET Framework的API ,只可以在Windows下運作。 (可見下圖上半部的Reference Manager,在assemblies中含有所有.NET Framework 中的函式庫)

簡析.NET Core 以及與 .NET Framework的關係##

  3 .NET Core & Mono

  Mono是.NET Framework的開源版本的實現,在某些特性上和.NET Core 很類似比如開源,跨操作系統。目前.NET CORE 會從Mono上吸取經驗,發展壯大最終可以更好的在除Windows以外的其他作業系統上運行。另外Mone支援的App Models比.NET Core還多(例如Windows Forms)。

 總結

  微軟CEO薩提亞·納德拉睿智的決定拋棄以PC為中心,擁抱各種設備和平台,成為一家軟體服務型企業。為了達成這種願景必須建構新的微軟生態鏈,囊括Windows,Linux,OS X及其他作業系統,涵蓋X86/ARM等處理器以及不同的裝置(包括PC,Phone,全像眼鏡及其他)。這些足見微軟的「野心」。隨著.NET Core 正式發布大戰略邁出堅實的一步,6月27日讓我們拭目以待吧。

以上就是簡析.NET Core 以及與 .NET Framework的關係的內容,更多相關內容請關注PHP中文網(www.php.cn)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn