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 と入力すると以下の様なページが表示されます。
このページの"Turn Glimpse On"と書かれたボタンをクリックします。 ページ中段あたりに"Glimpse cookie set 'On'"と表示されれば OK です。
続いて、サンプルアプリケーションを開いているページに戻り、リロードします。
すると、右下に"g"とかかれたアイコンが見つかるはずです。(↑の赤丸で囲んでるとこ)
このアイコンをクリックすると、Chrome Developer Tools や FireBug の様なウインドウが表示され、様々なデバッグ情報を見ることが出来ます。
Glimpse で見ることが出来る情報
Glimpse で参照できる情報はたくさんあり、デバッグウインドウ上部のタブをクリックして、参照情報の種類を切り替えられます。
- Configuration
Web.config ファイルに設定した構成情報が見れます。
- Enviroment
ホスト名や OS、ASP.NET バージョンなどサーバの環境情報が見れます。
- Execution
サーバサイドで実行されたコントローラやアクション、メソッド、それぞれの経過時間などが見れます。 昔アプリケーションコードのチューニングをやった時は全てのメソッドに Stopwatch 仕掛けて時間測って苦労した覚えがあるんですが、これがあるとかなり楽できますね。今回紹介する中ではダントツでオススメです。
- Metadata
ビューの表示に使用したモデルのメタデータが見れます。
- Model Binding
リクエストのモデルバインディングが見れます。
- Request
HttpRequest クラスの各プロパティが見れます。
- Routes
設定済みのルーティングと、どのルーティングが使用されたかが見れます。
- Server
HttpRequest.ServerValiables に設定されているサーバ環境変数の値が見れます。
- Session
Session に現在格納されているデータが見れます。
- Timeline
リクエストのタイムラインが見れます。見た目は完全に Chrome Developer Tools の Network なんですが、あっちとは違って、サーバ上でリクエストが開始されてから終了するまでに実行されたイベントが表示されます。Execution ほど細かくなくても良い、と言った場合にも使えるのでかなり重宝すると思います。
- Trace
System.Diagnostics.Trace クラスに出力したメッセージを表示できます。printf デバッグ用ですね。
- Views
ビューの表示に使用されたビュー名やビューエンジン等の情報が見れます。パーシャルビューの情報も見れて便利です。
ASP.NET デバッグ情報表示の決定版
ASP.NET Web アプリケーションのデバッグと言えば Trace.axd や Elmah、ルーティングは RoutedDebugger なんかがありますが、Glimpse にはそれら全てを吹き飛ばす程の威力があります。開発もかなり活発なようですので今後もさらなる進化が期待できますね-。
軽くググった感じだと、なぜか日本語の情報がほとんど無くて割と残念な感じですが、皆使ってないんですかね?
私はもうコレ無しでは ASP.NET で開発出来ない体になりそうです。ひぎぃ。