Estoy investigando una aplicación web asp.net que usa ampliamente controles de usuario en cada página. La mayoría de las páginas contienen alrededor de 10-20 controles de usuario. Los controles de usuario parecen ser la representación visual de los objetos de negocio (si tiene sentido), aunque en una granularidad más fina, como cada pestaña de un control de pestaña que tiene su contenido en un control de usuario. El proyecto en sí tiene más de 200 controles de usuario (archivos ascx).Uso excesivo de ASP.Net de los controles de usuario
El rendimiento de la aplicación es muy pobre (y el motivo por el que estoy investigando). Cada evento (como un clic o una selección desplegable, etc.) requiere aproximadamente 5 segundos para que la página se cargue (10 segundos mientras está en el estudio visual). La aplicación no tiene uso de Ajax. El rastreo es doloroso ya que las páginas aspx no tienen código en el código subyacente ya que los controles del usuario se encargan de todo esto, por lo que rastrear una página requiere instrucciones de seguimiento en todos los controles de usuario que están en esa página.
De hecho, creo que hacer que cada usuario controle su código comercial y sea reutilizable es una buena idea, pero ¿el uso excesivo de los controles del usuario va a generar un impacto en el rendimiento? ¿Parece esto la estructura de una aplicación asp.net escrita por alguien con un fuerte historial de WinForms?
EDITAR
pensé que debería añadir que no estoy cuestionando el uso de los controles de usuario (o incluso la cantidad), sino simplemente si tener tantos en una página que toda lograr cosas (cada control de usuario se conecta a la base de datos, por ejemplo) generalmente causará problemas de rendimiento ... Por ejemplo, si solo un usuario controla el posback para hacer algo, ¿qué pasa con el procesamiento de todos los demás, algunos son visibles y otros no ... @ David McEwing mencionó que tenía 40 controles de usuario optimizados realizando etc., pero si el desarrollador estaba basado en WinForms o "no estaba familiarizado con asp.net", entonces ¿cómo iban a asegurarse de que cada uno estuviera optimizado ...
EDIT2
Después de obtener un rastreo de instrucción sql, las mismas llamadas de datos se están ejecutando 5-6 veces por llamada de página para cada evento ya que los diferentes controles de usuario requieren datos que no se almacenan comúnmente, p. Ej. cada control de usuario en la pestaña (mencionado anteriormente) hace la misma llamada para llenar un objeto de la base de datos ... Realmente no estoy aquí para acusar a los controles del usuario de ser el problema (¿debo eliminar la pregunta?) como claramente el problema NO son controles de usuario sino con el uso de ellos en este caso particular ... ¡que creo que es excesivo!
El rendimiento no es relevante en ese momento, porque efectivamente es como tener todos los controles en la página. El verdadero problema es cuánto trabajo hace esa página; esa es la única consideración de rendimiento. No si sucede que está en un UserControl o no. –
Si no hay nada que pueda hacer con respecto a los controles del usuario, ¿puede convertir algunos de ellos en controles web personalizados? No estoy seguro si la precompilación ayudará, pero solo un pensamiento. – johnofcross