自从我听说了ASP.NET Core和.NET Core之后,我就一直在想,如果您运行的是Windows服务器,比如Windows Server 2012,那么为什么要在.NET Core over .NET上开发运行的ASP.NET Core web application呢?我可以理解,如果您正在为诸如Ubuntu这样的跨平台开发,但是如果您运行的是Windows,那么为什么要开发.NET Core路由呢?
有什么好处(如果有的话)?我觉得我错过了什么吗?这是未来进行ASP.NET web开发和部署的理想方式吗?您什么时候想要使用完整的.NET框架来开发ASP.NET web,而不是.NET Core框架?
不是每个人都在为跨平台而开发?我一生都在为Windows服务器开发,从来不需要做任何跨平台的事情。我不认为我将开发任何跨平台使用.NET -我可能会使用其他东西,而不是.NET (如果我曾经走这条路)。
我希望有人能帮我澄清我的困惑?
发布于 2016-06-30 13:09:53
如果您运行的是ASP.NET,那么在完整的框架上运行Web非常好,事实上,这就是我选择的移植旧works应用程序的方法。如果您不需要跨平台支持,我认为完整框架上的ASP.NET核心是一个很好的选择。
.NET核心框架的功能不像完整框架那样完整,将遗留应用程序移植到它可能要困难得多。例如,它目前不支持图像处理。
但是,针对.NET核心框架的最大好处之一是它的跨平台,它的占用空间比整个框架小得多,并且可以通过应用程序的文件副本进行部署。这意味着目标服务器在部署前不需要安装.Net框架才能运行代码。在某些无法控制服务器级别安装的云托管环境中,这可能会有所帮助,并且在部署到IoT设备等受约束的环境时也会有所帮助。
尽管如此,我怀疑会有很多支持完整框架的ASP.NET核心应用程序。在某些方面,这是一个美丽的配对。一方面,您可以获得带有标记助手和所有这些优点的超级轻量级和快速的ASP.NET核心web平台,另一方面,您仍然可以在Windows上访问一个功能齐全的框架,这是许多.Net开发人员所熟悉和喜爱的。
发布于 2016-06-30 12:52:43
ASP.NET可以在完整的.NET框架上在.NET核心或上运行。.NET框架仅在Windows 上运行,并使用.NET框架的完全占用空间。
如果不需要以下内容,仍然可以使用完整的.NET框架:
.NET Core是与主机/操作系统无关的
您可以在不同的操作系统和主机上运行应用程序:
并可用于设备、云和嵌入式/物联网场景中。
模数
.NET核心是一个模块化的运行时和库实现,包括.NET框架的一个子集。
这意味着,您只能通过nuget安装所需的软件包。
Portability:
您可以在应用程序中打包和部署CoreCLR,从而消除应用程序对已安装的.NET版本(例如,Windows上的.NET框架)的依赖。您可以使用不同版本的同时托管多个应用程序,可以单独对它们进行升级,而不是强迫同时升级所有应用程序()。
减少足迹
通过对CoreFX库进行分解,并允许单个应用程序只提取它们所需的CoreFX部分(所谓的“按玩付费”模型),使用ASP.NET构建的基于服务器的应用程序可以最小化它们的依赖。
应用程序-models
.NET核心并不支持所有的.NET框架应用程序模型,部分原因是它们中的许多都是基于.NET技术构建的,比如WPF (构建在DirectX之上)。控制台和ASP.NET核心应用程序模型都受到.NET核心和.NET框架的支持。
API
.NET核心包含许多与.NET框架相同但却较少的API,并且使用不同的分解(程序集名称不同;在关键情况下类型形状不同)。这些差异目前通常需要对.NET核心的端口源进行更改。.NET核心实现了.NET标准库API,随着时间的推移,它将包含更多的.NET框架BCL。
子系统
.NET核心实现了.NET框架中子系统的子集,目的是建立一个更简单的实现和编程模型。例如,不支持代码访问安全性(CAS),而支持反射。
Patches/Updates:
这反过来减少了对框架的补丁和更新将影响这些应用程序的频率,因为只有对应用程序使用的单个CoreFX片段所做的更改才会影响应用程序。
部署:
应用程序的部署规模更小是一个并行的好处,如果在给定的服务器上并行部署许多应用程序,则会产生更大的差异。可以包括在您的应用程序或安装并行用户或机器的范围内。
开放资料来源:
.NET核心平台是开源的,使用麻省理工学院和Apache2许可证。文件是根据CC-BY许可的。.NET核心是一个.NET基金会项目。.NET核心是开源的,而.NET框架的只读子集是开源的.

https://stackoverflow.com/questions/38122969
复制相似问题