(This answer is regularly updated whenever a new .NET announcement is made, and it has been updated with details of ASP.NET Core 3.0, .NET 3, and .NET 5)
微软需要好好教训一顿,因为过go 三年里微软的混乱程度超过了五年.NET内核/DNX,ASP.网络核心.NET标准.网5和其他.
(我要说的是,作为德夫迪夫的前FTE SE…("你好,来自16号楼!"))
- ASP.NET又名"System.Web"现在已经死了.WebForms已死(万岁!)
- ASP.NET MVC launched in 2008 was built on-top of ASP.NET, but bypassed most of the WebForms infrastructure.
- ASP.NET MVC有自己的版本控制,与ASP.NET和ASP.NET Web API(以及ASP.NET Core)不同.你链接到了ASP.NET MVC 5的文档-this is not the same thing as 105.
- 2012年推出的ASP.NET Web API是ASP.NET MVC的sibling ,它也在ASP.NET的基础上构建,但有自己的类库(
System.Web.Http
),与ASP.NET MVC(System.Web.Mvc
)没有太多共享.正在try 合并ASP.NET Web API服务与ASP.NET MVC web应用程序在同一个项目中是一个痛苦的练习.
- ASP.NET MVC 5于2014年发布,是对ASP.NET MVC 4的更新.这与ASP.NET 5无关.
- ASP.NET MVC 6人从未被释放.它被卷进了ASP.NET 5,然后变成了ASP.NET Core.它的目标是将ASP.NETMVC和ASP.NETWeb API组合到单个平台中.
- ASP.NET Core作为ASP的改进设计于2016年推出.NET MVC 5,但不依赖
System.Web.dll
或任何(现在是遗留的)IIS依赖项(例如旧的请求管道,IHttpHandler
和IHttpModule
不再存在).
- .NET Core is a new version of the CLR and BCL which is explicitly portable and runs on Windows, Linux and macOS.
- 与Windows独有的full-fat和.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 will be the new name of .NET Core after .NET Core 3 is released (.NET 5 is expected around late 2020).
- .NET 5与ASP.NET 5.0或ASP.NET MVC 5有关.
- 没有.NET Core 4或.NET Framework 5.0.
- "ASP.NET Core in .NET"似乎是专门针对.NET 5及更高版本的ASP.NET Core首次发布的最终名称.
我注意到"Core"是微软针对使用.NET Core的当前一代.NET平台的hot个品牌(即它们没有Windows依赖,因此是可移植的).(就像上世纪90年代,如果微软使用COM或ActiveX,比如Active Desktop、Active Channels、Actimates、Active Directory、ActiveSync等,他们是如何将"Active"附加到事物上的).
- 此外,Entity Framework Core还缺少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标准,而不是.NET核心-这意味着ASP.NET Core运行在.除了在Windows上运行外,还可以在Windows上运行NET Framework.NET内核.
我注意到,所有以前的.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 5).除了以下事实之外,本公告根本不涉及ASP.NET Core.NET5将完全支持在其上运行的ASP.NET Core 3.0个应用程序.
在2020年以Covid为主题的整个夏天,微软最终确定了.NET5和ASP.NET Core.截止到2020年10月,ASP.NETCore的NuGet包版本已经从3.1.x跃升到5.0.0--所以看起来ASP.NETCore的下一个主要发行版将是第5.x.x
版,它建议将其第may版命名为"ASP.NET Core 5",尽管最近微软的博客文章建议这个名称将是"ASP.NETCore for.NET5"-尽管考虑到整个线程是通过"ASP.NETMVC5"而不是"ASP.NET5"在念力上创建的,我确信它的命名要么是"ASP.NETCore5",要么是"ASP.NETCorefor.NET5"不,先生-伊-鲍勃!
总结一下:
- ASP.NET MVC 5:
- ASP.NET MVC 5是ASP.NET MVC 4的短命继承者.
- 2014年,它与ASP.NET Web API 2部一起发布.
- 它实际上运行在ASP.NET 4之上(即
System.Web.dll
的Net4.x版本).请注意,整个ASP.NET MVC库现在已经过时.
- ASP.NET 5已下线并更名为ASP.NET Core,它包含内置的"ASP.NET MVC 5"功能.
- ASP.NET Core 1和ASP.NET Core 2都可以在任何一台上运行.NET核心(跨平台)或.NET框架(Windows),因为它的目标是.净标准.
- ASP.NET Core 3现在只能在.NET Core 3.0上运行.
- ASP.NET Core 4不存在,也从来没有.
- ASP.NET Core 5存在(截至2020年8月),但它的官方名称似乎是"ASP.NET Core for.NET 5",而且它只在.NET 5上运行.
全部(按时间顺序排列):
- ASP.NET 1 - 2001. 包括WebForms人.继续跑.NET Framework 1.0和1.1.
System.Web.dll
- ASP.NET 2.0 - 2005. 包括WebForms人.继续跑.NET框架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框架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的sibling 姐妹.也可以在没有ASP.NET 4.0的情况下运行.
- ASP.NET MVC 6 - 2014-2015. 在达到发布候选状态后中止,并在2016年重新启动为ASP.NET Core MVC 1.0,这是ASP.NET Core 1的MVC和Web API组件.
- ASP.NET 5 - 2014. ASP的主要重启.净described here.主要的变化包括合并MVC、网页和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 Core - 2016. 便携且小巧.NET运行时和类库.
- .NET Standard - 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上运行).这是一个有争议的举动,因为这意味着现在没有ASP的升级路径.网络核心2.从x到ASP.网络核心3.x用于在上运行的应用程序.NET框架4.7.因为依赖关系不支持x.净核心,这意味着可能不会有一个.NET标准3.0.
- .NET 5-2019年5月:微软发布了下一个版本的..NET Core 3.1之后的NET Core将不会被称为".NET Core 4.0"或".NET Core 5.0",而是会跳转到版本号5.0,放弃"Core"品牌,因此是".NET 5.0".
- ASP.NET Core 3.0 on .NET 5-在2019年5月发布的.NET 5中,微软还表示ASP.NET Core 3.0应用程序将在.NET 5上运行.目前尚不清楚ASP.NET Core 2.x应用程序是否能够在.NET 5上原封不动地运行.
- ASP.NET Core vNext on .NET 5-2020年8月:即将发布.NET 5Microsoft has bumped the version numbers of the NuGet packages for ASP.NET Core to
5.0.0
.微软还没有正式提到这个新版本的ASP.NET Core被称为"ASP.NET Core 5",但我认为这已成定局.
- ASP.NET Core for .NET 5 A more recent blog article from September 2020 suggests that Microsoft is referring to the next version of ASP.NET Core as "ASP.NET Core for .NET 5" (yes, that's a mouthful - at least it isn't as ambiguous as earlier names).
Timeline and block diagram
(我做这个的时候有点忘乎所以了…)