Alan Tsai 的學習筆記


學而不思則罔,思而不學則殆,不思不學則“網貸” 為現任微軟最有價值專家 (MVP)、微軟認證講師 (MCT) 、Blogger、Youtuber:記錄軟體開發的點點滴滴 著重於微軟技術、C#、ASP .NET、Azure、DevOps、Docker、AI、Chatbot、Data Science

[.Net Core 與 .Net Standard 實戰教學][Lab][03-2]使用.NET API Portability分析API支援程度

image
圖片來源:https://pixabay.com/en/workshop-rustic-hammer-wrench-tool-2608390/

在上一個lab:[03-1]現有.Net Framework Lib 改成 .Net Standard 了解了如何把一個現行的.Net Framework邏輯移轉到Target .Net Standard以達到最大跨平台共用邏輯的需求。在操作的過程中有特意轉成.Net Standard 1.6來模擬不支援的api DataSet, 並且了解如何使用 Api Browser來查看api支援度。

不過,難道沒有工具能夠分析現行程式碼是否支援那些target嗎?

在這一個lab將會使用.NET API Portability來達到分析支援度的情況。

上個lab的最後成果的程式碼可以再github看到:https://github.com/alantsai-samples/2017-10-14-net-core-workshop

git標籤:lab3/1-port-net-standard-finish

兩種方式取得:

  1. 用git clone然後在checkout到lab3/1-port-net-standard-finish
  2. 從github release下載:下載鏈接

操作步驟

  • 安裝.NET API Portability
  • 設定和對專案進行分析
  • 檢視結果

安裝.NET API Portability

下載並且安裝套件 .NET API Portability

可以再這個鏈接下載到: https://marketplace.visualstudio.com/items?itemName=ConnieYau.NETPortabilityAnalyzer

目前支援:

  • Visual Studio 2015
  • Visual Studio 2017

先把所有Visual Studio關掉。

然後對下載下來的vsix點兩下。

安裝和一般VS套件一樣,就是下一步到底。

設定和對專案進行分析

NorthwindDalNetStandard專案 點 右鍵 -> 選擇 Portability Analyzer Settings
image
在打開的視窗,能夠 設定:
  1. 分析結果的檔案格式
  2. 要對那個platform分析
image
設定好了之後,對 NorthwindDalNetStandard右鍵 -> Analyze Project Portability
image
執行完了之後,會跳出一個視窗,可以點產生出來的excel
image

檢視結果

第一頁簽是結論,可以看出來 .Net Standard 1.6有部分不支援
格子有被標黃,並且數字不是100,表示只有 75.93 的api在.Net Standard 1.6是有支援
image
切換下面的頁簽到Details
可以看到詳細的API,並且有問題的都是DataSet的部分 - 這個分析結果甚至能夠告訴你 .Net Standard 2.0就有支援了
image

透過.NET API Portability 工具能夠分析的出一個粗略轉到.Net Standard會需要花的工,因此可以用來做一個事前的工作量評估工具。

不過還是要注意,這個只是一個參考值,有些問題可能會是runtime才遇到,那這個工具就無能為力。

相關資源

官方github repo
https://github.com/microsoft/dotnet-apiport
Visual Studio Marketplace 下載
https://marketplace.visualstudio.com/items?itemName=ConnieYau.NETPortabilityAnalyzer
官方文件介紹
https://docs.microsoft.com/zh-tw/dotnet/standard/portability-analyzer

如果文章對您有幫助,就請我喝杯飲料吧
街口支付QR Code
街口支付QR Code
台灣 Pay QR Code
台灣 Pay QR Code
Line Pay 一卡通 QR Code
Line Pay 一卡通 QR Code
街口支付QR Code
支付寶QR Code
街口支付QR Code
微信支付QR Code
comments powered by Disqus