亚马逊网络服务(AWS)引入了一种工具,以帮助其云计算用户将.NET Framework应用程序移植到.NET Core,这是18岁,仅使用Windows的旧框架的开源,跨平台继承者。
全新的.NET Porting Assistant仅移植到Linux,它可以扫描应用程序并生成.NET Core兼容性评估,从而有助于加速新平台的端口。
7月1日的公告显示扫描内容:识别与.NET Core的不兼容性;查找已知的替代品;生成详细的兼容性评估报告;
“将.NET Framework应用程序移植到.NET Core可以帮助客户利用Linux的性能,成本节省和强大的生态系统。但是,将应用程序移植到.NET Core可能是一项巨大的手动工作,” AWS说。“应用程序所有者需要花费宝贵的时间来识别与.NET Core不兼容的依赖项和API,并估算所涉及的工作水平。.NET的Porting Assistant会快速扫描.NET Framework应用程序,以识别与.NET Core的不兼容性。替换,并生成详细的兼容性评估。这减少了将应用程序升级到Linux所需的手动工作。”
尽管存在数种.NET Framework到.NET Core,包括Microsoft的一种。AWS表示,该工具与众不同之处在于,它除了能够检测诸如不兼容的API之类的通用功能之外,还能够评估整个软件包依赖关系树。此外,AWS表示,它以解决方案文件为起点,从而简化了对包含许多项目的整体解决方案的评估。这样就无需分析和汇总有关单个二进制文件的信息。
“在移植.NET Framework应用程序时,开发人员需要搜索兼容的NuGet软件包并更新应用程序项目文件中的那些软件包引用,这些文件引用也需要更新为.NET Core项目文件格式,” AWS开发倡导者Steve Roberts表示。 7月1日的博客帖子。“此外,由于.NET Core包含.NET Framework中可用的API的子集,因此,他们还需要发现替代的API。随着移植的进行,开发人员必须仔细检查长长的编译错误和警告列表,才能确定最佳或高优先级的地方。继续努力完成任务。不用说,这是具有挑战性的,而增加的摩擦可能会对拥有大量应用程序组合的客户产生威慑作用。”
该工具以.NET Core 3.1为目标,最终将其升级到.NET 5,这是一个统一的万物.NET框架,于11月首次亮相。源应用程序必须是.NET Framework 3.5或更高版本(版本4.8是.net Framework的最新(也是最新的)版本)。它仅适用于Windows服务和ASP.NET应用程序。
Roberts的文章详细介绍了如何使用移植助手,并指出用户共享遥测技术将有助于改进该工具,并在该工具的建议引擎后面生成数据模型。该数据存储可在GitHub上找到。这是该工具目前唯一可用的开源组件。虽然它现在只能与AWS提供的构建一起使用,但该公司表示计划在将来开源该项目,以便其他人可以做出改变。