使用MiniProfiler给Asp.net MVC和Entity Framework号脉(附源码)
2013-07-28 11:42
741 查看
在学习python开发框架pylons/pyramid的过程中,里面有个非常棒的页面性能监控功能,这样在开发过程中,你能清楚的知道当前页面的性能以及其它参数。
这里介绍一下如何给Asp.netMVC和EntityFramework也添加上性能监控,让你在开发过程中随时掌握当前程序运行的信息。
这里是在Autofac+MVC+EF篇的源码基础上,一步一步的介绍添加Profiler的过程。
如果有兴趣了解Autofac的应用,可以看这里IoC容器Autofac(4)-Autofact+Asp.netMVC+EFCodeFirst(附源码)
最终源代码在这里MiniProfiler.zip
阅读目录:
一、MiniProfiler应用的结果
二、下载源码,运行程序
三、添加MVCProfiler
四、添加EntityFrameworkProfiler
五、总结
这里介绍一下如何给Asp.netMVC和EntityFramework也添加上性能监控,让你在开发过程中随时掌握当前程序运行的信息。
这里是在Autofac+MVC+EF篇的源码基础上,一步一步的介绍添加Profiler的过程。
如果有兴趣了解Autofac的应用,可以看这里
最终源代码在这里
阅读目录:
一、MiniProfiler应用的结果
二、下载源码,运行程序
三、添加MVCProfiler
四、添加EntityFrameworkProfiler
五、总结
一,MiniProfiler应用的结果
先看看应用了MiniProfiler的结果二,下载源码,运行程序
1.下载源代码
源代码的下载地址是2.使用Nuget下载依赖
源代码使用了Nuget的包管理,可以非常方便的下载外部引用。Nuget的使用,可以看这里3.创建数据库
修改web.config中的数据库链接字符串,并创建对应的数据库School,然后使用EF的Migration创建表结构和初始化数据在"PackageManagerConsole”中输入”Update-Database”命令。
如果在运行命令的过程中出现了错误:
PackageManagerConsoleUpdate-DatabaseCommandNotFoundExceptiononlyinaspecificVSproject
那么在执行Update-Database命令之前,先运行
Install-PackageEntityFramework–IncludePrerelease
4.最后运行程序,页面如下:
三,添加MVCProfiler
1.通过Nuget添加MiniProfiler引用
2.在_Layout.cshmlt中添加MiniProfiler
在_Layout.cshtml中添加的MiniProfiler的相关代码,这样就能在每个页面上输出页面的访问信息由于MiniProfiler生成的js需要依赖于Jquery,所以记得添加对于Jquery的引用。
@usingStackExchange.Profiling <!DOCTYPEhtml> <htmllang="en"> <head> <title>Test</title> <scripttype="text/javascript"src="~/Scripts/jquery-2.0.3.min.js"></script> </head> <body> @RenderBody() @MiniProfiler.RenderIncludes() </body> </html>
3.添加MiniProfiler的Handler
上面@MiniProfiler.RenderIncludes()会在页面上生成一段js类似于
<scriptasynctype="text/javascript"id="mini-profiler"src="/mini-profiler-resources/includes.js?v=xwYPDDH1blvqmxgsBweNC++H7CFU3KGQ+zFcVlJPsXw="……
我们的系统中,应当添加Handler来处理对于上面的include.js的处理,把它交给MiniProfiler的dll来处理这个js的请求。
<handlers>
<addname="MiniProfiler"path="mini-profiler-resources/*"verb="*"type="System.Web.Routing.UrlRoutingModule"resourceType="Unspecified"preCondition="integratedMode"/>
</handers>
4.在Global.asax中启动MiniProfiler记录
如下,在每个request开始和结束的时候,调用MiniProfiler来记录信息。
protectedvoidApplication_BeginRequest()
{
if(Request.IsLocal)
{
MiniProfiler.Start();
}
}
protectedvoidApplication_EndRequest()
{
MiniProfiler.Stop();
}
5.完成所有的工作后,重新刷新页面
重新启动,刷新页面,就能看到MiniProfiler记录的结果了。四,添加EntityFrameworkProfiler
1,从Nuget中添加MiniProfiler.EF
2.在Global.asax中,添加代码
protectedvoidApplication_Start()
{
MiniProfilerEF.Initialize();
………
}
3.刷新页面
刷新的页面,能够发现MiniProfiler问我们记录了EF访问数据的信息五,总结
MiniProfiler是平时开发的利器,以可视化的方式让你随时监控开发过程中的性能问题。MiniProfiler提供了不只是提供了MVC和EF扩展,还有针对windows开发,WCF,NHibernate等.
MiniProfiler应该作为项目开发中的一个标配,如果你的项目中,还没有使用到,赶快试一试,它一定能够为你的开发带来意向不到的正能量。
相关文章推荐
- 使用MiniProfiler给Asp.net MVC和Entity Framework号脉(附源码)
- 使用MiniProfiler给Asp.net MVC和Entity Framework号脉(附源码)
- 使用MiniProfiler调试ASP.NET MVC网站性能
- 实例分析ASP.NET在MVC5中使用MiniProfiler监控MVC性能的方法
- 使用MiniProfiler调试ASP.NET MVC网站性能
- [Asp.net mvc] 在Asp.net mvc 中使用MiniProfiler
- 使用MiniProfiler调试ASP.NET MVC网站性能
- 使用MiniProfiler调试Asp.net Mvc性能
- ASP.NET MVC5 使用MiniProfiler 监控MVC性能
- 使用MiniProfiler调试ASP.NET MVC网站性能
- 使用StructureMap扩展ASP.NET MVC三层结构框架系列文章总结篇(附源码下载)
- ASP.NET MVC性能优化工具 MiniProfiler
- 使用MvcMiniProfiler调试ASP.NET MVC网站性能
- 使用MvcMiniProfiler调试ASP.NET MVC网站性能
- asp.net mvc ef 性能监控调试工具 MiniProfiler
- ASP.NET MVC使用ActionFilterAttribute实现权限限制的方法(附demo源码下载)
- ASP.NET MVC性能调试工具-MvcMiniProfiler
- 使用StructureMap扩展ASP.NET MVC三层结构框架系列文章总结篇(附源码下载)
- 使用MiniProfiler调试ASP.NET web api项目性能