Share via


如果你还没有使用Glimpse跟ASP.NET一起去调试和解析,那么你正在错过它

[原文发表地址]If you're not using Glimpse with ASP.NET for debugging and profiling, you're missing out

[原文发表时间] 2013-07-20

Glimpse NuGet packages

我已经写了一篇关于Glimpse的博客自从我第一次在Mix 2011年的开源大会上见到它之后。它很普通, 但是坦白讲,Glimpse很有用, 它值得很多人去了解。

从Visual studio中你的ASP.NET 应用程序 ,使用NuGet去安装Glimpse。你需要安装正确的Glimpse 包对于你正在使用的ASP.NET功能 。例如:我正在使用MVC4和Entity Framework 5, 所以我会使用NuGet和:

 install-package Glimpse.MVC4
install-package Glimpse.EF5

这些包和核心Glimpse库相连接,并且针对特定的ASP.NET模块和处理Glimpse会搜集关于你的应用程序的所有信息并把它们呈现在客户端。确保为你的项目类型选择正确的NuGet包。

Glimpse 1.4.0的发布和现在经常使用的1.5.0 ,它们添加了了不起的HUD(Heads Up Display)特性,提高了Glimpse的魅力。当你的鼠标滑过每一段时,它会显示很多详细信息包括HTTP请求,AJAX请求数据,深层数据库交互等等更多其他信息。

Glimpse's new HUD

这里我演示了当鼠标滑过一个段时,你能看的它显示第一页需要的时间,同时它能精确地显示每一个交互动作花费多长时间。这些数据是通过显示连接数据库获得的。

The Glimpse HUD expanded

你可以在HUD视图和标准的Glimpse视图方便的切换。能够这么做的原因是每一个Glimpse标签都是一个独立的插件。这里有一篇文章创建Glimpse插件. 如果你正在使用RavenDB,或者NHibernate, 或者SignalR或者其它的,你都可以通过使用Glimpse标签应用到你正在进行的工程里面。

你可以通过Cookies打开或者关闭你的Glimpse, 如果你愿意的话你也可以建立安全策略对应你的需求。Glimpse不是在后台操作运行的,当你需要使用它的时候你完全可以控制它。可能在本地或者只有当你debugging时, 或者可能一直使用某一特定的Cookies,这完全决定于你。

下面的例子里,你能够看到一个真实的SQL query

通过我的整个 Framework代码运行 着,而且也能看到它运行所需要的时间。我不需要去改变我的任何代码或者做任何其他的事情,仅仅需要安装Glimpse。Glimpse增加了模块和处理部分,而且能根据我的选择安装Glimpse策略去关闭或者打开Glimpse。 甚至我能够把Glimpse放进产品里面让它仅对某些特定的请求打开,这提供了一个性能分析的工具,而且可以让我在任何想要使用的时候去选择使用它。

EF SQL queries viewed within Glimpse

大部分人极有可能在使用Chrome, IE和Firefox浏览器时,使用F12打开浏览器开发工具,而且也已经知道时间轴了。但是需要记住的一点是Glimpse是客户端的JavaScript和HTML的结合 - 它不是一个浏览器插件 – 它的大量的插件是在服务器端,这些服务器端的插件视图模式要比客户端显示的要强大的多。

Glimpse的时间轴能够精确地给你展示正在发生在服务端的事情,每个事情运行花费的时间,而且告诉你它们是怎么共同工作的。

image

Glimpse包含的Sessions全部会被跟踪,而且可以被选择性的命名。尽管服务器端正在搜集所有正在进行的数据连接,你能够拉出一个Glimpse类型的浏览器弹出窗体,然后使用其它浏览器去连接这些sessions。

下面的例子是我使用一个来自ElectricPlum的iPhone 手机模拟器检测来自于其它浏览器的数据请求。

Using Glimpse to debug remotely against an iPhone Emulator

Glimpse是一个完全开源的工具,而且它满足Apache 2.0证书标准。读完这篇文章可能会对你有所帮助,但是在我看来,最有意思的事情是学会创建一个Glimpse标签 – 通过展开Glimpse去搜集数据和展示新的数据。这些Glimpse标签不仅能够展示技术性的资源,甚至是关于你的应用程序的特定信息或者是关于你的应用程序风格的商业性资源也可以展示出来。例如,Umbraco CMS能够制作一个Glimpse标签,把一些配置或者技术性的Umbraco特殊的详细信息放在标签里面。商业性应用程序的标签里就能够展示税额信息或者消费记录信息内容

Glimpse是如此的有用,以至于在我创建每一个有意义的新的工程之后要做的第一件事就是安装它。它取代了Mini-Profiler,作为我的产品探查器用于web应用程序。如果你使用ELMAH去搜集和管理你的应用程序的错误,那么你在使用Glimpse ELMAH的一个插件

把这部分拿出来和大家分享,如果有问题可以在Twitter上面和AnthonyNik讨论Glimpse,同时感谢他们的工作。