.NET Core的介绍
ASP.NET5應(yīng)用程序默認(rèn)使用.net core來構(gòu)建應(yīng)用程序,.net core是一個(gè)小的,優(yōu)化過的.net運(yùn)行時(shí)應(yīng)用程序。
1. 什么是的.NET Core
.NET Core 5 是一由模塊化的運(yùn)行時(shí)和類庫組成的。目前它在WIndows上面已經(jīng)實(shí)現(xiàn)了,在Linx和OS x上面正在開發(fā)當(dāng)中。.NET core包括一系列的類庫,稱作"CoreFX", 和一個(gè)小的優(yōu)化過的運(yùn)行時(shí),叫"CoreCLR". .NET Core是完全開源的,你也可以去貢獻(xiàn)你自己的代碼進(jìn)去。
CoreCLR 運(yùn)行時(shí)和CoreFx類庫通過NuGet可以獲得, CoreFx可以根據(jù)具體的功能通過NuGet獲得相應(yīng)的dll, 如"System.[module]".
.NET Core一個(gè)關(guān)鍵的優(yōu)點(diǎn)就是它的輕便性。 你可以方便地打包部署你的應(yīng)用程序,而不需要像以前那樣安裝.NET 應(yīng)用程序在你的Windows上面。你可以用不同版本地CoreCLR開發(fā)應(yīng)用程序和升級應(yīng)用在同一臺(tái)機(jī)器上面,而不需要強(qiáng)制性地同時(shí)用一個(gè)新版本。
CoreFX集成了一個(gè)一個(gè)組件形式,每個(gè)dll依賴一組最小的在dll, 例如System.Collection只依賴System.Runtime, 而不需要System.Xml, CoreFx包含集合、console acess, diagnostics, IO, LINQ, JSON, XML, 和regular expression 支持, 另外一個(gè)優(yōu)點(diǎn)是COreFx同一個(gè)dll可以支持不同的平臺(tái)。
2. .NET Core背后的動(dòng)機(jī)
當(dāng).net首次出現(xiàn)的時(shí)候是在2002年,它是一個(gè)單一的框架,不久推出了.net compact框架,它是一個(gè)小型的應(yīng)用于移動(dòng)設(shè)備上面的。多年來,一些共同的功能在兩個(gè)不同的版本中重復(fù)的做著,以至于后來爭對不同的平臺(tái)有不同的.net版本。在linux, mac, android上面也有其它的.net版本,如mono和Xmarin. 對于每一個(gè)平臺(tái),他們各自都要開發(fā)運(yùn)行時(shí),框架和應(yīng)用模型。.net core的首要目標(biāo)之一就是提供一個(gè)單一的,模塊化的,跨平臺(tái).net版本工作在不同的平臺(tái)上面。.net core是完全開源的,Mono社區(qū)的人員可以從CoreFx的類庫中獲利。.NET Core不會(huì)取代Mono, 但是它允許Mono社區(qū)引用和共享它,并直接貢獻(xiàn)代碼到CoreFx當(dāng)中。
除了能應(yīng)用于不同的設(shè)備平臺(tái),服務(wù)來自一個(gè)方面的壓力就是減少整體的架構(gòu),最重要的就是把CoreFx分解成一個(gè)一個(gè)功能模塊,這樣應(yīng)用程序可以按需去拉取相應(yīng)的dll, 減少之間的依賴。這樣,反過來也能減少升級和打補(bǔ)丁的頻次,以減少對應(yīng)用程序的影響,一個(gè)小的應(yīng)用程序的部署它是獨(dú)立的,不同的版本的應(yīng)用可以部署在同一個(gè)服務(wù)器上。
3. 利用.NET Core創(chuàng)建應(yīng)用程序
?.NET Core可以創(chuàng)建不同的應(yīng)用程序,包括Web應(yīng)用程序,控制臺(tái)應(yīng)用程序和本地化的移動(dòng)應(yīng)用程序。DNX提供一個(gè)跨平臺(tái)運(yùn)行時(shí)宿主,你可以用用它創(chuàng)建基于.net core的應(yīng)用程序,它可以執(zhí)行在windows, mac和linx上面,并且它是Asp.net應(yīng)用程序運(yùn)行的基礎(chǔ)。運(yùn)行在DNX的應(yīng)用程序可以用.net框架或者.net core框架,DNX工程可以在一個(gè)工程當(dāng)中同配置這兩個(gè)構(gòu)架。所以它在project.json中存在兩個(gè)配置,如下 :
"frameworks":{
"dnx451":{},
"dnxcore50":{}
},
dnx451表示老的.net框架,dnxcore50表示.net core 5(5.0).你可以用預(yù)編譯指令#if去測試關(guān)聯(lián)了哪個(gè)框架:DNX451和DNXCORE50。例如:
#if DNX451
// utilize resource only available with .net framework
#endif
ASP.NET團(tuán)隊(duì)建議是兩個(gè)框架都配置,如果你只想用其中一個(gè),也可以把另一個(gè)刪除。 注意ASP.NET4.6和早期的版本必須用.NET框架。
4. .NET Core和NuGet
利用NuGet可以很敏捷地獲取每一個(gè)組成.net core的類庫。意思是應(yīng)用程序可以列出一個(gè)個(gè)包含系統(tǒng)、構(gòu)架、第三方框架的NuGet包的集合。另外,第三方的框架也能顯示它的依賴項(xiàng),這樣可以很容易地在開發(fā)或者創(chuàng)建的時(shí)候得到相應(yīng)的版本的包。
盡管CoreFx是由一個(gè)一個(gè)單獨(dú)的NuGet包組成,微軟也會(huì)定期地推出一個(gè)完全的包,當(dāng)然它的頻次會(huì)比較低。
?
轉(zhuǎn)載于:https://www.cnblogs.com/superkklot/p/5042426.html
總結(jié)
以上是生活随笔為你收集整理的.NET Core的介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NSDictionary 、 NSMut
- 下一篇: Newtonsoft.Json(Json