为什么在Windows Server上通过.NET在.NET Core上运行ASP.NET Core

Bre*_*ogt 9 .net asp.net asp.net-mvc .net-core asp.net-core

自从我听说ASP.NET Core.NET Core我一直想知道你为什么会想开发一个ASP.NET Core web application运行.NET Core.NET,如果你正在运行Windows服务器一样Windows Server 2012?我可以理解,如果您正在为其他东西开发跨平台,Ubuntu但如果您正在运行Windows服务器,那么您为什么要开发这.NET Core条路线呢?

有什么好处(如果有的话)?我觉得我在这里错过了一些东西?它是进行ASP.NETWeb开发和部署的理想方式吗?您何时想要使用完整.NETASP.NETWeb开发.NET Core框架而不是框架?

不是每个人都在为跨平台开发吗?我一直在为Windows服务器开发,并且从不需要跨平台做任何事情.我不认为我会用.NET开发任何跨平台的东西 - 我可能会使用除.NET之外的其他东西(如果我去过这条路线).

我希望有人可以帮助澄清我的困惑?

Leg*_*nds 10

.NET核心

ASP.NET可以在.NET Core 完整的.NET Framework上运行..NET Framework 在Windows上运行,并使用.NET框架的完整足迹.

如果您不需要以下内容,您仍然可以使用完整的.NET框架:

.NET Core与主机/操作系统无关

您可以在不同的操作系统和主机上运行您的应用程序:

  • Linux,Windows,MAC
  • IIS,控制台应用,..

并可用于设备,云和嵌入式/物联网场景.

模块化

.NET Core是一个模块化的运行时和库实现,包括.NET Framework的一个子集.

意思是,您可以通过nuget只安装所需的包.

可移植性:

您可以在应用程序中打包和部署CoreCLR,从而消除应用程序对已安装的.NET版本的依赖性(例如Windows上的.NET Framework).您可以使用不同版本的CoreCLR并排托管多个应用程序,并单独升级它们,而不是强制同时升级所有应用程序.

减少足迹

通过考虑CoreFX库并允许单个应用程序仅引入它们所需的CoreFX部分(所谓的"付费播放"模型),使用ASP.NET构建的基于服务器的应用程序可以最小化它们的依赖性.

应用程序的模型

.NET Core不支持所有.NET Framework应用程序模型,部分原因是它们中的许多都是基于Windows技术构建的,例如WPF(构建在DirectX之上)..NET Core和.NET Framework都支持控制台和ASP.NET Core应用程序模型.

蜜蜂

.NET Core包含许多与.NET Framework相同但更少的API,并且具有不同的因子(程序集名称不同;类型形状在关键情况下不同).目前,这些差异通常需要将端口源更改为.NET Core..NET Core实现了.NET标准库API,随着时间的推移,它将逐渐包含更多的.NET Framework BCL API.

子系统

.NET Core实现了.NET Framework中子系统的子集,其目标是实现更简单的编程模型.例如,不支持代码访问安全性(CAS),同时支持反射.

补丁/升级:

反过来,这降低了框架的修补程序和更新将影响这些应用程序的频率,因为只有对应用程序利用的各个CoreFX进行的更改才会影响应用程序.

部署:

应用程序的较小部署大小是一个附带好处,如果在给定服务器上并行部署许多应用程序,则会产生更大的差异.可以包含在您的应用程序中,也可以安装在并行用户或机器范围内.

开源:

.NET Core平台是开源的,使用MIT和Apache 2许可证.文档根据CC-BY许可..NET Core是一个.NET Foundation项目..NET Core是开源的,而.NET Framework的只读子集是开源的.

在此输入图像描述


Ron*_*n C 4

如果您在 Windows 上运行,则在完整框架上运行 ASP.NET Core 效果非常好,事实上,这就是我选择用于移植旧 Web 窗体应用程序的方法。如果你不需要跨平台支持,我认为完整框架上的 ASP.NET Core 是一个不错的选择。

.NET Core 框架的功能并不像完整框架那么齐全,并且将遗留应用程序移植到其中可能要困难得多。例如,它当前不支持图像处理。

但是,除了跨平台这一事实之外,针对 .NET Core 框架的一大好处是它的占用空间比完整框架小得多,并且可以通过应用程序的文件复制进行部署。这意味着目标服务器不需要在部署之前安装 .Net 框架即可运行代码。这在某些您无法控制服务器级别安装的云托管情况下非常有用,并且在部署到物联网设备等受限环境时也很有帮助。

也就是说,我怀疑将会有很多 ASP.NET Core 应用程序编写来支持完整框架。从某些方面来说,这是一对美妙的组合。一方面,您可以获得超轻量且快速的 ASP.NET Core Web 平台,其中包含标记帮助程序和所有这些优点,另一方面,您仍然可以在 Windows 上访问许多 .Net 开发人员了解和喜爱的全功能框架。