This past July 2020, Amazon AWS released their new Porting Assistant for .NET that’s designed to port Windows-specific .NET Framework code to the new cross-platform .NET Core. With the increasing popularity of Linux and cross-platform applications, many businesses are interested in porting their existing .NET code to .NET Core. In addition, Microsoft has announced that the cross-platform .NET Core is the future of .NET and that version 4.8 of the .NET Framework is the last major version of the .NET Framework to be released. There will be no new feature enhancements to the .NET Framework in the future — it will receive only bug and security fixes going forward.
The AWS cloud supports both Linux and Windows platforms and it has a strong developer contingent. Porting .NET Framework applications to .NET Core helps organizations to better take advantage of the Linux platform and provides businesses and applications with increased flexibility and potential cost savings. However, porting applications to .NET Core can be a significant effort. Porting .NET Framework code to .NET Core requires updating references to project dependencies, finding compatible NuGet packages, updating those package references and finding replacement APIs as .NET Core only supports a subset of the APIs available in the .NET Framework. The Porting Assistant for .NET reduces the manual effort involved in migrating your applications to .NET Core by scanning .NET Framework applications and generating a .NET Core compatibility assessment. The assessment identifies incompatibilities with .NET Core, finds known package replacements, and generates a detailed migration assessment with difficulty scores.
There are other tools available that help you to port .NET Framework code to .NET Core. For instance, Microsoft offers its .NET Portability Analyzer for porting .NET Framework code to .NET Core. Amazon states that the Porting Assistant for .NET differs from other tools in that it is able to assess the full range of package dependencies — not just incompatible APIs. It uses project solution (.sln) files as the starting point making it easier to analyze monolithic applications.
According to Turgay Özgur, Software Architect for Kloia “Porting Assistant for .NET plays a crucial role during the initial phases of .Net Core transitions and also guides during the journey. With the help of the Porting Assistant for .NET, one can foresee the complexity of the project and can do better planning and implementation.”
Porting Assistant for .NET supports .NET Core 3.1 as a target and .NET Framework 3.5+ as a source. Support for .NET 5 as a target will be available later this year. Porting Assistant for .NET tool can be installed on a VM or workstation running Windows 10 or Windows Server 2016 and above. It requires the .NET Core 3.1 and the AWS CLI to be previously installed. You can learn more about how to get started using Amazon’s new .NET Core porting tool at AWS News Blog Announcing the Porting Assistant for .NET.