update - ASP.NET ascx vs. aspx: ¿Reutiliza los controles de usuario?
insert en asp net c# (4)
Simplemente se reduce al tipo de aplicación web que se está diseñando. En el trabajo, una de nuestras aplicaciones es muy configurable, por lo que funciona en una página (default.aspx) y se carga en controles según cómo esté configurada para el usuario que ha iniciado sesión.
Sin embargo, por otro lado, si está escribiendo un sitio web al que debe accederse mediante SEO y tiene que ser fácil de navegar, implementar una vista en una página aspx es una buena manera. Hace que el acceso a cada página durante el desarrollo sea sencillo y sencillo, ya que puede acceder directamente (suponiendo que no haya obstáculos de seguridad / lógica en el camino) al configurarlo como su página de inicio en VS.
Otra opción para incluir en la mezcla es usar ASP.net MVC; vistas interdependientes con controles de usuario reutilizables también arrojados a la mezcla :-)
Nuestro equipo está desarrollando un proyecto web ASP.NET bastante grande que inicialmente comenzó en ASP.NET 1.0 y fue portado varias veces a todas las versiones nuevas de .NET.
Hicimos uso extensivo de los controles de usuario (ascx) . Pero en retrospectiva, dudo que haya sido una buena decisión. Un porcentaje muy pequeño de estos controles se reutiliza (resuable) a través de diferentes páginas. Solo se agrega esta capa de complejidad a la aplicación haciendo que algunas cosas sean más complejas.
Para los controles reutilizables, pequeños y especializados, utilizamos Controles de servidor (heredados de la clase WebControl), que funcionan muy bien.
Entonces mi pregunta: comenzar un nuevo proyecto, ¿está bien deshacerse de ascx e implementar todo en las páginas (aspx) ? ¿Tal vez si haces mucha carga dinámica (no hacemos) de los controles del usuario? ¿Cuál es su experiencia y qué le aconsejaría?
Tenemos algunos proyectos que usan controles ASCX extensivamente, y otros que no. Según mi experiencia, debes decidir caso por caso.
Mis dos razones favoritas para usar controles ASCX son:
- Está implementando una parte de la funcionalidad de la interfaz de usuario que aparecerá en muchas páginas diferentes (o varias veces en la misma página).
- Desea encapsular algunas funciones complejas para mantenerlas distintas del resto de la página, lo que hace que su código sea más fácil de leer y más fácil de mantener.
Los controles ASCX pueden ser útiles, pero realmente debe asegurarse de usarlos solo cuando haya una buena razón para hacerlo; de lo contrario, como usted dice, puede agregar complejidad innecesaria a su base de código.
Usados correctamente, los controles del usuario mejoran el mantenimiento y la reutilización, y muy a menudo son más rápidos de crear que los controles del servidor.
Mencionó que en su proyecto anterior, muy pocos de los controles de usuario se reutilizaron. Esto parece estar más relacionado con una mala planificación que con un error inherente en los controles del usuario.
Supongo que una buena regla general sería mirar su diseño y ver si está utilizando el mismo conjunto de controles una y otra vez, en cuyo caso tiene sentido usar controles de usuario.
Yo usaría controles de usuario todavía, y principalmente porque puede desasociar el contenido del diseño de esta manera mucho más fácilmente, lo que finalmente ayudará mucho cuando se cambie el diseño de la aplicación.
También hace que sea un poco más fácil mover los controles en la página que si tuviera que cortar / pegar código en cualquier lugar.