程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 應用工具 .NET Portability Analyzer 分析遷移dotnet core,portabilitydotnet

應用工具 .NET Portability Analyzer 分析遷移dotnet core,portabilitydotnet

編輯:關於.NET

應用工具 .NET Portability Analyzer 分析遷移dotnet core,portabilitydotnet


大多數開發人員更喜歡一次性編寫好業務邏輯代碼,以後再重用這些代碼。與構建不同的應用以面向多個平台相比,這種方法更加容易。如果您創建與 .NET Core 兼容的.NET 標准庫,那麼現在比以往任何時候都更接近於這一現實。

但是,現有的 .NET Framework 庫怎麼辦呢?要使這些跨平台兼容並將它們轉換成 .NET 標准庫,需要做多少工作呢? 使用工具 .NET Portability Analyzer進行分析。利用幾個簡單的技術並進行一些項目文件修改,這有助於簡化這一流程。

.NET Portability Analyzer 工具是 .NET Framework 團隊創建的 Visual Studio 擴展。您可以與支持擴展的 Visual Studio 的任何最新版本配合使用該工具。只需將 Portability Analyzer 指向您的程序集或項目,該工具就會針對您為了提高兼容性而應使用的 API 提供摘要、詳細報告和建議。對於項目,該工具會列出錯誤消息並將您轉到需要更改的代碼行。

.NET Portability Analyzer 包含有一個稱作 API Portability Analyzer 的同級控制台應用(您可以從https://github.com/Microsoft/dotnet-apiport/releases 中下載該應用),它生成的結果類似於 Portability Analyzer 生成的結果。在本文中,我將著重介紹如何使用 Visual Studio 擴展。

進行相應設置

對於要跨平台采用的庫,它應適當分解且包含大部分業務邏輯。UI 代碼應該被分離到其他項目。不過,由於 .NET Core 是 .NET Framework 的子集,因此,即使對您的代碼進行適當分解,您的庫可能正在使用 .NET Core 中不支持的 API。

在某些情況下,存在可以完成同樣事情的備用 API。在這些情況下,Portability Analyzer 將建議使用一個備用 API。在其他情況下,沒有 API 可以替代而且您需要分解出特定於平台的代碼。最後,即使您不知道程序集的分解情況,也可以使用 Portability Analyzer 來執行快速評估。

這個擴展支持 Visual Studio 2013 或 2015,下一步是安裝該擴展。在 Visual Studio 庫中搜索 .NET Portability Analyzer 或直接到 https://visualstudiogallery.msdn.microsoft.com/1177943e-cfb7-4822-a8a6-e56c7905292b 下載安裝。

image

單擊“下載”按鈕並選擇“打開”。通過下一個對話框,您可以選擇要將該擴展應用到的 Visual Studio 版本。單擊“安裝”可啟動安裝,然後單擊“關閉”可退出該對話框。現在,您可以選擇您的目標平台並分析程序集或項目。

選擇目標平台

默認情況下,Portability Analyzer 提供 .NET Framework、 .NET Core App、.NET Standard 、ASP.NET Core、 Mono 和 Windows Phone 的結果。您可以通過以下步驟指定其他選項:訪問 Visual Studio 中“工具”|“選項”菜單中的 .NET Portability Analyzer 條目並選擇您要面向的平台集

image

運行 Portability Analyzer

有兩種方法可以用來分析程序集和項目:

  • 若要分析已構建的程序集或可執行文件,請從 Visual Studio 的“分析”菜單中訪問 Portability Analyzer 並浏覽至程序集位置。使用此選項,該工具會生成摘要和詳細報告。
  • 若要分析項目,請右鍵單擊解決方案資源管理器中的目標項目。選擇“分析”|“分析程序集可移植性,這特定於您所選的項目。使用此選項,該工具會生成摘要、詳細報告並將消息輸出到提供文件名和問題發生所在行號的錯誤列表。您還可以雙擊每條消息,然後該工具會將您導航到指定的代碼行。

image

為了測試該工具,我選擇了一個.NET 4.5.2的項目,測試下.NET Core的兼容性,Portability Analyzer 可以讓我一覽我需要做的工作,而無需實際轉換該項目、更改目標以及試圖解決編譯錯誤。

我運行該工具,並且結果真是鼓舞人心。下圖顯示摘要、詳細報告、錯誤消息和報告 URL。根據摘要,我發現我的庫與所有這些平台都非常兼容。image

詳細結果通過類似電子表格的形式僅顯示一個或多個目標平台不支持的 API。可輕松掃描詳細信息。它們標有一個紅色的 X,用來指明不支持 API 的位置,而綠色的標記則指明支持。值得注意的是,各個平台均支持且無需任何重構的 API 不會在此報告中列出。

詳細信息還包括推薦的更改內容列,其中指向可跨多個平台工作的備用 API。在詳細信息的底部,該報告包含“返回到摘要”鏈接。這將導航回到頂部的摘要。雖然我的結果非常短,但是“返回到頂部”功能對於較長的報告非常有用。

由於我已經分析了一個項目,因此我的報告包含指明文件和發生使用的行號的“錯誤列表”消息。如果單擊該消息,此工具將轉到該消息指明的文件和行。

如果您要在 Visual Studio 外部訪問這些結果,可以在位於和目標程序集相同的項目目錄中的 HTML 文件 (ApiPortability­Analysis.htm) 中找到這些結果。該位置在報告頂部中的 URL 部分中指明

image

除了這個工具還有一個在線的分析工具 https://icanhasdot.net/, 只要把你的項目的packages.config, project.jsonpaket.dependencies 文件上傳,網站就會給你分析你的項目依賴的第三方庫的.NET Core是否已經有了支持的庫。

image

總結

Portability Analyzer不僅幫助我快速地評估我需要做哪些工作才能使我的庫可以跨平台使用,而且還認識到從我的代碼到方法調用和屬性使用中的所有特定於平台的問題。它還建議使用哪些備用 API,通過在線的工具分析依賴的第三方庫是否已經有了.NET Core的支持。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved