我正在调查一个广泛使用用户控件的asp.net Web应用程序,大多数页面包含约10-20个用户控件。用户控件似乎是业务对象的可视化表示(如果这有意义),尽管在更细的粒度上,例如选项卡控件的每个选项卡都有其内容在用户控件中。该项目本身有超过200个用户控件(ascx文件)。
应用程序的性能非常差(这也是我调查的原因)。每个事件(如单击或下拉选择等)需要约5秒钟才能加载页面(在Visual Studio中为10秒)。该应用程序没有使用Ajax。
跟踪很痛苦,因为aspx页面本身没有代码,因为用户控件处理了所有这些问题,因此跟踪单个页面需要在该页面上的所有用户控件中都放置跟踪语句。
我实际上认为让每个用户控件管理其业务代码并且可重复使用是一个明智的想法,但是过度使用用户控件会导致性能下降吗?这是否看起来像由具有强大WinForms背景的人编写的asp.net应用程序的结构?
编辑: 我不质疑使用用户控件(甚至数量),但只是想知道在页面上拥有如此多的用户控件(每个用户控件都连接数据库,例如)是否会普遍引起性能问题...例如,如果只有一个用户控件回发并做一些操作,那么其他所有用户控件的处理呢?有些是可见的,有些则不可见... David McEwing提到他有40个经过优化的用户控件进行执行等操作,但如果开发人员基于WinForms或“不熟悉asp.net”,那么他们如何确保每个用户控件都被优化了呢...
编辑2:在获取sql语句跟踪后,相同的数据调用每个事件被执行5-6次,因为不同的用户控件需要数据,这些数据没有通用存储,例如,在选项卡中的每个用户控件(上面提到)都进行了相同的调用以从数据库填充对象...我真的不想指责用户控件是问题的根源(我应该删除这个问题吗?)显然问题不在于用户控件,而是在于这种特定情况下对它们的使用...我认为使用过度!
应用程序的性能非常差(这也是我调查的原因)。每个事件(如单击或下拉选择等)需要约5秒钟才能加载页面(在Visual Studio中为10秒)。该应用程序没有使用Ajax。
跟踪很痛苦,因为aspx页面本身没有代码,因为用户控件处理了所有这些问题,因此跟踪单个页面需要在该页面上的所有用户控件中都放置跟踪语句。
我实际上认为让每个用户控件管理其业务代码并且可重复使用是一个明智的想法,但是过度使用用户控件会导致性能下降吗?这是否看起来像由具有强大WinForms背景的人编写的asp.net应用程序的结构?
编辑: 我不质疑使用用户控件(甚至数量),但只是想知道在页面上拥有如此多的用户控件(每个用户控件都连接数据库,例如)是否会普遍引起性能问题...例如,如果只有一个用户控件回发并做一些操作,那么其他所有用户控件的处理呢?有些是可见的,有些则不可见... David McEwing提到他有40个经过优化的用户控件进行执行等操作,但如果开发人员基于WinForms或“不熟悉asp.net”,那么他们如何确保每个用户控件都被优化了呢...
编辑2:在获取sql语句跟踪后,相同的数据调用每个事件被执行5-6次,因为不同的用户控件需要数据,这些数据没有通用存储,例如,在选项卡中的每个用户控件(上面提到)都进行了相同的调用以从数据库填充对象...我真的不想指责用户控件是问题的根源(我应该删除这个问题吗?)显然问题不在于用户控件,而是在于这种特定情况下对它们的使用...我认为使用过度!