博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[译]Profile and debug your ASP.NET MVC app with Glimpse
阅读量:5136 次
发布时间:2019-06-13

本文共 2325 字,大约阅读时间需要 7 分钟。

原文:

 

Glimpse为ASP.NET程序提供了详细的性能、调试、诊断功能. 它在每一个页面的下面展示了关键的性能指标. 当你需要了解服务器的运行状况能让你深入到你的应用. Glimpse提供了非常多的有价值的信息我建议你在开发环境中都使用它.   和  提供了一个客户端的视图, Glimpse提供一个数据来自服务端的详细视图. 下面的教程的重点集中在使用在ASP.NET MVC和EF中使用Glimpse, 当然Glimpse还有For XXX的很多包.  官方文档点这. Glimpse是一个开源系统.

 

安装Glimpse

安装Glimpse Mvc5 和 Glimpse EF6包:

Search for Glimpse.EF

 

或者

PM> Install-Package Glimpse.MVC5 

PM> Install-Package Glimpse.EF6

为localhost打开Glimpse功能

打开http://localhost:<port #>/glimpse.axd页面选择右上角的Turn Glimpse On按钮

 

现在打开localhost, Heads Up Display (HUD) 显示在页面的底部.

 

 详细展示了一些耗时信息. 这些性能数据能立即告诉你问题在哪 - 在你开始测试前. 点击右下角的G出现下面一个信息面板:

在上面的图中, the 被选中, 显示了管道中Action和Filter的时序信息. 

Timeline 标签

public ActionResult Index(int? id, int? courseID, int ? eager){    var viewModel = new InstructorIndexData();    viewModel.Instructors = db.Instructors        .Include(i => i.OfficeAssignment)        .Include(i => i.Courses.Select(c => c.Department))        .OrderBy(i => i.LastName);    if (id != null)    {        ViewBag.InstructorID = id.Value;        viewModel.Courses = viewModel.Instructors.Where(            i => i.ID == id.Value).Single().Courses;    }    if (courseID != null)    {       ViewBag.CourseID = courseID.Value;       // Eager loading       if (eager != null && eager > 0)       {          ViewBag.eagerMsg = "Eager Loading";          viewModel.Enrollments = viewModel.Courses.Where(              x => x.CourseID == courseID).Single().Enrollments;       }       else {         // Explicit loading          ViewBag.eagerMsg = "Explicit Loading";        var selectedCourse = viewModel.Courses.Where(x => x.CourseID == courseID).Single();        db.Entry(selectedCourse).Collection(x => x.Enrollments).Load();        foreach (Enrollment enrollment in selectedCourse.Enrollments)        {            db.Entry(enrollment).Reference(x => x.Student).Load();        }        viewModel.Enrollments = selectedCourse.Enrollments;       }    }    return View(viewModel);}

上面的代码允许我们传递一个参数(eager)去显示数据. 在下面的图中, 显示了Index Action的执行情况:

在代码中我们把eager是设为1:

 

你可以把鼠标放在相应的事件色块中查看详细的信息:

 

模型绑定Model Binding

提供给我们一些信息帮助我们了解我们的表单参数是怎么绑定到模型上的或者为什么有些没有按照我们的预想绑定. 看到下面图片右边中间部分的 ? 图标没,  点击它可以到Glimpse的帮助页面.

路由

Routes选项卡帮助我们debug和了解路由情况. 在下面的图中, 产品路由被选中 (绿色的就是选中的).

路由constraints, Areas和data tokens都能显示出来. 更多信息见和.

转载于:https://www.cnblogs.com/irocker/p/profile-and-debug-your-aspnet-mvc-app-with-glimpse.html

你可能感兴趣的文章
Linux环境下Redis安装和常见问题的解决
查看>>
玩转小程序之文件读写
查看>>
HashPump用法
查看>>
cuda基础
查看>>
virutalenv一次行安装多个requirements里的文件
查看>>
Vue安装准备工作
查看>>
.NET 母版页 讲解
查看>>
Android Bitmap 和 Canvas详解
查看>>
最大权闭合子图
查看>>
oracle 创建暂时表
查看>>
201421410014蒋佳奇
查看>>
导入导出数据库和导入导出数据库表
查看>>
linux下操作mysql
查看>>
【03月04日】A股滚动市盈率PE历史新低排名
查看>>
Xcode5和ObjC新特性
查看>>
jvm slot复用
查看>>
高并发系统数据库设计
查看>>
LibSVM for Python 使用
查看>>
入坑的开始~O(∩_∩)O~
查看>>
Centos 7.0 安装Mono 3.4 和 Jexus 5.6
查看>>