我在几乎所有未来的.NET框架讨论中都会看到以下内容:
所有这些之间有什么区别?
我怎么知道何时使用合适的?
use*_*687 71
通过各种链接和视频后,我发现了一个有趣的图片:
从上面我们可以很容易地推断出以下内容:
一个有趣的观点是ASP.NET:
Tim*_* P. 49
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 Framework中的所有内容.但是,它旨在在Windows,Mac或Linux上运行跨平台.但确实会丢失一些功能,例如WCF,WPF.但是你仍然会拥有ASP.NET Core(没有WebForms),但还没有SignalR.SignalR支持旨在提供更高版本.这使用dotnet CLI(命令行界面)编译应用程序,或者如果您在Windows上,则可以使用Visual Studio.
.NET Native - .NET Core框架的本机编译.而不是在.exe的运行时进行正常的JIT编译,这将进行AOT编译,可以使用C++后端编译器(或使用LLILC的 LLVM)对代码进行更好的优化.).执行此操作时,您将瞄准特定平台,例如"Linux 64位".其优点是启动时间更短,内存需求可能更小,希望更好的运行时性能,并且只发出一个单独的二进制文件(您不需要在目标计算机上安装.NET Framework).然而,权衡是对其他平台的可移植性 - 您将拥有适用于Linux,MacOS,Windows,32位,64位等的单独二进制文件.这目前仅适用于Windows应用商店应用,但正在开展更多工作,因此它'我将使用普通的.NET应用程序,包括ASP.NET应用程序.目前还没有成为.NET Core 1.0版本的一部分.
ASP.NET Core - 在.NET Core或Full Framework上进行Web开发的新方法.它包括一个可自定义的HTTP管道,Kestrel Web服务器,以及比以前的ASP.NET 4.x版本更好的性能配置文件.这在整个框架和Core框架上都是跨平台兼容的.它不包括的WebForms,或SignalR支持(但).它不向后兼容ASP.NET 4,虽然如果你现在使用的是MVC/WebAPI,那么MVC/WebAPI前进应该相当接近,因为只有一个Controller
类.如果您想使用WebForms,那么您别无选择,只能坚持使用完整的4.6 Framework.
实体框架核心 - ORM开发的新框架.一旦被称为EF7,它就是跨平台的ORM框架,既适用于完整的4.6堆栈,也适用于新的Core堆栈.它不向后兼容EF6.它只支持代码优先模型.将来可能有工具可帮助升级现有的EF6 .edmx文件,以生成代码优先EFCore实现的类.
归档时间: |
|
查看次数: |
22600 次 |
最近记录: |