AWS釋出可方便開發者將.NET Framework專案移植到.NET Core,並可在Linux上執行的工具Porting Assistant for .NET,該工具會分析應用程式原始碼,評估公用API和NuGet套件的相依性,標記出與.NET Core不相容的部分,並且引導開發者採用替代的方案。

微軟將.NET發展重心移往.NET Core,.NET Framework 4.8已經是最後一個版本,將來微軟僅會提供臭蟲、安全性與可靠性修復程式,不會再新增功能,當用戶希望繼續發展現有的.NET Framework程式,擴展到Linux和其他開源平臺,便可以考慮將.NET Framework程式移植到.NET Core,不過移植需要花費一些額外的時間資源,更新相依項目的參照。

要移植.NET Framework應用程式到.NET Core上,需要尋找相容的NuGet套件,並在專案檔案中更新這些套件參照,而且因為.NET Core僅包含.NET Framework中可用API的一部分,因此開發者需要為部分API尋找替代。這個移植過程很繁瑣,AWS提到,開發人員必須要查看冗長的編譯錯誤和警告列表,找出最需要優先處理的項目,才能繼續後續的動作。

為了解決這個問題,AWS推出適用.NET的移植輔助工具,來簡化這個移植過程,該工具能夠分析.NET Framework應用程式其相依項目的關係樹,並在有其他可用的替代方案存在時,提供給開發人員參考,而且這個工具的建議還會隨著時間改進,當該工具獲得更多使用模式以及遺失套件的相關訊息時,經學習後,移植工具將會給出不一樣的建議。

AWS表示,這個移植工具跟其他類似工具的不同之處,在於能完整評估套件相依關係樹,而不是只找出不相容的API,而且該工具能處理整個解決方案,因此評估的內容可涵蓋整個解決方案下的多個專案,而不只是分析和匯總單個二進位檔案的資訊,如此能讓開發人員更快地完成移植工作。

要使用這個移植輔助工具,使用者需要先安裝.NET Core 3.1 SDK,並且準備憑證配置檔案,這個憑證配置檔案是用來收集,應用程式所使用的公用API和套件相容性資訊。在移植輔助工具分析完應用程式後,會顯示應用程式中與.NET Core不相容的套件以及API數量,並給出一個可移植得分數,使用者可以根據這個分數評估移植成本,或在多個需要移植的程式,排出處理優先順序。

移植輔助工具中的參照頁籤,會完整顯示解決方案的套件相依圖,AWS提到,這個圖可以協助使用者決定移植工作的起點,而NuGet套件頁籤則顯示解決方案不相容的相依項目,並且列出不受支援的API,以及API被套件參照的數量,協助工具會建議替代方案,使用者可能只要簡單地更新套件版本,或是必須要手動修改程式碼。

移植輔助工具背後的建議引擎模型,來自GitHub上大量套件的分析結果,AWS提到,由於建議引擎具有學習的能力,因此當用戶在分析解決方案的同時,能夠跟AWS共享遙測資料,建議引擎的結果將會越來越好。


Advertisement

更多 iThome相關內容