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