ASP.NET Core
Asp.NET Core 是一个开源和跨平台的框架,用于构建如Web应用、物联网(IoT)应用和移动后端应用等连接到互联网的基于云的现代应用程序。
Asp.NET Core 应用可运行于 .NET Core 和完整的 .NET Framework 上。可以在 Windows、Mac和Linux上跨平台的开发和运行Asp.NET Core。
Asp.NET Core 开源在 GitHub (https://github://.com/aspnet/home)上。
名词解释
RyuJIT
微软发展的新式即时编译器(Just-in-Time Compiler),用以替换现有的。NET Framework的JIT以及JIT64即时编译器。同时应用于.NET Framework4.6 以及.NET Core。
Core CLR
移植了.NET Framework 的公共语言运行库 CLR(common language runtime)的功能,包含核心程序库 mscorlib、JIT编译器、垃圾收集器(GC)以及其他运行微软中间语言MSIL( Microsoft Intermediate Language)所需要的运行期环境。
Core RT
以AOT(Ahead-of-time)编译方式为主的核心功能,在 .NET Core内成为 Core RT,在UWP(Universal Windows Platform,通用应用平台) 则被称为 .NET Native。
Core RT 会在构建时期(非运行期) 在编译时将 MSIL 转换成平台本地的机器码,其优点是引导时间短(JIT采用的是运行时期编译,使得引导时间拉长),并且内存用量少。1
LLILC(LLVM-based MSIL Compiler)
.NET Core 在非 Windows 平台的MSIL编译器,基于 ECMA-335(Common Language Infrastructure) 的标准将MSIL编译成原生码运行,适用于可运行LLVM的操作系统,如 Mac OSX 与 Linux 操作系统。LLILC同时支持JIT(内含RyuJIT的实现) 和 AOT的编译方式。
Roslyn
微软公司开源的 .NET 编译器。编译器支持 C# 和 Visual Basic 代码编译,并提供丰富的代码分析 API。同时应用于.NET Framework4.6 以及.NET Core。
.NET Compiler Platform(项目代码为Roslyn) 是将.NET 平台的编译架构标准化的平台,他可提供程序管理工具(如集成开发环境) 相当多的情报,用以发展有助于编写程序与管理程序结构所需要的功能,如类型信息、语法结构、参考链接、语义、编译器、自动化、错误回报等功能,只要是遵循CLI标准的编程语言,都可以利用.NET Compiler Platform实现编译器,让程序管理工具能够实现如语法提示、语法自动完成、关键字高亮等可视化功能。
ASP.NET Core优点
- 统一的方式用于构建Web UI 和 Web API。
- 集成现代的客户端开发框架和开发流程。
- 适用于云的基于环境的配置系统。
- 内置依赖项注入。
- 轻型高性能模块化HTTP请求管道。
- 能够在IIS上进行托管或在自己的进程中进行自托管。
- 可以在 .NET Core 上运行,支持真正的并行应用版本控制。
- 简化新式 Web 开发的工具。
- 能够在 Windows、macOS 和 Linux 上进行生成和运行。
- 开源和社区。
Core RT 在不同的平台会使用不同AOT技术:Windows上使用的时.NET Native;Mac OSX与 Linux 上使用的时LLILC。 ↩︎