Partilhar via


Visão geral sobre personalização de Web Parts

Em determinados aplicativos da Web, você pode querer permitir que os usuários modifiquem, ou personalizem, a interface de usuário e o comportamento do aplicativo.O conjunto de controles Web Parts ASP.NET fornece essa funcionalidade em um des seus recursos principais, personalização.A personalização permite que as propriedades e o estado dos controles Web Parts sejam salvos para armazenamento de longo prazo e não apenas sejam ligados a uma sessão determinada do navegador.

Como funciona a personalização

A personalização permite a você criar propriedades para controles Web Parts que tenham várias características exclusivas.Propriedades personalizáveis são:

  • Vinculado à identidade de um usuário específico e página da Web.Configurações de cada usuário para os controles personalizáveis em cada página podem ser salvas nos dados de personalização.Esses dados permitem que usuários modifiquem a interface de usuário em um página da Web e salvem suas preferências individuais.

  • Vida-LongaAs configurações personalizadas não são ligadas a uma sessão única do navegador.Como elas são armazenadas em armazenamento a longo prazo, o aplicativo pode recuperar as configurações do usuário sempre que o usuário visita uma página específica.

    A personalização usa um banco de dados de serviços do aplicativo ASP.NET para armazenar os dados de personalização.Por padrão, o ASP.NET cria este banco de dados automaticamente em uma subpasta chamada " app_data " no primeiro uso de personalização em um aplicativo ASP.NET ou de outros serviços do aplicativo, como funções (roles), associação (membership ) ou perfis (profiles).Também por padrão, o ASP.NET cria o banco de dados como um único arquivo SQL Server Express de banco de dados que contém o esquema de banco de dados para todos os serviços.Usando o arquivo Web.config, você pode configurar o seu aplicativo para que um arquivo de banco de dados separado seja criado para personalização.Além disso, no arquivo Web.config, você pode especificar um banco de dados do SQL Server para armazenar os dados de serviços do aplicativo em vez de utilizar o arquivo padrão de banco de dados SQL Server Express.

  • Persistido por uma camada de provedor.O mecanismo para armazenar e recuperar dados de personalização consiste em um componente de provedor e um armazenamento de dados.O ASP.NET inclui um provedor padrão Microsoft SQL e um banco de dados.Você também pode criar um provedor personalizado e configurá-lo para usar qualquer armazenamento de dados.

  • Declarativa em qualquer controle de Web Parts.Quando você estiver desenvolvendo um controle personalizado, você pode adicionar o atributo Personalizable no código para ativar uma propriedade específica em qualquer controle de Web Parts para personalização.Além disso, para controles personalizados derivados da classe WebPart, isso também se aplica a controles de servidor ASP.NET, controles de servidor personalizados ou controles de usuário, desde que eles possam ser usados como controles de Web Parts.

    Observação:

    É importante reconhecer que as propriedades comuns são manipuladas de forma diferente pois não podem ser persistidas como propriedades personalizáveis.Se você adicionar um controle WebPart ou outros controles de servidor a uma zona WebPartZoneBase por meio de programação, e você tentar definir suas propriedades não personalizáveis por meio de programação (por exemplo, se você definir a propriedade Text em um controle Label), as propriedades são redefinidas para seus valores padrão depois que os controles são adicionados, porque não há nenhuma maneira para que esses valores de propriedade sejam persistidos no armazenamento de personalização a longo prazo.Para persistir as propriedades no armazenamento a longo prazo, elas devem ser marcadas com o atributo Personalizable no código-fonte.Como alternativa, se você desejar persistir as propriedades somente entre solicitações dentro da mesma sessão do navegador (mas não no armazenamento de longo prazo), você pode usar o estado da exibição (view state).

Personalização e outros recursos do ASP.NET

A personalização contrasta de várias maneiras com outras técnicas para persistir dados de estado de um aplicativo da Web ASP.NET:

  • A personalização é um recurso da Web Parts.Não é possível usar personalização por si só.Para usar Personalização, você deve usar os controles em um WebPartZone para que eles tenham funcionalidades Web Parts.

    Observação:

    Qualquer controle de servidor ASP.NET , controle personalizado, ou controle de usuário pode ser usado como um controle Web Parts para tirar proveito da personalização.

  • A personalização é diferente do estado de exibição .Ambos estado da exibição e personalização persistem dados de estado do controle, mas o estado de exibição apenas persiste os dados durante a sessão atual do navegador, enquanto os dados de personalização são de vida longa.

  • **Personalização é diferente de perfis (profiles).**A personalização armazena dados de estado específicos de usuário para controles em apenas uma determinada página da Web.Informações relacionadas ao usuário como pessoa, e destinadas a serem usadas em várias páginas em um aplicativo da Web (como informações da conta em um aplicativo de carrinho de compras), devem ser mantidas em um perfil.Para obter mais informações, consulte Visão geral sobre propriedades de perfil do ASP.NET.

