gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 11:49:00 25 4
gpt4 key购买 nike

我一直不遗余力地从事各种项目的工作,显然Microsoft一直在忙于进行一些重大更改,这使我感到困惑。去年我安装Visual Studio 2017并开始创建新项目时,ASP.NET Core首次引起了我的注意,突然选择了.NET Framework,.NET Standard和.NET Core。因此,我仔细研究了一下它们,发现后两者在某种程度上是完整框架的缩写版本。我读了Scott Hanselman的ASP.NET 5 is dead - Introducing ASP.NET Core 1.0 and .NET Core 1.0帖子,也发现了这一点,这使我远离了ASP.NET Core:Choose between ASP.NET and ASP.NET Core。我的观点是“Core是新的,您可以继续使用完整的框架。”因此,我使用.NET Framework 4.6.2和Microsoft.AspNet.Mvc 5.2.3创建了一个新的ASP.NET MVC网站。

自创建该项目以来,我发现MVC和Entity Framework中似乎都存在一些错误,只是发现在Web上唯一提及它们的地方似乎是在Core中,并且这是唯一被视为已修复的地方。

现在,今天,我正在尝试查找有关System.Web.Mvc.Controller和System.Web.Mvc.JsonResult的文档,除了Core文档下的文档已消失。我终于把here挖了一下,说它不再被维护?

我了解this much关于Core的问题,并说:“好吧,我为什么要关心?我将继续做我正在做的事情,并在完成后再检查一下。”但是现在看来,甚至不再支持4.6.2。有人可以解释发生了什么吗?我的NET 4.6.2 / MVC 5.2.3项目现在已经过时了吗?如果不是,为什么将这些文档退休并隐藏起来?我担心我的某些依赖项可能甚至无法用于Core或与Core兼容。

最佳答案

