我读了一篇有关 Asp.net Core
的文章,它说
asp.net core不再基于system.web.dll
另外说:
它基于一组颗粒状且良好的Nuget软件包。这使您可以优化应用程序仅包括所需的Nuget软件包。
我对此进行了搜索,但我没有找到一个很好的解释,有人可以为我澄清一下吗?
asp.net核心删除了对System.Web
名称空间/汇编的依赖,因为它很旧(它的根源是旧的ASP中的根源,早在ASP.NET WebForms之前很久以来)并且非常非常紧密连接到IIS。继续支持System.Web
意味着,ASP.NET Core应用程序将无法在Linux或Mac上很好地移植。
因此,删除此依赖关系允许ASP.NET Core独立运行,这使得更容易在Linux或Mac下移植和主机。
很好,因为这允许它在任何地方托管。但这也意味着,旧的ASP.NET WebForms/MVC WebStacks的所有库和扩展名(取决于System.Web.*
)与ASP.NET Core不相容,并且需要重新设计以删除这些依赖项。
从长远来看,ASP.NET旧框架的所有主要库将在某个时候从头开始移植或编码,因为ASP.NET Core是未来。
因此,如果它们具有许多旧依赖项,则将其切换到生产应用程序的ASP.NET核心可能还要早一些。