在我的Web应用程序上测试各种网页的性能时,我注意到firebug中的网络选项卡(瀑布图)存在一些空白.在某些情况下,这些可能占用整个请求的一半时间.
通常会导致这些差距的原因是什么?

我有类似的课程:
Person
{
Name
Address
}
Employee : Person
{
Compensation - object
}
Visitor : Person
{
}
Run Code Online (Sandbox Code Playgroud)
如果我写linq:
var persons = Context.Persons
.Include("Compensation");
Run Code Online (Sandbox Code Playgroud)
我收到错误:
指定的包含路径无效.EntityType"Person"未声明名为"Compensation"的导航属性.
如果我这样做,它可以正常工作
var persons = Context.Persons
.OfType<Employee>()
.Include("Compensation");
Run Code Online (Sandbox Code Playgroud)
但我想让员工和访问者在同一个查询中.
看起来在EF4 UserVoice上有此功能的请求:http: //data.uservoice.com/forums/72025-ado-net-entity-framework-ef-feature-suggestions/suggestions/1249289-include-property-of衍生类?REF =标题
但它看起来不会很快就会完成.
这个问题有什么好的解决方法?
我正在尝试使用适当的REST网址MVC.为此,我切换了默认路由:
{controller}/{action}/{id}
Run Code Online (Sandbox Code Playgroud)
至
{controller}/{id}/{action}
Run Code Online (Sandbox Code Playgroud)
而不是:
/Customer/Approve/23
Run Code Online (Sandbox Code Playgroud)
现在有
/Customer/23/Approve
Run Code Online (Sandbox Code Playgroud)
ActionLink似乎工作正常,但CustomerController中的以下代码:
[CustomAuthorize]
[HttpGet]
public ActionResult Approve(int id)
{
_customerService.Approve(id);
return RedirectToAction("Search"); //Goes to bad url
}
Run Code Online (Sandbox Code Playgroud)
最终在网址上/Customer/23/Search.虽然它应该去/Customer/Search.不知怎的,它记得23 (id).
这是我在global.cs中的路由代码
routes.MapRoute(
"AdminRoute", // Route name
"{controller}/{id}/{action}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new { id = new IsIntegerConstraint() }
);
routes.MapRoute(
"Default",
"{controller}/{action}",
new { controller = "Home", action = "Index" });
Run Code Online (Sandbox Code Playgroud)
如果我切换这两个功能,RedirectToAction开始工作,但使用:
Html.ActionLink("Approve", "Approve", …Run Code Online (Sandbox Code Playgroud) 我有一个Web应用程序:
该项目目前正在使用Ad-Hoc Sql,它是由自定义ORM解决方案生成的.我不打算支持自定义ORM(缺少很多高级功能),而是考虑切换到Entity Framework.
我在一个较小的项目上使用了EF 4.1(Code-First)并且它工作得很好,但它是否可以扩展到上面一个更大的项目?
几年前,当MS与MemCached发生冲突时,我听说过Velocity.
最近我需要尝试哪种解决方案在我的项目中最有效:MemCached或.NET Velocity.我花了一段时间再次找到Velocity.似乎MS将Velocity与一些WCF工具合并,现在称为AppFabric.
http://msdn.microsoft.com/en-us/windowsserver/ee695849
我有点担心,这会影响MS为Velocity发布新功能/改进的速度,因为它是更大包装的一部分.
为什么MS在完成所有努力推广之后摆脱了独立版本的Velocity?
我有一个包含5个部分的页面。每个部分大约需要1秒钟的渲染时间。
Page_Load()
{
RenderSection1(); //1 sec
RenderSection2(); //1 sec
RenderSection3(); //1 sec
RenderSection4(); //1 sec
RenderSection5(); //1 sec
}
Run Code Online (Sandbox Code Playgroud)
我想加快此页面的加载。但是同时请确保它不会降低Web应用程序其他部分的性能,并且也不会使IIS崩溃。
有几种方法:
使用AJAX请求。需要是对控制器或Web服务的MVC样式请求。
在每个部分周围使用UpdatePanel将不起作用-因为如果我尝试同时使用以下方法向多个UpdatePanel提交刷新,则请使用以下方法:http :
//encosia.com/2007/07/13/easily-refresh-an-updatepanel-using -javascript /,则最后一个请求将始终获胜:http :
//www.codeproject.com/Tips/57035/Simultanious-Async-Requests-Using-Multiple-Update-.aspx
使用正确回答 中所述的ASP.NET线程在ASP.NET Web应用程序中创建线程。因此,我将为每个调用使用单独的线程:RenderSection1,RenderSection2等。
将占用时间的逻辑(通常是数据库请求)移到另一个DLL或外部Web服务中的Application Service类中。就像是
OrderDTO GetDataForViewOrder(int orderID)
{
}
Run Code Online (Sandbox Code Playgroud)
并在该DLL中使用多个线程。这种方法似乎提供了最佳的可伸缩性,但是还将UI详细信息引入了Application Services层。
您认为哪种方法最好,为什么?
从codeplex下载我的免费软件应用程序的用户在Win 8中获得SmartScreen警报:
"Windows SmartScreen阻止了未经识别的应用程序启动.运行此应用程序可能会使您的PC面临风险."
你必须知道点击"更多信息"和"无论如何运行"按钮来执行它.
我认为它刚刚开始发生,所以不确定是什么造成的.也许最近的Windows更新.为了对抗这个屏幕,我用数字签名签署了我的EXE,这意味着MS将开始使用它来获取我的应用程序的声誉分数.
问题是,有什么方法可以看到这个应用程序的声誉得分和建议还有什么可以改进?
我不确定大多数用户是否知道点击更多信息链接以便能够"无论如何运行",最后只是在下载后不使用我的应用程序.
我希望能够在将其推送到中央存储库之前查看其他开发人员代码.开发人员位于偏远地区,因此不能选择前往他们的办公桌.
目前他们只是推动,如果有问题,他们会回滚.但这不是一个好方法,因为有人可以在他们有机会回滚之前拉.
asp.net ×2
.net ×1
ajax ×1
appfabric ×1
caching ×1
codeplex ×1
distributed ×1
firebug ×1
inheritance ×1
kiln ×1
mercurial ×1
review ×1
security ×1
smartscreen ×1
url-routing ×1
windows ×1