Earlier this month, Microsoft announced the conclusion of the .NET Framework API porting project for .NET Core 3.0. That means the official development team won’t port any other APIs from the .NET Framework to .NET Core 3.0 (and future versions). In the same announcement, however, Microsoft also stated their intention to open-source more of the .NET Framework code, which could allow the creation of community-driven porting projects in the future.
Immo Landwerth, a program manager on .NET at Microsoft, explained that the decision was aligned with Microsoft’s plans for .NET Core:
We announced that the future of .NET will be based on .NET Core. […] With .NET Core 3.0, we’re at the point where we’ve ported all technologies that are required for modern workloads, be that desktop apps, mobile apps, console apps, web sites, or cloud services. That’s not to say that we don’t have any gaps or opportunities for new technologies, but we generally believe we won’t be finding them in the .NET Framework codebase anymore. Moving forward, we’re focusing our resources on incorporating new technologies.
Also according to Immo, more than half of the .NET Framework APIs (~120k) was ported to .NET Core since version 1.0. In addition, there are 62k new APIs in .NET Core that do not exist in the .NET Framework. When compared according to their total number of APIs, .NET Core has approximately 80% of the API surface of .NET Framework.
Microsoft had already stated that they didn’t intend to port all of the .NET Framework’s APIs to .NET Core. Scott Hunter, director of program management for the .NET platform at Microsoft, mentioned some of these APIs (and their intended replacements) earlier this year:
After .NET Core 3.0, we will not port any more features from the .NET Framework. If you are a Web Forms developer and want to build a new application on .NET Core, we would recommend Blazor which provides the closest programming model. If you are a remoting or WCF Server developer and want to build a new application on .NET Core, we would recommend either ASP.NET Core Web APIs or gRPC, which provides cross-platform and cross-programming language contract-based RPCs). If you are a Windows Workflow developer there is an open-source port of Workflow to .NET Core.
All new APIs introduced in .NET Core 3.0 are part of Microsoft’s long-term plans towards creating a unified .NET platform. However, Microsoft also made it clear that they intend to release more of the .NET Framework code under the MIT license, allowing the community to create OSS projects to port other technologies and API into .NET Core (such as CoreWF and CoreWCF).
Following the announcement, all .NET Core issues labeled “port-to-core” were closed. The open-sourced .NET Framework code repository, however, has been updated consistently: one of the main issues closed following the announcement referred to the
System.Device API, which was open-sourced three days later. The open-sourced .NET Framework APIs can be found here.