Conceitos chave na personalização

Quando você usa a personalização com controles Web Parts, você deve compreender vários conceitos que afetam como a personalização funciona.

O primeiro conceito é o escopo de personalização de página.O escopo de personalização de página é a delimitação de usuários aos quais é possível aplicar alterações de personalização em uma página.A qualquer momento, uma página Web Parts pode estar em um de dois escopos de personalização de página possíveis, compartilhadas (Shared) ou usuário (User).No escopo compartilhado, quaisquer alterações de personalização na página se aplicam a todos os usuários; no escopo de usuário, as alterações de personalização na página se aplicam somente ao usuário atual.

Um segundo conceito relacionado é a visibilidade do controle.A visibilidade do controle determina se um determinado controle é visível para um usuário individual ou para todos os usuários.Cada controle WebPart em uma página é um controle compartilhado, visível para todos os usuários da página, ou um controle per-user (por usuário), visível somente para um usuário individual.A visibilidade é determinada pela maneira que um controle é adicionado a uma página.Se um controle é adicionado, declarando-o na marcação de uma página da Web (um controle estático), ele é sempre um controle compartilhado.Se um controle é adicionado por código de aplicativo ou por um usuário selecionando-o de um catálogo de controles (um controle dinâmico) a visibilidade é determinada pelo escopo de personalização da página atual.Se a página estiver no escopo compartilhado, um controle dinamicamente adicionado será compartilhado, e se a página estiver no escopo de usuário, o controle será um controle para usuário individual.

Um terceiro conceito importante é o escopo de propriedade.Quando você cria uma propriedade personalizável em um controle usando o atributo Personalizable no código-fonte, você pode definir o escopo de personalização para a propriedade como Shared ou User (User é o escopo padrão).Isso fornece um controle detalhado sobre quais propriedades em um controle podem ser personalizadas por todos os usuários, e quais podem ser personalizadas somente por usuários autorizados quando o escopo de página é Shared.

Tomados juntos, esses conceitos de escopo de personalização de página, visibilidade de controle, e escopo de personalização de propriedade criam uma variedade de opções de como os controles Web Parts poderão ser visualizados e personalizados por usuários.A tabela a seguir resume como os controles Web Parts se comportam quando os usuários personalizam em vários escopos.

Visibilidade do controle

Página no escopo compartilhado

Página no escopo de usuário

controle compartilhado (controles WebPart são compartilhadas por padrão)

Um usuário autorizado pode personalizar propriedades com escopo compartilhado e escopo de usuário para todos os usuários.

No caso de um controle dinâmico (um controle que é adicionada à página por código, ou de um catálogo de controles), um usuário autorizado poderá excluí-lo permanentemente para todos os usuários.

No caso de um controle estático (um controle que esteja declarado na marcação de uma página .aspx), ele não pode ser excluído, embora um usuário autorizado possa fechar o controle a todos os usuários.

Os usuários individuais não podem personalizar propriedades com escopo compartilhado.Eles podem personalizar propriedades com escopo de usuário, e o seus valores para essas propriedades têm prioridade sobre os valores de propriedade atribuídos quando a página estava no escopo de compartilhamento.Se os dados de personalização de um usuário específico em um controle é perdido ou redefinido, as propriedades com escopo de usuário voltarão para os valores que tinham quando a página estava no escopo compartilhado.

Usuários individuais podem fechar um controle compartilhado para si mesmo, o que o adiciona ao catálogo da página (Page Catalog), mas eles não podem excluí-lo permanentemente.

Controle de usuário individual

O controle não pode ser personalizado com a página no escopo compartilhado, pois o controle nem mesmo aparece na página.O controle só aparece quando a página estiver no escopo do usuário.

Usuários individuais podem personalizar propriedades personalizáveis no controle tanto no escopo compartilhado quanto no escopo de usuário para eles próprios, pois a instância de controle é completamente privada.

Usuários individuais também poderão permanentemente excluir o controle.

Componentes essenciais de personalização

A tabela a seguir mostra os dois componentes no conjunto de controles Web Parts que são essenciais para a personalização, com os quais você trabalha direta ou indiretamente sempre que usar personalização.

Controles Web Parts

Descrição

WebPartManager

Gerencia todas as Web Parts em uma página, habilita ou desabilita a personalização e gerencia o ciclo de vida de personalização.Um (e somente um) controle WebPartManager é necessário para cada página de Partes Web.

WebPartPersonalization

Implementa a lógica necessária para executar ações de personalização.

Consulte também

Conceitos

Visão geral sobre Web Parts do ASP.NET

Requisitos para usar personalização do Web Parts

Visão geral sobre propriedades de perfil do ASP.NET

Referência

Visão Geral do Conjunto de Controle Web Parts