目前 .NET Core 3.0 拥有的 API 总数约为 .NET Framework API 的 80%,剩下尚未从 .NET Framework 移植到 .NET Core 的 API,微软考虑以开源的形式发布。
当然不移植 API 并不是说我们在使用新技术方面没有任何机会,只是这些技术不会在 .NET Framework 代码库中出现。
下面我们来看看 .NET Core 和 .NET Framework 的发展历程。
从 .NET Core 1.0 开始,它只有一个非常小的 API 集合,其中仅包含大约 1.8 万个 .NET Framework API。通过 .NET Standard 2.0,微软试图在 .NET Framework, .NET Core 和 Xamarin 之间共享代码,因此 .NET Core 2.0 提供了大约 3.8 万个 .NET Frameworks API。此外,微软还构建了兼容性套件包 —— Windows Compatibility Pack,而该套件包又让 .NET Core 增加了大约 2.1 万个 .NET Framework API。至此,前后大约有 6 万个 API 移植到了 .NET Core。
这里还需要指出的是,微软特意强调他们在 .NET Core 中添加了大约 6.2 万个 .NET Framework 中没有的 API,因此如果仅比较 API 的总数,那么 .NET Core 的 API 数量约占 .NET Framework API 的 80%。
微软表示 .NET 的未来将基于 .NET Core,在 Build 2019 大会上,微软宣布 AppDomains、远程处理、Web Forms、WCF server 以及 Windows Workflow 都不会移植到 .NET Core。目前也不再计划将任何 .NET Framework 技术移植到 .NET Core 上。前面提到微软会开源不打算移植到 .NET Core 3.0 的 .NET Framework 代码库,希望借此为社区创造更多 OSS 项目尽一份力量。
例如,目前已经有两个基于此的社区项目诞生 —— CoreWF 和 CoreWCF。