AWS Builds a Bridge Between .NET Framework and .NET Core Apps
Amazon Web Services (AWS) has launched a Porting Assistant for .NET, allowing users to bring their apps from the 18-year-old, Windows-only .NET Framework to its successor, the open source and cross-platform .NET Core.
The new tool, which became generally available on Wednesday, scans apps and generates a .NET Core compatibility assessment, helping speed up ports to the new platform. According to the announcement, the scan does the following:
- Identifies incompatibilities with .NET Core
- Finds known replacements
- Generates detailed compatibility assessment reports
"Porting .NET Framework applications to .NET Core helps customers take advantage of the performance, cost savings, and robust ecosystem of Linux. However, porting applications to .NET Core can be a significant manual effort," AWS said. "Application owners need to spend valuable time identifying the dependencies and APIs that are incompatible with .NET Core, and estimating the level of effort involved. Porting Assistant for .NET quickly scans .NET Framework applications to identify incompatibilities with .NET Core, finds known replacements, and generates a detailed compatibility assessment. This reduces the manual effort involved in modernizing your applications to Linux."
While several .NET Framework-to-.NET Core exist, including one from Microsoft, AWS said its tool differentiates itself by being able to assess the full tree of package dependencies in addition to common functionality such as detecting incompatible APIs. Furthermore, AWS said, it uses solution files as the starting point, easing the assessment of monolithic solutions that include many projects. That obviates the need to analyze and aggregate information on individual binaries.
"When porting .NET Framework applications, developers need to search for compatible NuGet packages and update those package references in the application’s project files, which also need to be updated to the .NET Core project file format," said AWS developer advocate Steve Roberts in a July 1 blog post. "Additionally, they need to discover replacement APIs since .NET Core contains a subset of the APIs available in the .NET Framework. As porting progresses, developers have to wade through long lists of compile errors and warnings to determine the best or highest priority places to continue chipping away at the task. Needless to say, this is challenging, and the added friction could be a deterrent for customers with large portfolios of applications."
The tool uses .NET Core 3.1 as a target, with that to eventually be upgraded to .NET 5, a unifying all-things-.NET framework debuting in November. Source apps must be .NET Framework 3.5 or greater (version 4.8 is the latest -- and last -- .Net Framework version). It works only for Windows services and ASP.NET applications.
Roberts' post, which goes into detail on how to use the porting assistant, notes that users sharing their telemetry will help improve the tool, generating data models behind the tool's suggestion engine. That data store is available on GitHub. That's the only open source component of the tool available at this time. While it now only works with AWS-provided builds, the company said it plans to open source the project in the future so others can contribute changes.
David Ramel is an editor and writer for Converge360.