Weitere ähnliche Inhalte
Ähnlich wie 20130603 aspnet勉強会 実践的debugging (20)
20130603 aspnet勉強会 実践的debugging
- 2. Who...?
• My name is...
• @kumake1004 / kumake
• はてなだけ kendik
• My work is...
• 都内某ベンチャー勤務
• Pro Exceler
• 動作検証、調査を行ったり
• 調整(要件、人、スケジュール)に奔走したり
• ごく稀にプログラミング
- 11. こんな汚いコードに
public ActionResult HogeAction(int id)
{
var sw = Stopwatch.StartNew();
var model = _repo.Find(id);
sw.Stop();
Console.WriteLine("Elapsed1 > " + sw.ElapsedMilliseconds);
sw.Restart();
if(model.Hage())
{
var sw2 = Stopwatch.StartNew();
model.Something = "hogehoge";
_repo.Save();
sw2.Stop();
Console.WriteLine("Elapsed2 > " + sw2.ElapsedMilliseconds);
}
sw.Stop();
Console.WriteLine("Elapsed1 > " + sw.ElapsedMilliseconds);
sw.Restart();
return View(model);
}
- 16. でも実は...
• 計測箇所にも修正が必要
using StackExchange.Profiling;
...
// 計測用オブジェクトを作って
var profiler = MiniProfiler.Current;
// 計測したい処理を using 内に
using (profiler.Step("Set page title"))
{
ViewBag.Title = "Home Page";
}
using (profiler.Step("Doing complex stuff"))
{
using (profiler.Step("Step A"))
{
Thread.Sleep(100);
}
using (profiler.Step("Step B"))
{
Thread.Sleep(250);
}
}
- 32. 改めて Glimpse
• OSS の Debug / Diagnostic ツール
• Nuget からインストール可能
• PM> Install-Package Glimpse
• プラグインによってデバッグ出来る内容が
異なる
• プラグインも Nuget からインストールで簡単
• e.g. Glimpse.AspNet, Glimpse.Mvc4,
Glimpse.EF6, Glimpse.SignalR ...
- 34. Glimpse でどうなる?
• コレ一つでほとんどのケースをデバッグ可
• Entity Framework のクエリ / duration 確認可能
• アクションメソッドの duration 確認可能
• Routing Resolution も確認可能
• モデルバインディングも確認可能
• リモート環境のデバッグが出来る
• 他のデバッグツールが不要
• ツールは尐ない方が良いよね!
• デバッグノウハウも共有
• 実装への影響もなし
• Web.config への修正だけで OK
- 35. DEMO
• Glimpse のインストール
• Glimpse デバッグ画面の確認
• いくつかの機能を実際に確認
• Configuration
• Session
• Model Binding
• Ajax
• Trace
• Execution
• Entity Framework SQL
• PM> Install-Package Glimpse.EF5
• Web.config の修正