.Net Core 真能令微軟的.Net 跨平臺「蔓延」?

什麼是.Net編程

.Net 自己就是基於公共語言基礎架構(CLI)實現的平臺獨立的公共語言開發平臺,只是自2006年成爲規範以來的CLI,只有Windows本身支持罷了(mono除外)。微軟的.Net Framework 就是CLI的實現,稱之爲CLR(公共語言運行時)。其核心部分就是對CLI的虛擬執行系統(VES)基於Windows的實現。CLR其實就至關於Java的虛擬機運行時JRE。本質上VES僅爲編譯成公共中間語言(CIL)指令碼的應用提供虛擬執行環境。CIL以前被稱之爲MSIL,和原生彙編語言同樣,是開發者不友好的。因此基於CIL,微軟爲開發者提供了開發.Net 應用程序的高級編程語言,如C#、F#及VB.Net等。架構

C#開發的.Net App爲何不能跨平臺app

公共語言基礎架構(CLI)自己就是爲跨平臺設計的。但當初,微軟應該是出於Windows的壟斷考慮,根本就沒打算基於其餘的OS實現VES,因此C#的developer基本上都是Windows的developer了。C#的開發的應用系統基本上是基於Windows平臺運行。框架

.Net Core 是什麼,其如何實現跨平臺編程語言

其實只要基於Linux實現CLI,主要是其VES,C#開發的app就能夠在Linux上運行。 固然,因爲過去的.Net Framework提供了不少特定於Windows上的UI框架 如WPF,Windows Forms,基於這些框架的APP只能是理論上能夠在Linux上運行,但實際支持的代價會比較高,或許根本不現實。spa

因此, .Net Core誕生了。.Net Core就是對.Net Framework進行的裁剪 (把上述UI相關的framework去除),實現的一個相似於JRE同樣的CLR,而後同時實現多個OS的VES,從而實現了跨平臺。操作系統

微軟爲何須要.Net Core設計

微軟之因此願意這麼作,在某種程度上說,是被逼的,或者說是順應歷史潮流而爲之。在當下,風起」雲「涌的大環境下,得益於Azure,微軟順利從業已衰弱的Windows業務順利轉型到雲服務提供商。而做爲其所提供的雲服務模式之一PaaS,必須能提供客戶須要的OS,不單單是Windows。那麼它固然但願Azure上的不一樣的操做系統運行的都是使用本身提供的開發技術開發的應用咯。orm

.Net Core 前景會風光無限嗎ci

但是,經過虛擬執行環境實現開發的應用跨平臺運行,JAVA從其誕生之日起就是這麼作的。而時至今日,不少語言新秀爭奇鬥豔,被Oracle收購的JAVA都容顏漸老了。。。 C#真能依靠才實現了跨平臺的.Net Core煥發第二春?

參考

CLI Specification

http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-335.pdf

相關文章
相關標籤/搜索