Я изучаю веб-приложение asp.net, которое широко использует элементы управления пользователями на каждой странице. На большинстве страниц содержится около 10-20 пользовательских элементов управления. Элементы управления пользователя, по-видимому, являются визуальным представлением бизнес-объектов (если это имеет смысл), хотя и с более тонкой детализацией, такой как каждая вкладка элемента управления вкладки, имеющего его содержимое в пользовательском элементе управления. Сам проект имеет более 200 пользовательских элементов управления (файлы ascx).ASP.Net чрезмерное использование пользовательских элементов управления
Производительность приложения очень плохая (и причина, по которой я расследую). Для каждого события (например, для выбора щелчка или выпадающего меню и т. Д.) Требуется около 5 секунд для загрузки страницы (10 секунд в визуальной студии). Приложение не использует Ajax.
Отслеживание является болезненным, поскольку сами страницы aspx не имеют кода в коде, поскольку пользователь контролирует все это, поэтому для отслеживания одной страницы требуются инструкции трассировки во всех элементах управления пользователя, которые находятся на этой странице.
На самом деле я считаю, что каждый пользовательский контроль за своим бизнес-кодом и его повторное использование - это умная идея, но чрезмерное использование пользовательских элементов управления приведет к поражению производительности? Это похоже на структуру приложения asp.net, написанного кем-то с сильным фоном WinForms?
EDIT
думал, что я должен добавить, что я не подвергаю сомнению использование пользовательских элементов управления (или даже сумма), но просто ли имея так много на странице, что все достижения вещи (каждый пользовательский элемент управления подключается к база данных, например), как правило, вызывают проблемы с производительностью ... Например, если только один пользовательский элемент управления postback делает что-то, что касается обработки всех остальных, некоторые из них видны, а некоторые нет ... @ Дэвид Макьюинг отметил, что у него было 40 оптимизированных пользовательских элементов управления и т. д., но если разработчик был основан на WinForms или «не знаком с asp.net», то как они будут следить за тем, чтобы каждый из них был оптимизирован ...
EDIT2
После получения трассировки оператора sql те же вызовы данных выполняются 5-6 раз на страницу для каждого события, так как разные пользовательские элементы управления требуют данных, которые не хранятся обычно, например. каждый пользовательский элемент управления на вкладке (упомянутый выше) делает тот же вызов, чтобы заполнить объект из базы данных ... Я действительно не здесь, чтобы обвинять пользовательские элементы управления в том, что проблема (я должен удалить вопрос?), как ясно проблема это НЕ пользовательский контроль, но с использованием их в этом конкретном случае ... который, я считаю, чрезмерен!
Производительность не актуальна в то время, потому что эффективно это похоже на то, что все элементы управления находятся на странице. Реальная проблема заключается в том, как много работает эта страница; это единственное вознаграждение за производительность. Нет, если это происходит в UserControl или нет. –
Если вы ничего не можете сделать с пользовательскими элементами управления, возможно, вы можете преобразовать некоторые из них в пользовательские элементы управления веб-сайтом? Не совсем уверен, поможет ли прекомпиляция, а просто мысль. – johnofcross