.NET
ASP.NET
WPF
ツール
WindowsForm

[.NET] 便利な実行時インスペクションツール(フリー/オープンソース)~丸見え&診断、動的変更も~ ※掘り出し物あり


Windows フォーム


HawkEye 2

実行時にプロパティ、フィールドの確認/変更、イベントハンドラの確認/実行などができます。

あまり知られていませんが(日本語の紹介記事はほかに見たことがない)、すごいツールです。重宝します。

左上の◎を実行中の画面コントロールにドラッグして使います。

Hawkeye 2.png

CodePlex で開発されていた HawkEye(.NET 3.5 まで)を引き継いだ形で、.NET 4 以降にも対応しています。


wfSpy

実行時にプロパティの確認/変更ができます。

ソースコードをダウンロードしてビルドします。

管理者として実行する必要があります。


WPF/Windows ストアアプリ/UWP アプリ

Visual Studio 2015 以降では、デバッグ中に [デバッグ]-[ウィンドウ] から「ライブビジュアルツリー」「ライブプロパティエクスプローラー」が使用できます。

ここではデバッグなし実行で使用できるオーブンソース/Windows SDK 付属のツールをご紹介します。


WPF Inspector

実行時に XAML 要素をツリー表示し、プロパティやバインドされたビューモデルの中身を確認/変更できます。

リソース、トリガー、スタイルを確認することもできます。

WPF 用です。


Inspect

UIオートメーションを通してUI要素をツリーで確認できます。

UI Spy の後継という位置づけで、MSAAI (Microsoft Active Accessibility) にも対応しています。

ネイティブプログラムです。

Windows 用のソフトウェア開発キット (Windows SDK) に含まれています。

Windows SDK とエミュレーターのアーカイブ


%ProgramFiles(x86)%\Windows Kits\<major_version>\bin\<version>\<platform>\inspect.exe


※<> 内は環境によって異なります。


Visual UI Automation Verify (Visual UIA Verify)

UIオートメーションの実装を検証するUIテストライブラリのGUIドライバです。

UI要素をツリーで確認できます。

ツリーで選択された XAML 要素は実際のウィンドウ上でハイライト表示されます。

.NET アプリケーションです。

Windows 用のソフトウェア開発キット (Windows SDK) に含まれています。

Windows SDK とエミュレーターのアーカイブ


%ProgramFiles(x86)%\Windows Kits\<major_version>\bin\<version>\<platform>\UIAVerify\VisualUIAVerifyNative.exe


※<> 内は環境によって異なります。


ASP.NET


Glimpse

実行時にブラウザ下部に診断結果が表示されます。

コントロールツリー、サーバーイベント、各フェーズの処理時間、リクエスト、セッション、ルート解析など、様々な情報を確認することができます。

WebフォームでもMVCでも使用できます。


Prefix

ASP.NET Core に対応しています。

《セットアップ》

 (1) Prefix をインストールします。

 (2) StackifyMiddleware パッケージを Nuget でインストールします。

 (3) Startup クラスの Configure メソッドで StackifyMiddleware をミドルウェア登録(UseMiddleware)します。

 (4) タスクトレイの Prefix コンテキストメニューから [Enable .NET Profiler] を選択して有効化します。

 (5) タスクバルーンで促されたら Visual Studio を再起動します。

 (6) Webアプリケーションを IIS Express で開始します。

 (7) タスクトレイの Prefix コンテキストメニューから [Open in browser] を選択し、トレースページを開きます。


Application Insights

監視データを Microsoft Azure に送信し、ポータルで診断結果を確認できます。

Azure アカウントが必要です。

料金や無料枠についてはこちらをご参照ください。

アプリケーションが Azure 上でホスティングされている必要はなく、「インストルメンテーション キー」で関連づけることにより、オンプレミス運用や開発環境のデバッグ目的でも使用できます。

監視適用方法には「ビルド時(SDK)」「実行時(Status Monitor)」の二種類があります。

オペレーティングシステム、IIS サーバー、サーバーアプリケーション、データベースアクセス、クライアントスクリプトが監視対象となり、リクエスト応答時間、内部処理のタイムライン、SQL、トレースログ、エラー内容、CPU/メモリ/ネットワーク使用率、ユーザー数とセッション数などが診断結果として確認できます。

カスタムクエリによる監視データ抽出、グラフ表示が可能な Analytics というツールも提供されています。


ネットワーク


Fiddler

ブラウザ/非ブラウザの通信をキャプチャしてくれます。

リクエスト/レスポンスを上下に並べて、テキスト/JSON/XML/クッキーなど様々なビューで確認できます。