.net core是什么

  • 来源:网络
  • 更新日期:2020-11-10

摘要:.net core是适用于Windows、Linux和macOS的免费、开源托管的计算机软件框架,是微软开发的第一个官方版本,具有跨平台能力的应用程序开发框架。推荐:《编程视频》.net core .NET

.net core是适用于Windows、Linux和macOS的免费、开源托管的计算机软件框架,是微软开发的第一个官方版本,具有跨平台能力的应用程序开发框架。

推荐:《编程视频》

.net core

.NET Core是适用于 Windows、Linux 和 macOS 的免费、开源托管的计算机软件框架,是微软开发的第一个官方版本,具有跨平台能力的应用程序开发框架 (Application Framework),未来也将会支持 FreeBSD 与 Alpine 平台,也是微软在一开始发展时就开源的软件平台 ,它经常也会拿来和现有的开源 .NET 平台 Mono 比较。

由于 .NET Core 的开发目标是跨平台的 .NET 平台,因此 .NET Core 会包含 .NET Framework 的类库,但与 .NET Framework 不同的是 .NET Core 采用包化 (Packages) 的管理方式,应用程序只需要获取需要的组件即可,与 .NET Framework 打包式安装的作法截然不同,同时各包亦有独立的版本线 (Version line),不再硬性要求应用程序跟随主线版本。

.NET Core 项目的主要目标有:

支持或可以移转 (port) 到更多的操作系统平台与芯片架构 (也就是未来项目会跨出 x86 平台)。

具有引人注目的性能与高可靠度。

开发人员能快速与直接的获取 .NET Core 开发环境。

在直觉与具生产力的情况下建造应用程序,使用文件,示例与 NuGet 组件。

核心功能

.NET Core 是由许多项目所组成,除了基本的类库(Core FX) 之外,也包含采用 RyuJIT 编译的运行平台 Core CLR、编译器平台.NET Compiler Platform、采用 AOT 编译技术运行最优化的包 Core RT (.NET Core Runtime),以及跨平台的 MSIL 编译器 LLILC (LLVM-based MSIL Compiler) 等项目。

同时,微软也发展了一个建置技术文件的平台docfx, [3] 并运用于 .NET Core 的文件网站。

RyuJIT

RyuJIT 是微软发展的新式即地编译器 (Just-in-Time Compiler),用以替换现有的 .NET Framework 的 JIT 以及 JIT64 即地编译器,依据微软公布的测试报告,RyuJIT 的性能较前一代的 JIT 提升约 25%,并支持SIMD(Single Instruction, Multiple Data) 的技术。RyuJIT 同时应用于 .NET Framework 4.6 以及 .NET Core [4] 。

Core CLR

Core CLR 移植 .NET Framework 的 CLR 的功能,包含核心程序库 mscorlib、JIT 编译器、垃圾收集器 (GC) 以及其他运行 MSIL 所需要的运行期环境。

Core RT

Core RT 是以AOT (Ahead-of-time) 编译方式为主的核心功能,在 .NET Core 内称为 Core RT,在 UWP 则是称为 .NET Native。

Core RT 会在建造时期 (非运行期) 在编译时将 MSIL 转换成平台本地的机器码,以获取较短的引导时间 (JIT 采用的是运行时期编译,使得引导时间拉长),以及内存用量减少的优点。Core RT 会在不同的平台使用不同的 AOT 技术:

Windows 上使用的是 .NET Native。

macOS 与 Linux 上使用的是 LLILC (同时支持 JIT 和 AOT)。

LLILC

LLILC (LLVM-based MSILCompiler,英文发音为 "lilac") 是 .NET Core 在非 Windows 平台的 MSIL 编译器 [5] ,基于 ECMA-335 (Common Language Infrastructure) 的标准将 MSIL 编译成原生码运行,适用于可运行 LLVM 的操作系统,例如 macOS与 Linux 操作系统。

LLILC 同时支持 JIT (内含 RyuJIT 的实现) 以及 AOT (未来将开始支持) 的编译方式。

Roslyn

.NET Compiler Platform (项目代码为 Roslyn) 是将 .NET 平台的编译架构标准化的平台,它可提供程序管理工具 (如集成开发环境) 相当多的情报,用以发展有助于编写程序与管理程序结构所需要的功能,例如类型信息、语法结构、参考链接、语义、编译器、自动化、错误回报等等功能,只要是遵循 CLI 标准的编程语言,都可以利用 .NET Compiler Platform 实现出编译器,让程序管理工具能实现如语法提示、语法自动完成、关键字高亮等可视化能力。

.NET Compiler Platform 可同时支持 .NET Framework 4.6 以上版本,.NET Core 也原生支持。