你提出的这个问题很有意思,也触及到了一个很多人可能都有的疑惑:为什么在GitHub上,我们搜索 ASP.NET MVC 的相关项目,映入眼帘的最新官方 Release 似乎停留在 6.0 的版本,让人产生一种它是不是已经停止发展的错觉。
首先,我们需要明确一点,ASP.NET MVC 这个名称本身,在微软的生态系统中,已经不再是当前最新的技术代名词了。微软在 .NET Core 之后,进行了大规模的重构和整合,将原有的 ASP.NET MVC、ASP.NET Web API、ASP.NET SignalR 等技术,统一到了一个新的、更现代化的框架下,那就是 ASP.NET Core。
所以,你在 GitHub 上看到的 ASP.NET MVC 6.0 的 Release,很大程度上指的是 ASP.NET MVC 5 系列的最后版本,或者更准确地说,是 .NET Framework 时代的 ASP.NET MVC 的最终稳定版。微软从 .NET Core 1.0 发布开始,就逐步将重心转移到了这个跨平台、高性能、模块化的新框架上。ASP.NET Core 继承并优化了 ASP.NET MVC 的许多优点,并引入了大量新的特性和架构改进,例如:
跨平台支持: ASP.NET Core 可以在 Windows、macOS 和 Linux 上运行,这使得开发者可以拥有更大的灵活性。
高性能: ASP.NET Core 在设计上就极度重视性能,并且经过了大量的优化,在许多基准测试中表现出色。
模块化设计: 整个框架被拆分成更小的、可插拔的组件,开发者可以根据需要引入,避免了不必要的依赖,也使得框架本身更加轻量。
内置依赖注入: 依赖注入(DI)是 ASP.NET Core 的核心部分,它使得代码更易于测试和维护。
统一的 API 模型: 将 MVC 和 Web API 的概念整合,提供了一个更一致的开发体验。
Kestrel Web 服务器: ASP.NET Core 默认使用 Kestrel 作为高性能的跨平台 Web 服务器,可以直接部署而无需依赖 IIS。
因此,当我们谈论“ASP.NET MVC”的最新发展时,实际上我们应该关注的是 ASP.NET Core MVC。如果你在 GitHub 上搜索 "ASP.NET Core MVC",你会发现项目非常活跃,并且持续有新的版本发布,包括你提到的 6.0 这个版本,实际上是 .NET 6 时代的 ASP.NET Core MVC。
微软在 .NET 5 之后,将 .NET Framework 和 .NET Core 统一为 .NET 这一单一平台。从 .NET 5 开始,后续的版本(.NET 6, .NET 7, .NET 8 等)都包含了 ASP.NET Core MVC 的演进。你看到的 "6.0 release" 极有可能指的是 ASP.NET Core MVC 在 .NET 6 框架下的版本。 .NET 6 本身是一个 LTS(长期支持)版本,它所包含的 ASP.NET Core MVC 具有相当的稳定性和广泛的应用。
所以,并不是 ASP.NET MVC 停止发展了,而是它的名字和形态都发生了演进。如果你想找到当前最新的、微软官方在积极维护和更新的 Web 开发框架,你应该搜索和关注的是 ASP.NET Core 相关的项目,特别是 ASP.NET Core MVC。GitHub 上关于 ASP.NET Core 的开源项目会非常多,并且开发活跃度很高,版本迭代也很快,远不止 6.0 这个版本。
如果你在 GitHub 上看到的 6.0 release 是指一个特定的、名为 "ASP.NET MVC 6.0" 的独立项目,那么它可能是一个社区维护的、非微软官方的移植项目,或者是一个针对特定旧版本进行修改的 fork。但就微软官方的生态而言,最新的 Web 开发技术早已融入到 ASP.NET Core 的各个版本中了。