在最新的微软 Build 大会主题网站上,微软.NET 程序经理 Scott Hunter 发表了一篇文章,指出.NET Core 是.NET 的未来。
去年,微软就已经确认 Visual Studio Live 中的.NET 框架将会被.NET Core 取代。将.NET Core 作为开源开发技术栈在 2014 年就公布了,但真正的第一个主要版本到了 2016 年年中才发布,同时发布的还有相应版本的 ASP .NET Core 和 Entity Framework Core。开源.NET Core 是一项为跨平台.NET 奠定基础并构建更强大的生态系统的举措。.NET Core 的第一个主要版本专注于高性能 Web 和微服务。一年后,随着 2.0 版本的发布,添加了多个 API 和组件,方便将 Web 应用程序迁移到.NET Core。InfoQ 与经验丰富的社区开发人员讨论了.NET Core 2.0 的发布及其未来,并了解到这些要点:将.NET Core 看作一个已经稳定的平台,适合用于新的应用程序开发,在.NET 框架上提供显著的性能优势。开发人员之一 Jeff Amons 表示,。NET Core 的优势之一是以服务器为中心的设计模型:
“.NET 最初是针对 Windows 电脑的单个用户而进行优化的。.NET Core 为微软转向以服务器为中心的模型提供了契机。”
.NET Core 3.0 的亮点是支持 Windows 桌面应用程序,主要是 Windows 窗体、Windows 表示框架(WPF)和 UWP XAML。在发布期间,.NET 标准被认为是 Windows 桌面应用程序和.NET Core 的公共基础。另外,.NET Core 被描述为 ASP.NET、Entity Framework Core 和 ML.NET 组合体的一部分。“Windows 桌面包”将为开发和移植 Windows 桌面应用程序到.NET Core 提供支持,这是一个兼容 Windows 平台的附加组件。
与 Hunter 的文章同时发布的还有作为”.NET Core vNext“的.NET 5,也就是.NET Core 3.0 的后续版本。在这个声明中,微软将.NET 5 作为一个统一的平台,用于桌面、Web、云、移动、游戏、物联网和 AI 应用程序。它还演示了与所有 Visual Studio 版本和命令行接口(CLI)的显式集成。新版.NET 的目标是产生一个.NET 运行时和框架平台,将.NET Core、.NET Framework、Xamarin、Mono(最初的.NET 跨平台实现)的关键特性集成在一起。.NET 5 还支持 Java 在所有平台上的互操作性,以及在多个操作系统上与 Objective-C 和 Swift 的互操作性。
社区对.NET 5 的品牌和向后兼容性存在一些质疑。例如,用户 lol768 说:
“在历史上,vNext 已经被用在 ASP.NET 中,用来指代 ASP.NET v6(为了不与 ASP.NET MVC 混淆)。我们重启了 ASP.NET Core 的版本,现在是版本 2。Entity Framework 过去是.NET 框架组件,但现在是独立的,然后还有一个 Core 版本系统……我记得很多年前我们有一个 Microsoft .NET Passport…这与之前提到的.NET 品牌完全无关。现在我们有.NET 5,它既不是框架也不是 Core——ASP.NET 也放弃这个 Core 品牌吗?仅仅是我这么认为,还是这一切太复杂?”
不过,很明显的是,.NET 未来所有的投资都将与.NET Core 相关,而.NET 5 是.NET Core 的下一步。所有相关的开发都将继续开源和面向社区。.NET Core 的生产版本计划在今年晚些时候,也就是 9 月份发布,而.NET 5 预计在 2020 年晚些时候发布。这里提供了当前.NET Core 的路线图。