わんくま同盟 名古屋勉強会 #49
ApiPortで.NETアプリの依存関係を調べよう
2019/11/30(土)
You&I
わんくま同盟 名古屋勉強会 #49
ジコ、ショウカイ。
• H/N: You&I(読み:ユーアンドアイ)
• SNS: @you_and_i
• 出身: 生まれも育ちも名古屋市
• 年齢: 40代
• 本職: 商学部出身の職業プログラマ
• 言語: C++, C#他
•所属: プロ生勉強会 名古屋支部
名古屋アジャイル勉強会
わんくま同盟 名古屋勉強会
2
わんくま同盟 名古屋勉強会 #49
AGENDA
1. ApiPortとは
2. ApiPortの機能
3. ApiPortの使いどころ
3
わんくま同盟 名古屋勉強会 #49
1. ApiPortとは
ApiPortで.NETアプリの依存関係を調べよう
4
わんくま同盟 名古屋勉強会 #49
1. ApiPortとは
• ApiPort(.NET Portability Analyzer)とは、
Microsoftの.NET技術を利用して作成されたア
プリケーションの各種.NET Runtimeのバージョ
ン依存状態をチェックするツールです。
• https://github.com/microsoft/dotnet-
apiport/tree/dev/docs/Console
• 本資料作成時点で最新の2.7.0-alphaをベー
スに話をします。
5
わんくま同盟 名古屋勉強会 #49
1. ApiPortとは
• デモ
6
わんくま同盟 名古屋勉強会 #49
1. ApiPortとは
• Microsoftの.NET技術とは(雑)
– .NET Framework (1.0~4.8)
– .NET Standard (1.0~2.1)
– .NET Core (1.0~3.1)
– .NET (5以降)
• .NET StandardはAPI仕様のみ規定されてお
り、実行ランタイム等はない。
7
わんくま同盟 名古屋勉強会 #49
2. ApiPortの機能
ApiPortで.NETアプリの依存関係を調べよう
8
わんくま同盟 名古屋勉強会 #49
2. ApiPortの利用
• 先ほどのデモでは、Windows用のコンソール版
(ApiPort.exe)を利用しました。
• ApiPortには、機能別に2つのバージョンがありま
す。
1. Online版
2. Offline版
• 機能の違いは、APIの機能確認にインターネット
接続が必要か否かと、Offline版の場合は
HTML出力が使えないの違いです。
9
わんくま同盟 名古屋勉強会 #49
2. ApiPortの利用
• ApiPortの機能
– analyze
• 指定ファイル又はフォルダの解析を行う
– dump
• 指定ファイル又はフォルダの解析をオフラインで行う
– listTargets
• analyzeで指定可能な.NET系APIの種類の一覧表示
– listOutputFormats
• analyzeで指定可能な出力形式の一覧表示
– docId
• インタラクティブモードで適当なキーワードからAPI名検索
10
わんくま同盟 名古屋勉強会 #49
2. ApiPortの利用
• ApiPortの機能(補足)
– analyze
• -h, --help :ヘルプ表示
• -f, --file :ファイル又はフォルダ指定
• -r, --resultFormat :出力形式
• -t, --target :調査する.NET系API指定
• -o, --out :出力ファイル名
• etc
– dump
• Offline版では実装なし
11
わんくま同盟 名古屋勉強会 #49
2. ApiPortの利用
• ApiPortの機能(補足)
– listTargets
12
Name Versions
.NET Core 1.0; 1.1; 2.0; 2.1; 2.2; 3.0
.NET Core + Platform Extensions 2.0; 2.1; 2.2; 3.0
.NET Framework 1.0; 1.1; 2.0; 3.0; 3.5; 4.0; 4.5; 4.5.1; 4.5.2; 4.6; 4.6.1; 4.6.2;
4.7; 4.7.1; 4.7.2; 4.8
.NET Standard 1.0; 1.1; 1.2; 1.3; 1.4; 1.5; 1.6; 2.0; 2.1
.NET Standard + Platform Extensions 1.6; 2.0
ASP.NET Core 1.0; 1.1; 2.0
Mono 2.0; 3.5; 4.0; 4.5; 5.0
Silverlight 2.0; 3.0; 4.0; 5.0
UWP 8.0; 8.1; 10.0; 10.1
Windows Phone 8.1
Windows Phone Silverlight 7.0; 7.1; 8.0; 8.1
Xamarin Android 1.0.0
Xamarin iOS 1.0.0.0
わんくま同盟 名古屋勉強会 #49
2. ApiPortの利用
• ApiPortの機能(補足)
– listOutputFormats
• JSON
• HTML
• Excel
• DGML(ソースコードからのビルド版のみ)
※ソースコードからのビルドには、Windowsの場合
は、VisualStudio 2017、Linux/macOSの
場合は、.NET Core SDKの環境が必要。
13
わんくま同盟 名古屋勉強会 #49
2. ApiPortの利用
• ApiPortのコマンドライン指定例
C:¥> ApiPort.exe analyze ^
-f “C:¥hoge¥fuga” ^
-r HTML ^
-t “.NET Framework,Version=4.8” ^
-t “.NET Core,Version=3.0” ^
-t “Mono,Version=4.5”
14
わんくま同盟 名古屋勉強会 #49
3. ApiPortの使いどころ
ApiPortで.NETアプリの依存関係を調べよう
15
わんくま同盟 名古屋勉強会 #49
3. ApiPortの使いどころ
• どこで使う?
– Unityで開発している時に、依存関係チェックで役に
立つ
16

