术语''ASP.NET Core的含义不再基于System.Web.dll“”?

时间:2016-12-16 08:47:14

标签: asp.net-core

我读了关于DistinctUntilChanged的{​​{3}},它说

  

ASP.NET Core不再基于System.Web.dll

另外它说:

  

它基于一组精细且精心设计的NuGet包。这允许您优化您的应用程序,使其仅包含您需要的NuGet包。

我用Google搜索了一下,但我没有找到一个好的解释,任何人都可以为我澄清这个问题?

1 个答案:

答案 0 :(得分:3)

ASP.NET Core删除了对System.Web命名空间/程序集的依赖,因为它已经很老了(它早在ASP.NET Webforms出现之前就已经在旧的ASP中扎根)并且非常紧密地耦合到IIS 。继续支持System.Web意味着,ASP.NET Core应用程序无法在Linux或Mac上很好地移植。

因此,删除此依赖项允许ASP.NET Core在其自己和Web服务器上独立运行,这使得在linux或mac下更容易移植和托管。

这很好,因为这可以让它在任何地方托管。但这也意味着,旧的ASP.NET WebForms / MVC webstacks的所有库和扩展(依赖于System.Web.*)都与ASP.NET Core不兼容,需要重新设计才能删除这些依赖项。

从长远来看,ASP.NET遗留框架的所有主要库都将在某些时候从头开始移植或编码,因为ASP.NET Core是未来的。

因此,为生产应用程序切换到ASP.NET Core可能有点早,如果它们具有许多旧的依赖项,而这些依赖项尚未用于ASP.NET Core。