代码之家  ›  专栏  ›  技术社区  ›  xr280xr

我迷路了。ASP.NET MVC 5发生了什么?

  •  23
  • xr280xr  · 技术社区  · 7 年前

    我一直在埋头于各种项目,显然微软一直在忙着做一些重大的改变,这让我很困惑。去年我安装了Visual Studio 2017并着手创建一个新项目时,ASP.NET核心首先出现在我的雷达上,突然有了.NET框架、.NET标准和.NET核心的选择。所以我对它们进行了一些研究,发现后两个在某种程度上是完整框架的缩写版本。我读了斯科特·汉塞尔曼的这篇文章 ASP.NET 5 is dead - Introducing ASP.NET Core 1.0 and .NET Core 1.0 我还发现了这一点,它使我远离了ASP.NET核心: Choose between ASP.NET and ASP.NET Core . 我的结论是“核心是新的,你可以继续使用完整的框架。”所以我用.NET Framework 4.6.2和Microsoft.asp net.mvc 5.2.3创建了一个新的ASP.NET MVC站点。

    自从创建了这个项目,我发现在MVC和实体框架中似乎都有一些错误,结果发现在Web上唯一提到它们的地方似乎是核心,而这是唯一一个被认为是被修复的地方。

    现在,今天,我试图在system.web.mvc.controller和system.web.mvc.jsonresult上查找文档,除了核心文档之外,它已经不存在了。我终于把它挖出来了 here 它说它不再被维护的地方?

    我明白了 this much 关于core说,“好吧,我为什么要关心?我将继续做我正在做的事情,并在完成后再检查一遍。”但现在看来,4.6.2甚至不再受支持了。有人能解释一下发生了什么事吗?我的net 4.6.2/mvc 5.2.3项目在我写完之前已经过时了吗?如果没有,为什么文档被收回并隐藏?我担心我的一些依赖项甚至可能无法与核心兼容。

    2 回复  |  直到 6 年前
        1
  •  74
  •   Dai    6 年前

    ( 每当发布新的.NET公告时,此答案都会定期更新,并且已使用ASP.NET Core 3.0、.NET 3和.NET 5的详细信息进行更新。)

    对于过去3年中.NET CORE/DNX、ASP.NET CORE、.NET Standard、.NET 5和其余内容的混乱程度,Microsoft需要好好拍打一下。

    (我要说的是,作为一名德夫丁的前全职员工… (来自16号楼的Hi!)(子)

        2
  •  7
  •   Lex Li    7 年前

    这个答案将尝试只关注ASP.NET MVC 5和尽可能少的ASP.NET核心。

    产品生命周期

    微软仍然支持这一点,而且还没有宣布生命的终结,

    https://www.asp.net/support

    框架/产品退役

    ASP.NET MVC 4 2019年7月1日

    ASP.NET MVC 5

    所以如果你喜欢,继续使用它。记住,vb6和经典的ASP用户仍然受到微软的支持。

    如果确实检查了有关产品生命周期的Microsoft文档,则仍然支持.NET Framework 4.5.2及更高版本。

    维护

    但是,您需要注意的是,ASP.NET MVC 5处于维护模式,因为开发资源现在几乎都在ASP.NET核心上。

    你确实得到了,

    • nuget.org发布了不可预知的补丁。

    如果您监视相关的nuget包,您应该注意到,即使是最近Microsoft也会更新这些包以修复安全漏洞等。

    • 锁定的文档。

    您从Microsoft Docs看到的通知实际上强调了第一句话“我们不再定期更新此内容”。这非常有意义,因为ASP.NET MVC 5非常可靠,因此您不应再期待添加新材料。

    • 缺陷修复和新功能非常有限。

    你说,“自从创建了这个项目,我发现在MVC和实体框架中似乎都有一些错误,结果发现在Web上唯一提到它们的地方似乎是核心,这是唯一一个被认为是被修复的地方。”

    嗯,这真的取决于你在说什么“臭虫”。正如我之前所说,与安全相关的问题仍在修补中,但是具有解决方法或功能限制的错误最不可能得到修复。这是一个开源项目,所以如果你真的想要,你可以自己解决问题,作为最后的手段。

    在新特性方面,微软确实从ASP.NET核心中反向移植了一些特性,例如依赖注入、新的配置系统,以在一定程度上简化迁移。但不要期望太多。

    迁移

    如果可以,请考虑迁移到ASP.NET核心。