簡析.NET Core 以及與 .NET Framework的關(guān)系


至2002微軟公司推出.NET平臺已近15年,在互聯(lián)網(wǎng)快速迭代的浪潮中,許多語言已被淘汰,同時也有更多新的語言涌現(xiàn)瀑凝,但 .Net 依然堅(jiān)挺的站在系統(tǒng)開發(fā)平臺的一線陣營中洽议,并且隨著.NET Core 即將到來(2016年6月27日)的正式版瑟慈,勢必迎來新一輪春天。

一 .NET 的 Framework 們

要理解.NET Core就有必要了解之前的.NET平臺的眾多Framework們见转。2002年微軟公司發(fā)布的第一個.NET框架————.NET Framework水醋,不久后又發(fā)布了.NET Compact Framework 用于在較小的移動設(shè)備(Windows mobile)旗笔,而.NET Compact Framework 也含有一套 類似.NET Framework 體系(Runtime, Framework,Application Model),它是一個復(fù)制精簡版的 .NET Framework离例。在數(shù)年間微軟樂此不疲的推出了數(shù)個類似 .NET Framework的框架换团,以用于在不同的設(shè)備和平臺上運(yùn)行。每個Framework都有類似的體系但又不完全相同的宫蛆,這樣Framework越來越多,對開發(fā)者來說不一樣的設(shè)備即便功能相同也需要維護(hù)多套代碼的猛,增加了開發(fā)的復(fù)雜度耀盗。

.net 的框架

二 .NET Core的到來

微軟對這些問題的重新思考和改進(jìn)讓.NET Core橫空出世。
.NET Core是一個開源的模塊化的Framework卦尊,不管是開發(fā)web或移動設(shè)備都在同一個Framework(.NET Core)下運(yùn)行叛拷,而且 .NET Core也可在不同的操作系統(tǒng)上運(yùn)行,包括Windows岂却、linux忿薇、MacOS,實(shí)現(xiàn)了跨平臺跨設(shè)備躏哩。
更棒的是.NET Core 在發(fā)布程序時不用事先安裝Framework而是通過Nuget下載署浩,這樣在初次部署時就不用安裝一個復(fù)雜而龐大Framework,而是按需下載扫尺。這種基于Nuget的按需加載鑄就了.NET Core 跨平臺筋栋。

core

.NET Core 構(gòu)成體系如下:

1. Runtime

在.NET Core 中有實(shí)現(xiàn)兩種RunTime,NativeRuntime 和 CoreCLR正驻。NativeRuntime 將C# 或 VB.net 代碼直接轉(zhuǎn)換為原生機(jī)器碼弊攘。而CoreCLR是一個開源的JIT運(yùn)行時,會將代碼編譯成中間語言(IL)在最終運(yùn)行時再轉(zhuǎn)換機(jī)器碼姑曙。

2. Unified BCL

Base Classlibrary即基礎(chǔ)類襟交,例如 FileSystem、Console伤靠、XML操作等捣域。

3. Windows Store AppModel & ASP.NET Core 1.0

提供開發(fā)Windows系統(tǒng)的各種觸屏設(shè)備和ASP.NET程序的一組基礎(chǔ)庫。

三 .NET Core 與 .NET 其他Framework的關(guān)系

圖譜
version

1 .NET Core & .NET Framework

.NET Core & .NET Framework 都是 NET Standard Library 的實(shí)現(xiàn),一種是跨平臺竟宋,而另一種是Windows下特有的提完,除實(shí)現(xiàn)NET Standard Library外 .NET Core 和 .NET Framework 都有各自特有的實(shí)現(xiàn)。.NET Standard Library 是跨操作系統(tǒng)的關(guān)鍵所在丘侠,它定義了一組接口徒欣,而每個操作系統(tǒng)有各自的實(shí)現(xiàn),.NET Core通過nuget可以動態(tài)下載當(dāng)前操作系統(tǒng)的實(shí)現(xiàn)蜗字,從而實(shí)現(xiàn)跨操作系統(tǒng)(暨跨操作系統(tǒng)共享代碼)打肝。

.NET Core 更依賴于Nuget,允許本地application在部署時動態(tài)下載需要的class library。而.NET Framework需要在系統(tǒng)中預(yù)裝挪捕。這樣.NET Core的部署比.NET Framework 更簡單快速同樣也更輕便粗梭。

2 .NET Core & ASP.NET

ASP.NET

從上圖可以看到 ASP.NET Core 有兩種形態(tài)的存在:

ASP.NET Core Web Application(.NET Core)

依賴于.NET Core的ASP.NET 只可以調(diào)用.NET Core的API,可以在多個操作系統(tǒng)上運(yùn)行级零。(可見下圖下半部分的Reference Manager断医,在assemblies中沒有.NET Framework 中的庫)

