Información general sobre la personalización de elementos Web
Actualización: noviembre 2007
Quizá desee permitir a los usuarios que modifiquen o personalicen la interfaz de usuario y el comportamiento de determinadas aplicaciones Web. El control elementos Web de ASP.NET proporciona esta capacidad en una de sus características principales, la personalización. La personalización permite guardar las propiedades o el estado de los controles de elementos Web en almacenamiento de larga duración, no vinculado a ninguna sesión de explorador.
Cómo funciona la personalización
La personalización permite crear propiedades para controles de elementos Web que tienen varias características únicas. Las propiedades personalizables se caracterizan por lo siguiente:
Están vinculadas a la identidad de un usuario y una página Web determinados. La configuración de cada usuario para los controles personalizables en cada página se puede guardar en los datos de personalización. Estos datos permiten a los usuarios modificar la interfaz de usuario para una página Web y guardar sus preferencias individuales.
Tienen una larga duración. La configuración personalizada no está vinculada a una sola sesión del explorador. Dado que se almacenan en almacenamiento a largo plazo, la aplicación puede recuperar la configuración de un usuario cada vez que éste visita una página determinada.
En la personalización se utiliza una base de datos de servicios de aplicaciones ASP.NET para almacenar los datos de personalización. De forma predeterminada, ASP.NET crea automáticamente esta base de datos en una subcarpeta denominada "app_data" cuando una aplicación ASP.NET utiliza inicialmente la personalización u otro de los servicios de aplicaciones, como las funciones, la pertenencia o los perfiles. También de forma predeterminada, ASP.NET crea la base de datos como un solo archivo de base de datos de SQL Server Express que contiene el esquema de base de datos para todos los servicios de aplicaciones. Con el archivo Web.config, puede configurar la aplicación para que se cree un archivo de base de datos independiente para la personalización. Además, en el archivo Web.config se puede especificar una base de datos de SQL Server que almacene datos de servicios de aplicaciones en lugar de utilizar el archivo de base de datos de SQL Server Express predeterminado.
Se conservan a través de una capa de proveedor. El mecanismo para almacenar y recuperar datos de personalización consta de un componente de proveedor y un almacén de datos. ASP.NET incluye un proveedor Microsoft SQL predeterminado y una base de datos. También es posible crear un proveedor personalizado y configurarlo para que utilice cualquier almacén de datos.
Declarativas en cualquier control de elementos Web. Cuando se va a programar un control personalizado, es posible agregar el atributo Personalizable en el código para habilitar un propiedad determinada en cualquier control de elementos Web para la personalización. Además de a los controles personalizados derivados de la clase WebPart, esto se aplica a los controles de servidor de ASP.NET o a los controles de usuario, ya que se pueden utilizar como controles de elementos Web.
Nota: Es importante tener en cuenta que las propiedades ordinarias se controlan de manera diferente por el hecho de que no pueden conservarse como las propiedades personalizables. Si se agrega mediante programación un control WebPart u otro control de servidor a una zona WebPartZoneBase y se intenta establecer mediante programación sus propiedades no personalizables (por ejemplo, si se establece la propiedad Text en un control Label), se restablecen los valores predeterminados de las propiedades una vez agregados los controles, ya que no existe ningún medio de conservar estos valores de propiedad en un almacenamiento de personalización a largo plazo. Para conservar las propiedades en almacenamiento a largo plazo, se deben marcar con el atributo Personalizable en el código fuente. Como alternativa, si sólo desea mantener las propiedades entre solicitudes dentro de la misma sesión de explorador (pero no en almacenamiento a largo plazo), puede utilizar el estado de vista.
La personalización y otras características de ASP.NET
La personalización contrasta en varios aspectos con las otras técnicas de ASP.NET en lo que se refiere a la conservación de datos de estado de una aplicación Web:
La personalización es una función de los elementos Web. No se puede utilizar la personalización de forma aislada. Para utilizar la personalización, debe utilizar controles dentro de un objeto WebPartZone para que tengan la funcionalidad de los elementos Web.
Nota: Cualquier control de servidor ASP.NET, control personalizado o control de usuario se puede utilizar como un control de elementos Web para aprovechar las posibilidades de la personalización.
La personalización es diferente del estado de vista. Tanto con el estado de vista como con la personalización se conservan los datos de estado de control, pero los datos de estado de vista sólo se conservan durante la sesión actual del explorador, mientras que los datos de personalización son de larga duración.
La personalización es diferente de los perfiles. La personalización sólo almacena los datos de estado específicos del usuario para los controles en una página Web determinada. La información relacionada con el usuario como persona y destinada al uso en varias páginas de una aplicación Web (como la información de una cuenta en una aplicación de carro de la compra) debe mantenerse en un perfil. Para obtener más información, vea Información general sobre las propiedades de perfil de ASP.NET.
Conceptos básicos de la personalización
Cuando se utiliza la personalización con controles de elementos Web, deben tenerse en cuenta varios conceptos que afectan al funcionamiento de la personalización.
El primer concepto corresponde al ámbito de personalización de página. El ámbito de personalización de página es el intervalo de usuarios a los que se pueden aplicar cambios de personalización en una página. En cualquier momento determinado, una página de elementos Web puede estar en un ámbito de personalización de página de dos posibles: compartido o de usuario. En el ámbito compartido, cualquier cambio de personalización de la página se aplica a todos los usuarios; en el ámbito de usuario, los cambios de personalización de la página sólo se aplican al usuario actual.
Un segundo concepto, relacionado con el anterior, es la visibilidad de los controles. La visibilidad de los controles determina si un control determinado resulta visible para un usuario o para todos los usuarios. Cada control WebPart de una página es compartido (visible para todos los usuarios de esa página) o de usuario (sólo visible para un usuario). La visibilidad está determinada por la forma en que se agrega un control a una página. Si el control se agrega mediante declaración en el marcado de una página Web (control estático), siempre es un control compartido. Si el control se agrega mediante código de aplicación o porque un usuario lo selecciona de un catálogo de controles (control dinámico), la visibilidad queda determinada por el ámbito de personalización actual de la página. Si la página está en ámbito compartido, un control agregado dinámicamente es compartido, y si la página está en ámbito de usuario, el control es de usuario.
Un tercer concepto importante es el ámbito de propiedad. Cuando se crea una propiedad personalizable en un control con el atributo Personalizable en el código fuente, es posible establecer el ámbito de personalización para la propiedad como Shared o User (User es el ámbito predeterminado). De ese modo se obtiene un control detallado sobre qué propiedades de un control pueden personalizar todos los usuarios, y cuáles pueden personalizar únicamente los usuarios autorizados cuando el ámbito de la página es Shared.
Conjuntamente, estos conceptos de ámbito de personalización de las páginas, visibilidad de los controles y ámbito de personalización de las propiedades crean las opciones que determinan cómo pueden ver y personalizar los usuarios los controles de elementos Web. En la tabla siguiente se resume el comportamiento de los controles de elementos Web cuando los usuarios los personalizan en los distintos ámbitos.
Visibilidad de los controles |
Página en ámbito compartido |
Página en ámbito de usuario |
---|---|---|
control compartido (de forma predeterminada, los controles WebPart son compartidos) |
Un usuario autorizado puede personalizar tanto las propiedades de ámbito compartido como de usuario en el control para todos los usuarios. Si se trata de un control dinámico (un control que se agrega a la página mediante programación o desde un catálogo de controles), un usuario puede eliminarlo permanentemente para todos los usuarios. Si se trata de un control estático (un control que se declara en el marcado de una página .aspx), no se puede eliminar, aunque un usuario autorizado puede cerrar el control para todos los usuarios. |
Un usuario no puede personalizar propiedades de ámbito compartido. Puede personalizar propiedades de ámbito de usuario, y los valores que establezca para estas propiedades tienen prioridad sobre los valores de propiedad asignados cuando la página estaba en el ámbito compartido. Si se pierden o restablecen datos de personalización específicos de usuario en un control, las propiedades de ámbito de usuario recuperan los valores que tenían cuando la página se encontraba en el ámbito compartido. Un usuario puede cerrar directamente un control compartido, que se agrega al Catálogo de páginas, pero no puede eliminarlo permanentemente. |
control por usuario |
El control no se puede personalizar con la página en el ámbito compartido, porque ni siquiera aparece en la página. El control sólo aparece cuando la página está en ámbito de usuario. |
Un usuario puede personalizar directamente las propiedades personalizables de ámbito compartido y de usuario en el control, ya que la instancia del control es totalmente privada. Un usuario también puede eliminar el control permanentemente. |
Componentes esenciales para la personalización
En la tabla siguiente se muestran dos componentes del conjunto de controles de elementos Web que son esenciales para la personalización y con los que trabajará directa o indirectamente siempre que utilice la personalización.
Control de elementos Web |
Descripción |
---|---|
Administra todos los elementos Web de una página, habilita o deshabilita la personalización y administra el ciclo de vida de los datos de personalización. Se requiere un control WebPartManager (y sólo uno) para cada página de elementos Web. |
|
Implementa la lógica necesaria para llevar a cabo las acciones de personalización. |
Vea también
Conceptos
Información general sobre los elementos Web ASP.NET
Requisitos para utilizar la personalización de elementos Web
Información general sobre las propiedades de perfil de ASP.NET
Referencia
Información general sobre el conjunto de controles de elementos web