¿Cuál es la diferencia, cuáles son los términos oficiales, son los términos obsoletos en ASP.NET 3.5?¿Cuál es la diferencia entre UserControl, WebControl, RenderedControl y CompositeControl?
Respuesta
UserControl: control personalizado, que termina en .ascx, que se compone de otros controles web. Es casi como una versión pequeña de una página web aspx. Consiste en una IU (la ascx) y un código detrás. No se puede reutilizar en otros proyectos haciendo referencia a una DLL.
WebControl: Un control alojado en una página web o en un UserControl. Consiste en una o más clases, que trabajan en tándem, y está alojado en una página aspx o en un UserControl. WebControls no tiene una "página" UI y debe representar su contenido directamente. Se pueden reutilizar en otras aplicaciones haciendo referencia a sus DLL.
RenderedControl: No existe. También puede ser WebControl. Podría indicar que el control está escrito directamente en HttpResponse en lugar de ser procesado en una página aspx.
CompositeControl: Entre UserControls y WebControls. Codifican como UserControls, ya que están compuestos por otros controles. No hay ninguna interfaz de usuario gráfica para la composición de control, y el diseñador de control debe codificar la compatibilidad con la edición de interfaz de usuario de CompositeControls. La composición se hace en el código subyacente. CompositeControls se puede reutilizar en otros proyectos como WebControls.
En realidad, un control compuesto NO tiene una IU: dependes completamente de llenar su colección de controles con otros controles. Los controles renderizados son un tipo de controles compuestos en los que no se reutilizan otros controles, pero simplemente se reemplaza el método Render para generar texto puro (html) –
Comprobé mi referencia dos veces y aclaré mi definición de CompuestoControl, gracias. Pero no puedo encontrar ninguna mención oficial de un RenderedControl en la documentación de MSDN. ¿Tienes un enlace sobre eso? Estoy de acuerdo con su evaluación de lo que probablemente significa ... – Will
@Will, con respecto a UserControl, se puede reutilizar haciendo referencia a un archivo DLL (el control debe ser Emdedded en DLL para eso). Por favor verifica tu respuesta. – ajukraine
Olvidó el ServerControl.
En mi entendimiento es así:
- Sólo hay dos diferentes tipos de controles: UserControl y ServerControl
- CompositeControls son una especie de UserControls "avanzadas". Encuentra más información en Scott Guthries Blog.
- Todos ellos son WebControls (porque se derivan todos de System.Web.UI.Control)
- Todos se representan de cualquier forma, por lo que me gustaría verlos todos como controles renderizados.
De MSDN:
de Control de Usuario
En ASP.NET: Un servidor de control que se autor de forma declarativa utilizando la misma sintaxis que una página ASP.NET y es guardado como un archivo de texto con una extensión .ascx. Los controles de usuario permiten que la funcionalidad de la página sea particionada y reutilizada. Tras la primera solicitud, el marco de páginas analiza un control usuario en una clase que deriva de System.Web.UI.UserControl y compila esa clase en un conjunto, que reutiliza en posteriores peticiones. Los controles de usuario son fáciles de desarrollar a debido a su estilo de página de creación e implementación sin compilación previa .
control de servidor
Un componente de servidor que encapsula interfaz de usuario y funcionalidad relacionada. Un control de servidor ASP.NET deriva directamente o indirectamente de la clase System.Web.UI.Control . El superconjunto de los controles de servidor ASP.NET incluye controles de servidor Web, controles de servidor HTML y teléfonos controles ASP.NET. La sintaxis de página para un control de servidor ASP.NET incluye un atributo runat = "server" en la etiqueta del control . Consulte también: servidor HTML control, controles de servidor de validación, Control del servidor web.
UserControl! = CompositeControl. http://weblogs.asp.net/scottgu/archive/2006/01/29/436854.aspx – Will
Sí, tienes razón. He aprendido algo hoy. Lo he cambiado en mi respuesta. – JRoppert
No creo que esto sea del todo correcto. UserControl y WebControl son ambos tipos de Control de servidor. (En el texto que cita, en realidad dice que UserControl es un Control de servidor). Creo que tal vez un "Control de servidor" solo significa cualquier control con runat = server. Además, UserControl no es un WebControl. UserControl hereda de TemplateControl que hereda de Control, mientras que WebControl es una clase diferente que Hereda de Control. CompositeControl hereda de WebControl, pero implementa INamingContainer y ICompositeControlDesignerAccessor que lo hacen más como un UserControl. –
Como todavía no tengo suficiente reputación para comentar, agregaré esto como respuesta, pero se refiere a la respuesta de Will anterior.
Desde el link que incluyen:
controles compuestos son la herramienta adecuada para el arquitecto componentes complejos en los que múltiples controles secundarios se agregan e interactúan entre sí y con el mundo exterior. Los controles renderizados son perfectos para la agregación de solo lectura de los controles en los que el resultado no incluye elementos interactivos como cuadros de texto desplegables o desplegables.
Creo que la documentación hace referencia a los UserControls que se han creado anulando el método Render como Prestados Controles. Por lo tanto, no es un tipo separado, como lo implica la pregunta, sino una forma de implementar un UserControl; un patrón.
Al igual que los formularios Web, controles de usuario pueden ser creados en el diseñador visual o que se puede escribir con código separado del HTML. También pueden admitir eventos de ejecución. Sin embargo, dado que los controles de usuario web se compilan dinámicamente en tiempo de ejecución, no se pueden agregar a la Caja de herramientas y se representan mediante un simple marcador de posición cuando se agregan a una página.
Esto hace que el usuario Web controla más difícil de usar si usted está acostumbrado a Studio .NET soporte en tiempo de diseño visual completo, incluyendo la ventana Propiedades y la vista de diseño previstas. Además, la única forma de compartir el control del usuario entre las aplicaciones es colocar una copia por separado en cada aplicación, lo que requiere más mantenimiento si realiza cambios en el control.
controles personalizados Web se compilan código, lo que hace que sean más fáciles de usar, pero más difícil de crear. Los controles personalizados web deben estar escritos en código. Una vez que haya creado el control, puede agregarlo a la Caja de herramientas y mostrarlo en un diseñador visual con soporte total de ventanas de Propiedades y todas las demás características de tiempo de diseño de los controles del servidor ASP.NET. Además, puede instalar una copia única del control personalizado web en la caché de ensamblaje global y compartirla entre las aplicaciones, lo que facilita el mantenimiento.
Contrariamente a la respuesta de Will, es posible reutilizar en otros proyectos UserControls por referencing a web deployment project.
http://www.cmswire.com/cms/tips-tricks/aspnet-reusing -web-user-controls-and-forms-000915.php – banging
- 1. ¿Cuál es la diferencia entre Render y RenderControl en la creación de WebControl?
- 2. Cuál es la diferencia entre System.Web.UI.HtmlControls y System.Web.UI.WebControls
- 3. ¿Cuál es la diferencia entre {0} y ""?
- 4. Cuál es la diferencia entre = y: =
- 5. ¿Cuál es la diferencia entre .ToString (+) y ""
- 6. Cuál es la diferencia entre $ (...) y `...`
- 7. ¿cuál es la diferencia entre:.! y: r !?
- 8. ¿Cuál es la diferencia entre ".equals" y "=="?
- 9. ¿Cuál es la diferencia entre dict() y {}?
- 10. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 11. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 12. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 13. ¿Cuál es la diferencia entre + = y = +?
- 14. ¿Cuál es la diferencia entre " " y ""?
- 15. Cuál es la diferencia entre $ y jQuery
- 16. Diferencia entre un control web y un control compuesto?
- 17. OpenGL (ES) - ¿Cuál es la diferencia entre frustum y orto?
- 18. Cuál es la diferencia entre la función() {}() y la función() {}()
- 19. ¿Cuál es la diferencia entre la abstracción y la encapsulación?
- 20. ¿Cuál es la diferencia entre @ y $ y% en MSBuild?
- 21. ¿Cuál es la diferencia entre la vinculación estática y dinámica?
- 22. ¿Cuál es la diferencia entre la sección .got y .got.plt?
- 23. ¿Cuál es la diferencia entre el colado y la coerción?
- 24. ¿cuál es la diferencia entre el complemento y la biblioteca?
- 25. ¿Cuál es la diferencia entre el casting y la conversión?
- 26. ¿Cuál es la diferencia entre WPF y la aplicación Silverlight?
- 27. ¿Cuál es la diferencia entre uno mismo y la ventana?
- 28. ¿Cuál es la diferencia entre CookieContainer y la colección Response.Cookies?
- 29. ¿Cuál es la diferencia entre la relación Composición y Asociación?
- 30. ¿cuál es la diferencia entre el material y la textura?
posible duplicado de [\ [ASP.NET \] ¿Cuáles son las diferencias entre los controles de usuario, controles de servidor y controles personalizados?] (Http://stackoverflow.com/questions/994009/asp-net-what-are- the-differences-between-user-controls-server-controls-custo) – Earlz
@Earlz: 2 de los 3 componentes sobre los que pregunta son diferentes de los que se preguntan aquí. Además, esta pregunta es mucho más antigua. –
@Bill ah me parecieron una estafa exacta. Tal vez una fusión es en orden? Además, eres el primer moderador que realmente me ha dado una respuesta a una bandera :) – Earlz