微软方面表示,通过.NET Core 3.0,他们现在已具备轻松移植现代workload所需的所有技术,无论是桌面应用、移动应用、控制台应用,网站还是云服务。为此,他们计划将不再把.NET Framework上已有的技术移植到 .NET Core 3.0,并考虑使用MIT协议来开源不打算移植到.NET Core 3.0的.NET Framework代码库。
当然不移植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 3.0 中,微软又增加了WPF和WinForm,因此将 .NET Framework API移植到.NET Core的总数超过了12万,比 .NET Framework API总数量的一半还多。
这里还需要指出的是,微软特意强调他们在.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。