ApiPortで.NETアプリの依存関係を調べよう

  • 1.
  • 2.
    わんくま同盟 名古屋勉強会 #49 ジコ、ショウカイ。 •H/N: You&I(読み:ユーアンドアイ) • SNS: @you_and_i • 出身: 生まれも育ちも名古屋市 • 年齢: 40代 • 本職: 商学部出身の職業プログラマ • 言語: C++, C#他 •所属: プロ生勉強会 名古屋支部 名古屋アジャイル勉強会 わんくま同盟 名古屋勉強会 2
  • 3.
    わんくま同盟 名古屋勉強会 #49 AGENDA 1.ApiPortとは 2. ApiPortの機能 3. ApiPortの使いどころ 3
  • 4.
    わんくま同盟 名古屋勉強会 #49 1.ApiPortとは ApiPortで.NETアプリの依存関係を調べよう 4
  • 5.
    わんくま同盟 名古屋勉強会 #49 1.ApiPortとは • ApiPort(.NET Portability Analyzer)とは、 Microsoftの.NET技術を利用して作成されたア プリケーションの各種.NET Runtimeのバージョ ン依存状態をチェックするツールです。 • https://github.com/microsoft/dotnet- apiport/tree/dev/docs/Console • 本資料作成時点で最新の2.7.0-alphaをベー スに話をします。 5
  • 6.
  • 7.
    わんくま同盟 名古屋勉強会 #49 1.ApiPortとは • Microsoftの.NET技術とは(雑) – .NET Framework (1.0~4.8) – .NET Standard (1.0~2.1) – .NET Core (1.0~3.1) – .NET (5以降) • .NET StandardはAPI仕様のみ規定されてお り、実行ランタイム等はない。 7
  • 8.
    わんくま同盟 名古屋勉強会 #49 2.ApiPortの機能 ApiPortで.NETアプリの依存関係を調べよう 8
  • 9.
    わんくま同盟 名古屋勉強会 #49 2.ApiPortの利用 • 先ほどのデモでは、Windows用のコンソール版 (ApiPort.exe)を利用しました。 • ApiPortには、機能別に2つのバージョンがありま す。 1. Online版 2. Offline版 • 機能の違いは、APIの機能確認にインターネット 接続が必要か否かと、Offline版の場合は HTML出力が使えないの違いです。 9
  • 10.
    わんくま同盟 名古屋勉強会 #49 2.ApiPortの利用 • ApiPortの機能 – analyze • 指定ファイル又はフォルダの解析を行う – dump • 指定ファイル又はフォルダの解析をオフラインで行う – listTargets • analyzeで指定可能な.NET系APIの種類の一覧表示 – listOutputFormats • analyzeで指定可能な出力形式の一覧表示 – docId • インタラクティブモードで適当なキーワードからAPI名検索 10
  • 11.
    わんくま同盟 名古屋勉強会 #49 2.ApiPortの利用 • ApiPortの機能(補足) – analyze • -h, --help :ヘルプ表示 • -f, --file :ファイル又はフォルダ指定 • -r, --resultFormat :出力形式 • -t, --target :調査する.NET系API指定 • -o, --out :出力ファイル名 • etc – dump • Offline版では実装なし 11
  • 12.
    わんくま同盟 名古屋勉強会 #49 2.ApiPortの利用 • ApiPortの機能(補足) – listTargets 12 Name Versions .NET Core 1.0; 1.1; 2.0; 2.1; 2.2; 3.0 .NET Core + Platform Extensions 2.0; 2.1; 2.2; 3.0 .NET Framework 1.0; 1.1; 2.0; 3.0; 3.5; 4.0; 4.5; 4.5.1; 4.5.2; 4.6; 4.6.1; 4.6.2; 4.7; 4.7.1; 4.7.2; 4.8 .NET Standard 1.0; 1.1; 1.2; 1.3; 1.4; 1.5; 1.6; 2.0; 2.1 .NET Standard + Platform Extensions 1.6; 2.0 ASP.NET Core 1.0; 1.1; 2.0 Mono 2.0; 3.5; 4.0; 4.5; 5.0 Silverlight 2.0; 3.0; 4.0; 5.0 UWP 8.0; 8.1; 10.0; 10.1 Windows Phone 8.1 Windows Phone Silverlight 7.0; 7.1; 8.0; 8.1 Xamarin Android 1.0.0 Xamarin iOS 1.0.0.0
  • 13.
    わんくま同盟 名古屋勉強会 #49 2.ApiPortの利用 • ApiPortの機能(補足) – listOutputFormats • JSON • HTML • Excel • DGML(ソースコードからのビルド版のみ) ※ソースコードからのビルドには、Windowsの場合 は、VisualStudio 2017、Linux/macOSの 場合は、.NET Core SDKの環境が必要。 13
  • 14.
    わんくま同盟 名古屋勉強会 #49 2.ApiPortの利用 • ApiPortのコマンドライン指定例 C:¥> ApiPort.exe analyze ^ -f “C:¥hoge¥fuga” ^ -r HTML ^ -t “.NET Framework,Version=4.8” ^ -t “.NET Core,Version=3.0” ^ -t “Mono,Version=4.5” 14
  • 15.
    わんくま同盟 名古屋勉強会 #49 3.ApiPortの使いどころ ApiPortで.NETアプリの依存関係を調べよう 15
  • 16.
    わんくま同盟 名古屋勉強会 #49 3.ApiPortの使いどころ • どこで使う? – Unityで開発している時に、依存関係チェックで役に 立つ 16