ASP.NET Web アプリのデバッグに超使える Glimpse

デバッグ作業に便利そうなツールを見つけました。 Glimpse という ASP.NET Web アプリケーション用デバッギングツールです。

Glimpse は本体である"Glimpse"と、アドオンであるパッケージから構成されています。 パッケージは、ASP.NET MVC の各バージョン用や Entity Framework 用、SignalR や Knockout.js のようにメジャー所から Niject、RavenDB といったニッチなプラグインもあったります。 全てのパッケージはこちらで確認して下さい。

パッケージの数が多くて全ては試せてないですし、紹介しきれないのですが、今回は誰もが使いそうな ASP.NET MVC4 用パッケージをインストールしてみましょう。

インストール

Nuget からインストールできます。

まずは Visual Studio を立ち上げて、ASP.NET MVC4 アプリケーションプロジェクトを作成します。

次に、パッケージマネージャコンソールで

PM> Install-Package Glimpse.Mvc4

と入力するか、パッケージマネージャで"Glimpse"で検索して上記のパッケージをインストールして下さい。 本体である Glimpse や依存している Glimpse.AspNet は自動でインストールされます。

Glimpse の実行

では Glimpse によるデバッグを見ていきましょう。 まずはアプリケーションを実行してください。

実行後、別のタブを開いて http://your-project-url/Glimpse.axd と入力すると以下の様なページが表示されます。

f:id:kendik:20130520011738j:plain

このページの"Turn Glimpse On"と書かれたボタンをクリックします。 ページ中段あたりに"Glimpse cookie set 'On'"と表示されれば OK です。

f:id:kendik:20130520011830j:plain

続いて、サンプルアプリケーションを開いているページに戻り、リロードします。

f:id:kendik:20130520012052j:plain

すると、右下に"g"とかかれたアイコンが見つかるはずです。(↑の赤丸で囲んでるとこ)

このアイコンをクリックすると、Chrome Developer Tools や FireBug の様なウインドウが表示され、様々なデバッグ情報を見ることが出来ます。

f:id:kendik:20130520012309j:plain

Glimpse で見ることが出来る情報

Glimpse で参照できる情報はたくさんあり、デバッグウインドウ上部のタブをクリックして、参照情報の種類を切り替えられます。

  • Configuration
    Web.config ファイルに設定した構成情報が見れます。

f:id:kendik:20130520012419j:plain

  • Enviroment
    ホスト名や OS、ASP.NET バージョンなどサーバの環境情報が見れます。

f:id:kendik:20130520013705j:plain

  • Execution
    サーバサイドで実行されたコントローラやアクション、メソッド、それぞれの経過時間などが見れます。 昔アプリケーションコードのチューニングをやった時は全てのメソッドに Stopwatch 仕掛けて時間測って苦労した覚えがあるんですが、これがあるとかなり楽できますね。今回紹介する中ではダントツでオススメです。

f:id:kendik:20130520013749j:plain

  • Metadata
    ビューの表示に使用したモデルのメタデータが見れます。

f:id:kendik:20130520014050j:plain

f:id:kendik:20130520015004j:plain

  • Request
    HttpRequest クラスの各プロパティが見れます。

f:id:kendik:20130520015052j:plain

  • Routes
    設定済みのルーティングと、どのルーティングが使用されたかが見れます。

f:id:kendik:20130520015123j:plain

  • Server
    HttpRequest.ServerValiables に設定されているサーバ環境変数の値が見れます。

f:id:kendik:20130520021601j:plain

  • Session
    Session に現在格納されているデータが見れます。

f:id:kendik:20130520021634j:plain

  • Timeline
    リクエストのタイムラインが見れます。見た目は完全に Chrome Developer Tools の Network なんですが、あっちとは違って、サーバ上でリクエストが開始されてから終了するまでに実行されたイベントが表示されます。Execution ほど細かくなくても良い、と言った場合にも使えるのでかなり重宝すると思います。

f:id:kendik:20130520021716j:plain

  • Trace
    System.Diagnostics.Trace クラスに出力したメッセージを表示できます。printf デバッグ用ですね。

f:id:kendik:20130520021836j:plain

  • Views
    ビューの表示に使用されたビュー名やビューエンジン等の情報が見れます。パーシャルビューの情報も見れて便利です。

f:id:kendik:20130520021912j:plain

ASP.NET デバッグ情報表示の決定版

ASP.NET Web アプリケーションのデバッグと言えば Trace.axd や Elmah、ルーティングは RoutedDebugger なんかがありますが、Glimpse にはそれら全てを吹き飛ばす程の威力があります。開発もかなり活発なようですので今後もさらなる進化が期待できますね-。

軽くググった感じだと、なぜか日本語の情報がほとんど無くて割と残念な感じですが、皆使ってないんですかね?
私はもうコレ無しでは ASP.NET で開発出来ない体になりそうです。ひぎぃ。