.NET Core

核心功能

.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 的文件网站。

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。

Core CLR

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

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 (未来将开始支持) 的编译方式。

Roslyn

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

.NET Core v1.1 时期

对于微软来说，.NET Core 1.0 (以及早期开发时) 使用 project.json 来处理包管理与版本相依的问题，是因为很多任务具还没赶上(例如微软主力的建置工具MSBuild)，再加上project.json/xproj 架构并不兼容于以MSBuild 为主的工具链(Toolchain)，若是要修改成兼容project.json/xproj 架构的话可能会付出极大成本，因此在.NET Core 1.0 RC2 发布不久，官方就宣布要将project.json/xproj 系统移回到以MSBuild 为主的csproj ，例如下列csproj 的例子即可看到包参考的内容。
<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>

  <PropertyGroup>
    <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback>
  </PropertyGroup>

  <PropertyGroup>
    <UserSecretsId>aspnet-MyCoolWebApplication-e119bc96-38e9-44ab-b4d3-d54964ade9b1</UserSecretsId>
    <DockerComposeProjectPath>..\docker-compose.dcproj</DockerComposeProjectPath>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" />
    <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="1.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="1.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="1.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" PrivateAssets="All" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design" Version="1.1.1" PrivateAssets="All" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.0" PrivateAssets="All" />
    <PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="1.1.1" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.1" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="1.1.0" PrivateAssets="All" />
    <PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.0" />
  </ItemGroup>
  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
    <DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="1.0.0" />
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0" />
  </ItemGroup></Project>
由于 .NET Core 移回了MSBuild 架构，因此在Visual Studio 2017 的 .NET Core 工具内，已恢复可直接于IDE 的 GUI 接口中编修包参考的功能。

应用程序类型

.NET Core 基于跨平台能力，并没有将与GUI 高度相关的API 移植到.NET Core 内，因此像是Windows Forms 或是Windows Presentation Foundation (WPF) 并未移植到.NET Core。.NET Core 支持控制台应用程序(Console Application) 以及类库(Class Library) 类型的项目。
不过微软在其Universal Windows Platform (UWP) 开发平台使用了.NET Core，并且利用.NET Native 技术将其性能提升至十分接近原生码的速度。
ASP.NET Core 则以控制台应用程序驱动其托管环境Kestrel Server 以支持ASP.NET Core 程序的运行。

与其他平台的关系

.NET Core 经常会拿来与其他平台做模拟，尤其是它的源头.NET Framework 以及另一个相似性质的开源平台Mono。

.NET Framework

据微软的帮助，.NET Core 和 .NET Framework 是子集(Subset) 与超集(Superset) 的关系，.NET Core 将会实现出部分的.NET Framework 功能 (基本上是不含用户界面的部分)，例如 JIT (.NET Core 采用 RyuJIT)、垃圾收集器(GC) 以及类型(包含基本类型以及泛型类型等)。未来 .NET Framework 和 .NET Core 也将会是各自发展，但它们也会同时使用彼此的功能，例如 .NET Compiler Platform 与 RyuJIT 等技术。

Mono

Mono 是另一个已发展许久的.NET Framework 跨平台开源版本，基本上并不隶属微软官方，而是由社群的力量所主导，自成一个生态系统，也开发出了像Xamarin这样的跨平台.NET移动应用，.NET Core 与 Mono 未来会是合作的关系，Mono 仍会维持社群力量的维护与发展，而 .NET Core 则会以官方角度来进行发展，两边也会一起进行彼此功能上的增进。

与 ASP.NET Core 的关系

.NET Core 与 ASP.NET Core 的关系其实一开始并不是主从关系，ASP.NET Core 的开发初期(ASP.NET 5) .NET Core 还没有开始起跑，因此 ASP.NET Core 当时有自己的运行期与工具，一开始称为Project K，后来改为DNX (.NET Execution Environment)，DNX 本身就具有可独立运作的运行能力，不需要依赖.NET Core 运行，但是这样会变成.NET Core 和 ASP.NET Core 双头马车的现象，在 .NET Core 逐渐成熟之后，微软也决定要将这两个各自独立发展的产品线集成在一起，DNX 也将因改用.NET Core 运行期而终止开发，DNX 的功能将由.NET Core 以及旗下的.NET CLI 接替提供，集成后的版本将在1.0 RC2 时发布。