.Net Core3.1正式版是.net framework的新一代版本,是微軟開發(fā)的第一個(gè)官方版本,給需要的用戶帶來(lái)功能強(qiáng)大的應(yīng)用程序開發(fā)框架,軟件大氣簡(jiǎn)潔,功能非常豐富。支持多種不同的操作平臺(tái)更有諸多的應(yīng)用程序組建等你來(lái)使用。 .NET Core 采用包化 (Packages) 的管理方式,應(yīng)用程序只需要獲取需要的組件即可,與 .NET Framework 大包式安裝的作法截然不同,同時(shí)各包亦有獨(dú)立的版本線 (Version line),不再硬性要求應(yīng)用程序跟隨主線版本。
軟件特色
跨平臺(tái)
可以在Windows,macOS,Linux上運(yùn)行
靈活的部署機(jī)制
1、Portable applications(便攜式應(yīng)用)
這種部署機(jī)制和傳統(tǒng)的.NET Framework相似,只要目標(biāo)平臺(tái)上存在.NET Core Runtime即可。
2、Self-contained application(自宿主應(yīng)用)
顧名思義,這種部署機(jī)制將應(yīng)用和運(yùn)行時(shí)共同打包,即便目標(biāo)平臺(tái)上沒有安裝.NET Core Runtime也能正常使用
第二種方式和.NET Native也是不一樣的,仍然使用CoreCLR,而.NET Native使用CoreRT作為運(yùn)行時(shí),詳細(xì)信息請(qǐng)見dotnet/corert
開源
.NET Core從屬于.NET基金會(huì),由微軟進(jìn)行官方支持。使用MIT和Apache 2開源協(xié)議,文檔協(xié)議遵循CC-BY
.NET Core SDK包含
.NET Core 是由許多項(xiàng)目所組成,除了基本的類庫(kù)(Core FX) 之外,也包含采用 RyuJIT 編譯的運(yùn)行平臺(tái) Core CLR、編譯器平臺(tái).NET Compiler Platform、采用 AOT 編譯技術(shù)運(yùn)行最優(yōu)化的包 Core RT (.NET Core Runtime),以及跨平臺(tái)的 MSIL 編譯器 LLILC (LLVM-based MSIL Compiler) 等項(xiàng)目。
同時(shí),微軟也發(fā)展了一個(gè)建置技術(shù)文件的平臺(tái)docfx,并運(yùn)用于 .NET Core 的文件網(wǎng)站。
命令行工具
.NET程序所有的運(yùn)行腳本都可以用命令行工具執(zhí)行(cmd,bash)這里有幾個(gè)常見的donnet命令
兼容性
通過(guò).NET Standard Library與.NET Framework,Xamarin,Mono兼容
RyuJIT
RyuJIT 是微軟發(fā)展的新式即地編譯器 (Just-in-Time Compiler),用以替換現(xiàn)有的 .NET Framework 的 JIT 以及 JIT64 即地編譯器,依據(jù)微軟公布的測(cè)試報(bào)告,RyuJIT 的性能較前一代的 JIT 提升約 25%,并支持SIMD(Single Instruction, Multiple Data) 的技術(shù)。RyuJIT 同時(shí)應(yīng)用于 .NET Framework 4.6 以及 .NET Core。
Core CLR
Core CLR 移植 .NET Framework 的 CLR 的功能,包含核心程序庫(kù) mscorlib、JIT 編譯器、垃圾收集器 (GC) 以及其他運(yùn)行 MSIL 所需要的運(yùn)行期環(huán)境。
Core RT
Core RT 是以AOT (Ahead-of-time) 編譯方式為主的核心功能,在 .NET Core 內(nèi)稱為 Core RT,在 UWP 則是稱為 .NET Native。
Core RT 會(huì)在建造時(shí)期 (非運(yùn)行期) 在編譯時(shí)將 MSIL 轉(zhuǎn)換成平臺(tái)本地的機(jī)器碼,以獲取較短的引導(dǎo)時(shí)間 (JIT 采用的是運(yùn)行時(shí)期編譯,使得引導(dǎo)時(shí)間拉長(zhǎng)),以及內(nèi)存用量減少的優(yōu)點(diǎn)。Core RT 會(huì)在不同的平臺(tái)使用不同的 AOT 技術(shù):
Windows 上使用的是 .NET Native。
Mac OS 與 Linux 上使用的是 LLILC (同時(shí)支持 JIT 和 AOT)。
LLILC
LLILC (LLVM-based MSILCompiler,英文發(fā)音為 “l(fā)ilac”) 是 .NET Core 在非 Windows 平臺(tái)的 MSIL 編譯器 ,基于 ECMA-335 (Common Language Infrastructure) 的標(biāo)準(zhǔn)將 MSIL 編譯成原生碼運(yùn)行,適用于可運(yùn)行 LLVM 的操作系統(tǒng),例如 Mac OSX 與 Linux 操作系統(tǒng)。
LLILC 同時(shí)支持 JIT (內(nèi)含 RyuJIT 的實(shí)現(xiàn)) 以及 AOT (未來(lái)將開始支持) 的編譯方式。
Roslyn
.NET Compiler Platform (項(xiàng)目代碼為 Roslyn) 是將 .NET 平臺(tái)的編譯架構(gòu)標(biāo)準(zhǔn)化的平臺(tái),它可提供程序管理工具 (如集成開發(fā)環(huán)境) 相當(dāng)多的情報(bào),用以發(fā)展有助于編寫程序與管理程序結(jié)構(gòu)所需要的功能
例如類型信息、語(yǔ)法結(jié)構(gòu)、參考鏈接、語(yǔ)義、編譯器、自動(dòng)化、錯(cuò)誤回報(bào)等等功能,只要是遵循 CLI 標(biāo)準(zhǔn)的編程語(yǔ)言,都可以利用 .NET Compiler Platform 實(shí)現(xiàn)出編譯器,讓程序管理工具能實(shí)現(xiàn)如語(yǔ)法提示、語(yǔ)法自動(dòng)完成、關(guān)鍵字高亮等可視化能力。
.NET Compiler Platform 可同時(shí)支持 .NET Framework 4.6 以上版本,.NET Core 也原生支持。