TLDR: 如果使用Core,它是功能的子集,因此可以跨平台运行。在Core上运行的任何内容都可以在Windows的完整4.6框架上运行。
.NET Framework v4.6 - 它是仅能在Windows上运行的完整框架。然而,由于这是完整的框架,这意味着您可以获得WCF、WPF和所有功能。您可以将其视为您今天可能正在进行的普通 .NET Windows 开发。它包括ASP.NET WebForms、MVC、Core和SignalR。如果您今天使用的是 .NET 4.5,则这是您下一个自然升级路径。
.NET Core - 它是一个不包括完整4.6框架中的所有内容的子集框架。然而,它旨在在Windows、Mac或Linux上进行跨平台运行。您确实会失去一些功能,例如WCF、WPF。但您仍将拥有ASP.NET Core(没有WebForms),但尚未支持SignalR。 SignalR支持预计会在稍后的版本中推出。这使用dotnet CLI(命令行界面)来编译应用程序,或者如果您在Windows上,则可以使用Visual Studio。
.NET Native -- .NET Core框架的本地编译。与在运行时进行正常的JIT编译不同,这将进行一次
AOT编译,可能会使用
C++后端编译器(或使用
LLILC的LLVM)对您的代码进行更好的优化。 当您这样做时,您将针对特定平台进行目标设置,例如“Linux 64位”。 其好处是启动时间更快,内存要求可能更小,希望运行时性能更好,并且仅发出一个单一的二进制文件(您无需在目标计算机上安装.NET Framework)。 然而,权衡是可移植性到其他平台 - 您将为Linux、MacOS、Windows、32位、64位等拥有单独的二进制文件。 这目前仅适用于Windows Store应用程序,但正在进行更多工作,以便它可以用于普通的.NET应用程序,包括ASP.NET应用程序。 目前不打算成为.NET Core 1.0版本的一部分。
ASP.NET Core——在.NET Core或完整框架上进行Web开发的新方式。它包括可自定义的HTTP管道、Kestrel web服务器和比以前的ASP.NET 4.x版本
性能更好的配置文件。跨平台兼容于完整框架和Core框架。它不包括WebForms或SignalR支持(
尚未)。它与ASP.NET 4不向后兼容,但如果您现在正在使用MVC/WebAPI,则MVC/WebAPI将来会非常接近,因为只会有一个
Controller
类。如果您想使用WebForms,则只能使用完整的4.6 Framework。
Entity Framework Core是新的ORM开发框架。它曾被称为EF7,是跨平台ORM框架,适用于完整的4.6堆栈和新的Core堆栈。它不支持向后兼容EF6,仅支持基于代码的模型。未来可能会有工具升级现有的EF6 .edmx文件以生成用于基于代码的EFCore实现的类。