ASP.NET Core Web Application(.NET Framework)

依賴于.NET Core & .NET Framework 的ASP.NET 可以調(diào)用.NET Core&.NET Framework的API ,只可以在Windows下運(yùn)行奏纪。(可見下圖上半部分的Reference Manager鉴嗤,在assemblies中含有所有.NET Framework 中的庫)

compare

3 .NET Core & Mono

Mono是.NET Framework的開源版本的實(shí)現(xiàn),在某些特性上和.NET Core 很類似比如開源序调,跨操作系統(tǒng)醉锅。目前.NET CORE 會從Mono上吸取經(jīng)驗(yàn),發(fā)展壯大最終可以更好的在除Windows外的其他操作系統(tǒng)上運(yùn)行发绢。另外Mone支持的App Models要比.NET Core多(例如Windows Forms)硬耍。

總結(jié)

微軟CEO薩提亞·納德拉睿智的決定拋棄以PC為中心,擁抱各種設(shè)備和平臺边酒,成為一家軟件服務(wù)型企業(yè)经柴。為了達(dá)成這種愿景必須構(gòu)建新的微軟生態(tài)鏈,囊括Windows,Linux,OS X及其他操作系統(tǒng)甚纲,覆蓋X86/ARM等處理器以及不同的設(shè)備(包括PC,Phone,全息眼鏡及其他)口锭。這些足見微軟的“野心”。隨著.NET Core 正式發(fā)布大戰(zhàn)略邁出堅(jiān)實(shí)的一步介杆,6月27日讓我們拭目以待吧鹃操。


參考內(nèi)容

【1】 https://blogs.msdn.microsoft.com/dotnet/2014/12/04/introducing-net-core/

【2】 https://www.linkedin.com/pulse/too-many-net-jargons-net-what-balaje-sankar

【3】 https://blogs.msdn.microsoft.com/dotnet/2016/02/10/porting-to-net-core/

【4】 https://dotnet.github.io/docs/concepts/codesharing.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市春哨,隨后出現(xiàn)的幾起案子荆隘,更是在濱河造成了極大的恐慌,老刑警劉巖赴背,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件椰拒,死亡現(xiàn)場離奇詭異晶渠,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)燃观,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門褒脯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人缆毁,你說我怎么就攤上這事番川。” “怎么了脊框?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵颁督,是天一觀的道長。 經(jīng)常有香客問我浇雹,道長沉御,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任昭灵,我火速辦了婚禮吠裆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘虎锚。我一直安慰自己硫痰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布窜护。 她就那樣靜靜地躺著,像睡著了一般非春。 火紅的嫁衣襯著肌膚如雪柱徙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天奇昙,我揣著相機(jī)與錄音护侮,去河邊找鬼。 笑死储耐,一個胖子當(dāng)著我的面吹牛羊初,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播什湘,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼长赞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了闽撤?” 一聲冷哼從身側(cè)響起得哆,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎哟旗,沒想到半個月后贩据,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體栋操,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年饱亮,在試婚紗的時候發(fā)現(xiàn)自己被綠了矾芙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡近上,死狀恐怖剔宪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情戈锻,我是刑警寧澤歼跟,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站格遭,受9級特大地震影響哈街,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拒迅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一骚秦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧璧微,春花似錦作箍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至屹电,卻和暖如春阶剑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背危号。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工牧愁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人外莲。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓猪半,卻偏偏與公主長得像,于是被迫代替她去往敵國和親偷线。 傳聞我的和親對象是個殘疾皇子磨确,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容

  • .net跨平臺前世今生 .NET core 1.0并不是對原有的.net平臺的升級,而是一次全新的重寫淋昭,這個開發(fā)過...
    never_say_never閱讀 10,595評論 1 6
  • 引言 最近, 微軟剛剛發(fā)布.net core 2.0, dotnet世界有了一個新的開始. 但是這里有一些疑問, ...
    滅蒙鳥閱讀 3,258評論 9 4
  • 1. NET Core 2.0 是您的最好選擇嗎翔忽?[#1-net-core-20-%E6%98%AF%E6%82%...
    xdpie閱讀 3,125評論 1 5
  • 由于昨晚對于練琴這件事米多極度反抗英融,我狠狠地批評了她盏檐。曾聽過沒有任何一個孩子喜歡練琴。這么逼到底是對還是錯驶悟,學(xué)了一...
    不起眼的多特閱讀 231評論 0 0
  • 素貓就是用單色線條來表現(xiàn)事物的一種繪畫方式胡野,是繪畫的基礎(chǔ)。更是造型藝術(shù)的基礎(chǔ)痕鳍。任何繪畫都是要先從打形開始硫豆,形體打不...
    一暖陽光閱讀 786評論 0 2