(每次发布新的.NET公告时,都会定期更新此答案,并且已使用ASP.NET Core 3.0,.NET 3和.NET 5的详细信息更新了)
在过去的3年5年中,Microsoft需要对.NET Core / DNX,ASP.NET Core,.NET Standard,.NET 5和其他方面的困惑状况给予良好的掌声。
(我是说,作为DevDiv的前FTE SE ...(“嗨,来自16号楼!”))

  • ASP.NET aka“System.Web”现在已死。 WebForms已死(呼啦!)
  • ASP.NET MVC 于2008年推出,是在ASP.NET的基础上构建的,但绕过了大多数WebForms基础结构。
  • ASP.NET MVC 具有自己的版本控制,与 ASP.NET ASP.NET Web API (以及 ASP.NET Core )分开。您已链接到 ASP.NET MVC 5 的文档-这与 ASP.NET 5 不同。

  • ASP.NET Web API 是2012年推出的 ASP.NET MVC 的同级产品,它也是在 ASP.NET 的基础上构建的,但具有自己的类库(System.Web.Http)与共享很多内容。ASP.NET MVC (System.Web.Mvc)。在同一个项目中尝试将ASP.NET Web API服务与ASP.NET MVC Web应用程序结合在一起是一件痛苦的事情。
  • ASP.NET MVC 5 于2014年启动,是对 ASP.NET MVC 4 的更新。它与 ASP.NET 5 无关。
  • 我确实注意到ASP.NET MVC 5是where we had both System.Web.Mvc and Microsoft.Web.Mvc namespaces - which is confusing。幸运的是,这是短暂的,与今天无关。

  • ASP.NET MVC 6 从未发布。它已卷入 ASP.NET 5 ,然后成为 ASP.NET Core 。其目标是将ASP.NET MVC和ASP.NET Web API组合到一个平台中。
  • ASP.NET Core 作为ASP.NET MVC 5的改进设计于2016年启动,但不依赖System.Web.dll或任何(现在)的IIS依赖(例如,不再存在旧的请求管道,IHttpHandlerIHttpModule) 。
  • 请注意, ASP.NET Core 的类库的根 namespace 现在是Microsoft.AspNet而不是System.Web。这让我感到困惑。这意味着将项目从 ASP.NET MVC ASP.NET WebAPI 升级到ASP.NET Core并非易事,尽管其 Controller 和中间件的基本体系结构相同。

  • NETt核心是CLR和BCL的新版本,可明确移植并且可在Windows,Linux和macOS上运行。

    相对于Windows专有的全脂 .NET Framework
  • .NET Core 1.0 .NET Core 2.0 的基类库被认为是贫血的。
  • 通过 .NET Core 3.0 以及WinForms,WPF和.NET Framework的其他组件的开源,.NET Core现在可以作为Windows中.NET Framework的替代品,用于新的应用程序开发。

  • .NET 5 将是 .NET Core 3 发布之后的.NET Core的新名称(预计.NET 5将于2020年末推出)。
  • .NET 5 与ASP.NET 5.0 或 ASP.NET MVC 5 绝对无关。
  • 没有 .NET Core 4 也没有 .NET Framework 5.0

  • “用于.NET 5的ASP.NET Core的”似乎是专门针对 .NET 5 的第一版ASP.NET Core的最终名称。

  • 我注意到,“Core”是Microsoft在当前可与.NET Core一起使用的.NET平台上的热门品牌(即它们没有Windows依赖关系,因此可移植)。 (就像Microsoft在1990年代使用COM或ActiveX时如何将“Active”粘贴到事物上一样,例如Active Desktop,Active Channel,ActiMate,Active Directory,ActiveSync等)。
  • 另外, Entity Framework 核心仍然缺少Entity Framework 6的许多功能,这是因为基本上是重写,但是最终会达到同等水平。

  • 因为当前有许多.NET运行时和BCL(.NET Framework,.NET Core,UWP,Xamarin(使用Mono),Unity等),所以Microsoft引入了 .NET Standard ,这基本上是可移植类库的重新启动概念:Visual Studio项目的目标是通用功能的已知子集,而不是特定的实现。 (我只是希望他们将版本号从4开始以匹配.NET Framework,而不是从1.0开始,因为那让我重新考虑了2001。)-但重要的部分是 ASP.NET Core 1 ASP.NET Core 2 目标是.NET Standard而不是.NET Core-这意味着ASP.NET Core除了可以在.NET Core之上运行之外,还可以在Windows的.NET Framework之上运行。
    我注意到,所有以前的.NET跨平台兼容性技术现在都已过时(包括针对Compact Framework子集,可移植类库,甚至是Visual Studio中的“共享项目”),因为它们是为其他版本的.NET设计的,不再存在,例如.NET Compact Framework,XNA,Silverlight和Windows Phone 7的子集。
    在2019年5月,Microsoft announced ".NET 5"。简而言之, .NET Framework 被替换为 .NET Core ,.NET Core 3.0之后的下一个.NET Core版本将被命名为 .NET 5 )。除了.NET 5将完全支持在其上运行的ASP.NET Core 3.0 应用程序这一事实外,该公告与 ASP.NET Core 完全无关。
    在2020年整个以Covid为主题的夏天中,Microsoft完成了.NET 5和ASP.NET Core的定稿。截至2020年10月,ASP.NET Core的NuGet软件包版本已从3.1.x跃升至5.0.0-因此,似乎ASP.NET Core的下一个主要版本将成为5.x.x版本,这表明其发行版可能命名为“” ASP.NET Core 5 “,尽管最近的Microsoft博客文章建议该名称为” .NET 5的ASP.NET Core“-尽管考虑到整个线程是出于对” ASP.NET MVC 5“vs” ASP.NET 5”我敢肯定,将其命名为“ASP.NET Core 5”或“ASP.NET Core for .NET 5”绝对不会造成任何混淆,没有sir-ee-bob!
    综上所述:
  • ASP.NET MVC 5 :
  • ASP.NET MVC 5 ASP.NET MVC 4 的短暂后继。
  • 它与一起在2014年发布。ASP.NET Web API 2
  • 它实际上是在 ASP.NET 4 (即.NET 4.x版本的System.Web.dll)之上运行的。请注意,整个 ASP.NET MVC 库现在已过时。

  • ASP.NET 5 已停产,并更名为 ASP.NET Core ,它包含内置的“ASP.NET MVC 5”功能。
  • ASP.NET Core 1 ASP.NET Core 2 可以在.NET Core(跨平台)或.NET Framework(Windows)上运行,因为它的目标是.NET Standard。
  • ASP.NET Core 3 现在仅在 .NET Core 3.0 上运行。
  • ASP.NET Core 4 不存在,也永远不存在。
  • ASP.NET Core 5 存在(截至2020年8月),但是其正式名称似乎是“.NET 5的ASP.NET Core”,并且仅在 .NET 5 上运行。

  • 所有这些(按时间顺序):
  • ASP.NET 1 -2001。包括 WebForms 。在.NET Framework 1.0和1.1上运行。 System.Web.dll
  • ASP.NET 2.0 -2005。包括 WebForms 。在.NET Framework 2.0上运行。 System.Web.dll
  • ASP.NET MVC 1 ASP.NET MVC 2 -2008-2009。跑在ASP.NET 2.0之上。 System.Web.Mvc.dll
  • ASP.NET 4.0 -2010。包括 WebForms 。在.NET Framework 4.0上运行。没有 ASP.NET 3.0 System.Web.dll
  • ASP.NET MVC 3 ASP.NET MVC 4 -2010-2013。跑在ASP.NET 4.0之上。 System.Web.Mvc.dll
  • ASP.NET Web Api 1 -2012。在之上ASP.NET 4.0 System.Web.Http.dll
  • ASP.NET MVC 5 -2013。只是对 ASP.NET MVC 的另一个更新。在之上运行ASP.NET 4.0 ,但在OWIN下也可以在没有System.Web.dll的情况下独立运行。
  • ASP.NET Web API 2 -2013。同级到 ASP.NET MVC 5 。也可以在OWIN下不使用的ASP.NET 4.0 来运行。
  • ASP.NET MVC 6 -2014-2015。在达到Release Candidate状态后中止,并在2016年重新启动为 ASP.NET Core MVC 1.0 ,这是 ASP.NET Core 1 的MVC和Web API组件。
  • ASP.NET 5 -2014。ASP.NETdescribed here的重大重启。主要更改包括合并MVC,Web页和Web API,以及删除了 WebForms 。 ASP.NET 5达到了候选发布状态,但随后更名为 ASP.NET Core 。从未有过 ASP.NET 6
  • ASP.NET Core 1 -2016。在 .NET Framework 4.5 .NET Core 1.0 上运行。
  • NET核心
    -2016。可移植且最小的.NET运行时和类库。
  • .NET标准-2017。一种使程序针对一组通用功能的方式,该功能将出现在所有.NET实现中(.NET Framework 4.5和更高版本,.NET Core 2.0和更高版本,Xamarin等)。
  • ASP.NET Core 2 -2017-2018:我们今天的位置。在 .NET Framework 4.6.1 .NET Core 2.0 上运行。 (截至2018年底,现在有ASP.NET Core 2.1)。
  • ASP.NET Core 3 -In late October 2018 Microsoft announced ASP.NET Core 3.0 will now only run on the upcoming .NET Core 3.0(因此它将不再在.NET Framework 4.7.x上运行)。这是一个有争议的举动,因为这意味着由于不支持依赖项,对于在.NET Framework 4.7.x上运行的应用程序,现在没有从ASP.NET Core 2.x到ASP.NET Core 3.x的升级路径。 .NET Core还没有,这意味着可能不会有.NET Standard 3.0。
  • .NET 5 -2019年5月:Microsoft宣布 .NET Core 3.1 之后的下一个.NET Core版本不会被称为“.NET Core 4.0”或“.NET Core 5.0”,但会跳至版本号5.0并放弃“Core”品牌,因此放弃“ .NET 5.0 ”。
  • .NET 5上的ASP.NET Core 3.0 -在2019年5月 .NET 5 的公告中,Microsoft还声明ASP.NET Core 3.0应用程序将在.NET 5上运行。目前尚不清楚ASP.NET是否在核心2.x应用程序将能够在.NET 5上未经修改地运行。
  • NET.NET 5上的ASP.NET Core vNext
    -2020年8月:即将发布 .NET 5 Microsoft has bumped the version numbers of the NuGet packages for ASP.NET Core to 5.0.0 。 Microsoft尚未正式/正式将这个新版本的ASP.NET Core称为“ASP.NET Core 5”,但我认为这已成定局。 NET.NET 5的
  • ASP.NET Core。2020年9月,最近的博客文章建议Microsoft将ASP.NET Core的下一个版本称为“.NET 5的 ASP.NET Core。”(是的,这是一口-至少它不像以前的名字那样模棱两可)。

  • 时间线和框图
    (我很生气使这个...)
    Diagram with a timeline of ASP.NET and a block diagram showing how the components of .NET Framework, ASP.NET and ASP.NET MVC come together

    关于asp.net - 我迷路了。 ASP.NET MVC 5发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51390971/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com