1.1 .NET Core 介绍

介绍

.NET Core 是.NET Framework的新一代版本,微软开发的第一个具有跨平台(Windows,OSX,Linux)能力的应用程序开发框架,未来会支持FreeBSD与Alpine平台,是微软在一开始发展时就开源的软件平台,也经常被拿来和现有的开源.NET 平台Mono比较。

由于.NET Core 的开发目标是跨平台的.NET平台,因此.NET Core 会包含.NET Framework的类库。与.NET Framework不同的是,.NET Core 采用包化(Packages)的管理方式,应用程序只需要获取需要的组件即可。与.NET Framework大包式安装的做法截然不同,并且各包也有独立的版本线,不再硬性要求应用程序跟随主线版本。
.NET Core 由许多项目锁组成,除了基本的类库(Core FX)外,还包含了采用RyuJIT编译的运行平台 Core CLR,编译器平台.NET Compiler Platform,采用AOT 编译技术运行最优化的包Core RT(.NET Core Runtime),以及跨平台的MSIL 编译器 LLILC(LLVM-Based MSIL Compiler)等项目。
同时,微软也发展了一个构建技术文件的平台docfx,并运用于.NET Core的文件网站。
1.RyuJIT
RyuJIT是微软发展的新式即地编译器(Just-in-Time Compiler),用以替换现有的.NET Framework的JIT以及JIT64即地编译器。根据微软公布的测试报告,RyuJIT的性能较前一代的JIT提升了约25%,并支持SIMD(Single Instruction,Multiple Data)技术。RyuJIT同时应用于.NET Framework4.6以及.NET Core。
2.Core CLR
Core CLR 移植了.NET Framewok的CLR的功能,包含核心程序库mscorlib,JIT编译器,垃圾回收器(GC)以及其他运行MSIL所需要的运行期环境。
3. Core RT
Core RT是以AOT(Ahead-of-time)编译方式为主的核心功能,在.NET Core 内称之为Core RT,在UWP(Universal Windows Platform,通用应用平台)则被称之为.NET Native。
Core RT会在构建时期(非运行期)在编译时将转换平台本地的机器码,优点是引导时间端(JIT采用的是运行时期编译,使得引导时间拉长),并且内存使用量少,Core RT在不同的平台会使用不用的AOT技术:
Windows 上使用的是.NET Native
Mac OSX与Linux 上使用的是LLILC(同时支持JIT 和AOT)。
4. LLILC
LLILC(LLVM-based MSIL Compiler,英文发音“lilac”)是.NET Core在非Windows 平台的MSIL编译器,基于ECMA-335(Common Language Infrastructure)的标准将MSIL编译成源码运行,适应于可运行LLVM的操作系统,例如Mac OSX 与Linux操作系统。 LLILC同时支持JIT(内含RyuJIT的实现)和AOT(未来将开始支持)的编译方式。
5. Roslyn
.NET Compiler Platform(项目代码为Roslyn)是将.NET 平台的编译架构标准化的平台,它提供程序管理工具(如集成开发环境)相当多的情报,用以发展有助于编写程序与管理程序结构所需要的功能,如类型信息,语法结构,参考链接,语义,编译器,自动化,错误回报等功能。只要是遵循CLI标准的编程语言,都可以利用.NET Compiler Platform实现编译器,让程序管理工具能够实现如语法提示,语法自动完成,关键字高亮等可视化功能。
.NET Compiler Platform 可同时支持.NET Framework4.6以上的版本,.NET Core 原生也支持。

说明:以上信息参考书籍名:《ASP.NET Core 跨平台开发从入门到实战》学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值