如何处理大型物体?

时间:2011-03-06 12:51:53

标签: c# asp.net performance webforms business-objects

我有5种类型的对象:地方信息(14个属性),所有者公司信息(5个属性),图片,评级(存储多个投票结果),评论。

所有这5个对象将聚集在一起制作一个对象(Place),它将包含有关所有Place的信息,图片,评论等的所有属性和信息

我想要实现的是拥有一个显示地点对象及其所有属性的页面。另一个问题,如果我想显示所有者公司的个人资料,我将为每个所有者公司提供对象(但我会添加第六个属性,这是他们拥有的所有地方的列表)

我已经练习了一段时间,但我从未进入实施和表现经验,但我感觉太过分了!

您的想法是什么?

2 个答案:

答案 0 :(得分:3)

您必须检查解决方案的用例场景。您是否需要始终显示所有数据,或者您是否开始只显示其中的一部分?用户是否可能将常规使用中的任何折叠项目展开,或者此信息仅用于不太常见的用法?

根据您的回答,最好一次性获取并填充整个页面的所有数据,或者可能只需要一些数据来呈现初始屏幕,其余的数据可以在的按需

在大多数情况下,最佳解决方案可能只涉及获取所需数据,并根据需要使用ajax查询动态更新页面。

对于优化数据访问,您需要在数据库请求数量和每个单独请求的复杂性之间取得平衡。由于网络延迟,使用尽可能少的查询尽可能多地获取通常很重要,即使这意味着您有时会获取您并不总是需要的数据。但是如果在单个查询中包含太多数据,那么计算所有连接也可能成本很高。很难看到一个解决方案,首先获取所有根对象然后为每个元素获取一些与该元素关联的其他对象。因此,设计您的解决方案一次获取所有数据,但仅包括您真正需要的数据,并尽量将所涉及的表的数量保持在最低限度。

答案 1 :(得分:1)

您有3个问题需要处理,它们通常分为DAL,BLL和UI

您的对象显然属于BLL,如果您正在考虑性能,那么您需要考虑如何创建对象以及它们如何与DAL连接。我有很多具有50-200个属性的对象,因此14个属性确实没问题。

它的UI方面是独立的,如果你正在考虑在单个页面上显示大量信息的性能,你会考虑选项卡式内容,网格等。

一次解决一件事,看看你的问题在哪里。