ASP.NET Core 2.0对应MVC版本及.NET 5、.NET Standard面试问题咨询
首先明确一点:ASP.NET Core 2.0 使用的是 ASP.NET Core MVC 2.0,并不是 MVC 6。
MVC 6 其实是 ASP.NET Core 早期预发布阶段的临时命名,当微软正式推出 ASP.NET Core 1.0 时,就把这个组件统一命名为「ASP.NET Core MVC」,后续版本号完全和 ASP.NET Core 的主版本保持一致——比如 Core 2.0 对应 MVC 2.0,Core 3.1 对应 MVC 3.1,以此类推。这个改名是为了强调它是 ASP.NET Core 生态的核心组成部分,而非独立于 Core 的传统 MVC 升级版本。
.NET 5 是微软在 2020 年发布的统一 .NET 平台,核心目标是终结之前 .NET 生态分裂的局面——过去我们有只能跑 Windows 的 .NET Framework、跨平台的 .NET Core、用于移动开发的 Xamarin,各个分支的 API 和生态都不互通。
.NET 5 把这些分支整合到了同一个框架下,它不是 .NET Core 4.0,而是直接跳过版本号到 5,就是为了和旧的 .NET Framework(最高版本 4.8)做明确区分,宣告这是一个全新的、跨平台的统一开发平台。基于 .NET 5,你可以开发 Web、桌面、移动、云原生、IoT 等几乎所有类型的应用,而且能在 Windows、Linux、macOS 等多个系统上运行。
.NET Standard 是一套API 规范定义,不是具体的运行时或框架。
在 .NET 生态分裂的时期,不同 .NET 平台(比如 .NET Framework、.NET Core、Xamarin)的 API 集合差异很大,导致开发者写的类库只能在特定平台上使用,复用性极低。为了解决这个问题,微软推出了 .NET Standard:它定义了一套各个 .NET 平台都必须实现的 API 子集,只要你针对某个版本的 .NET Standard 开发类库,这个类库就能在所有支持该版本的 .NET 平台上运行。
举个例子:.NET Standard 2.0 被 .NET Framework 4.6.1、.NET Core 2.0、Xamarin.iOS 10.14 等多个平台支持,基于它开发的类库可以无缝在这些平台上复用。
内容的提问来源于stack exchange,提问作者sasi

