Partilhar via


Visão Geral Sobre as Conexões do Web Parts

O conjunto de controles de Web Parts permite que você crie conexões entre controles de servidor, para que o valor total e a utilidade dos controles conectados exceda os controles individuais, desconectados.Um conjunto completo e integrado de componentes de conexão é fornecido, de modo que com um número mínimo de etapas, algumas linhas de código e sem a necessidade de manipular toda a complexidade e a sincronização de dados da base, você possa instalar controles WebPart (ou servidor ou usuário) existentes para fazer conexões.Com os controles que são habilitados para conexões, você pode criar conexões dinâmicas, através de programação entre os controles em tempo de execução, bem como conexões estáticas pré-definidas declaradas na marcação de um página da Web.Você também pode fornecer aos usuários uma interface do usuário (UI) que os permite conectar ou desconectar os controles em tempo de execução e gerenciar as conexões existentes.

Conexões oferecem vantagens para os usuários e desenvolvedores.Usando conexões, os usuários podem encontrar maneiras novas e significativas para exibir seus dados.Suponha que você crie um aplicativo no qual um controle de servidor contata um serviço Web, retorna registros históricos de temperaturas diárias médias para um estado e lista os dados em forma tabular.Se um usuário desejar a flexibilidade de exibir os dados de maneiras diferentes, o controle de servidor pode ser conectado a um controle gráfico que pode consumir dados tabulares e exibi-los em vários modos gráficos.O usuário ainda poderia ter a opção de exibir os dados em uma tabela ou conectar os dados de temperatura ao controle gráfico.Com novos modos de exibição dos dados, os usuários podem notar novas tendências e relações em temperaturas que estavam mais difíceis de visualizar com os dados no formato tabular.

Usando conexões, os desenvolvedores podem descobrir novas oportunidades de reutilização de código e combinar a funcionalidade dos controles isolados.Suponha que um desenvolvedor crie um controle que salva informações de endereço para o usuário, incluindo um código postal e torna essas informações sempre disponíveis para preencher um formulário de envio de endereço quando o usuário pede algo.Em seguida, o desenvolvedor adiciona outros controles que dependam um CEP, controles para exibir informações sobre a meteorologia e manchetes de notícias na área do usuário, bem como um controle que pesquise as empresas por categoria para um CEP específico.Em vez de desenhar cada novo controle com o mesmo recurso de salvar um CEP, o desenvolvedor pode criar cada controle para exigir a entrada de um código postal.Em seguida, o desenvolvedor pode simplesmente conectar o controle que já salva o CEP aos controles de listagem de clima, notícias e de negócios que levam um CEP como uma entrada.Cada conexão estende a utilidade do controle original e elimina redundância de código nos novos controles.

Conceitos de Conexões

Um conexão de Web Parts é um link ou associação entre dois controles de servidor que permite que eles compartilhem dados.Uma conexão sempre envolve exatamente dois controles: uma é o provedor de dados e o Outros é o consumidor dos dados do provedor.Um controle pode ser tanto um consumidor e um provedor, e qualquer tipo de controle de servidor, seja um controle WebPart, um controle personalizado ou um controle de usuário, pode ser criado para participar de conexões.Um controle de provedor, por padrão, pode estabelecer conexões com vários consumidores ao mesmo tempo (como no exemplo anterior de um controle de código postal que fornece um código postal para um controle de informações sobre meteorologia, um controle de títulos de notícias e um controle de listagem de negócios).Um controle do consumidor por padrão pode se conectar a apenas um provedor de cada vez.

Conexões sempre serão realizadas no contexto de um aplicativo Web Parts, o que significa que, no mínimo, além dos dois controles de servidor que participam da conexão, dois controles adicionais são necessárias na página da Web.Um deles é o controle WebPartManager, que está presente em cada página que contém controles de Web Parts.O segundo controle necessário é uma zona que herda da classe WebPartZoneBase, como o controle WebPartZone.Quaisquer dois controles de servidor, para formar uma conexão, devem residir em um tipo WebPartZoneBase de zona.

Em um relacionamento de conexão, o consumidor e o provedor devem ter pelo menos um objeto chamado um ponto de conexão associado cada um.Com base na classe ConnectionPoint, um ponto de conexão contém os detalhes necessários para um controle de servidor conectar-se a outro controle, como o tipo do controle em si, o tipo de dados que o controle reconhece, uma identificação para o objeto ponto de conexão, e se o controle pode formar várias conexões.Um controle de servidor pode ter vários pontos de conexão.Os pontos de conexão de um provedor são definidos pelas instâncias da classe ProviderConnectionPoint, e do consumidor é definido pelas instâncias da classe ConsumerConnectionPoint.

Para formar uma conexão, o consumidor e provedor devem ambos reconhecer o mesmo tipo de dados, que em conexões do Web Parts são passados por meio de uma instância da interface.O tipo de dados que um controle reconhece é especificado no ponto de conexão associado do controle, na propriedade InterfaceType.Se o provedor e consumidor reconhecerem o mesmo tipo de dados, eles são compatíveis.Se um provedor e consumidor forem incompatíveis, um desenvolvedor deve usar um objeto transformador especial para converter od dados do provedor em uma forma com a qual o consumidor poderá trabalhar.Este objeto transformador herda da classe base WebPartTransformer, e um desenvolvedor pode herdar a classe base para desenvolver um transformador personalizado, ou usar um dos objetos transformadores fornecido (RowToFieldTransformer ou RowToParametersTransformer).

Após uma conexão ser criada, ele estará contido em um objeto WebPartConnection.O objeto de conexão encapsula todos os detalhes sobre a conexão, incuindo referências a seus objetos consumidor e provedor, as identificações do consumidor e do provedor, referências a quaisquer pontos de conexão e suas identificações, referências para quaisquer transformadores associados à conexão e detalhes sobre o estado da conexão, como se a conexão está ativa e se ela é estática ou dinâmica.

Você pode fornecer aos usuários uma maneira de criar e gerenciar conexões usando o controle ConnectionsZone.Você pode declarar um elemento <asp:connectionszone> em um página da Web, que fornece aos usuários uma interface de usuário em tempo de execução que permite que eles conectem ou desconectem controles e configurem certos detalhes de conexão.

Como Conexões Funcionam

As conexões do Web Parts são baseadas em um modelo de conectividade "de recebimento", onde o consumidor obtem os dados do provedor.Para criar uma conexão, um controle que atua como um provedor de dados define um contrato de comunicação que indica os dados que pode fornecer.Outro controle, que atua como o consumidor e com conhecimento do contrato de comunicação, recupera os dados.

O mecanismo para estabelecer uma conexão é um método callback especial: um no consumidor e o outro no provedor.No entanto, o conjunto de controles do Web Parts trata todos os detalhes de callback e de comunicação, para que as etapas necessárias para os desenvolvedores sejam mínimas.Como desenvolvedor, se você desejar usar a abordagem mais simples, tudo que o que você tem a fazer é selecionar um método no provedor para usar como o método callback e marcá-lo no código-fonte com um atributo ConnectionProvider.Em seguida, dentro desse método, retornar a instância da interface que contém os dados para serem passados para o consumidor.A instância da interface pode ser muito simples (por exemplo, uma única propriedade que contém um valor da cadeia de caracteres such as um CEP).Um provedor pode implementar uma das interfaces fornecidas (IWebPartField,IWebPartRow,ou IWebPartTable), mas na maioria dos casos é preferível criar uma interface simples, personalizada com um ou mais propriedades ou métodos que contenham os dados você deseja compartilhar com um consumidor e implementar essa interface no provedor.Método callback do consumidor recupera a instância da interface do provedor.Novamente, tudo o que é necessário para um desenvolvedor é identificar qual método no consumidor (usando um atributo ConnectionConsumer) irá recuperar a instância da interface e atribuí-lo a algumas variáveis internas para o processamento.Observe que os dados do provedor são passados durante a fase de pré-processamento do ciclo de controle da página, portanto você deve planejar o processamento dos dados e atualização de qualquer lógica no consumidor após o pré-processamento ser concluído.

Observação:

Conforme mencionado anteriormente, o consumidor e provedor devem ser compatíveis com relação ao tipo de interface, senão eles devem usar um objeto WebPartTransformer para estabelecer a conexão.

Os pipelines através do qual os dados são trocados são os pontos de conexão para o consumidor e provedor.Você pode criar um ponto de conexão de um controle de várias maneiras.Conforme mencionado no parágrafo anterior, você pode usar as classes ConnectionConsumerAttribute e ConnectionProviderAttribute, cada uma cria um ponto de conexão para você.Nessa abordagem, você pode adicionar um atributo ConnectionConsumer no método callback do consumidor no código-fonte e adicionar um atributo ConnectionProvider da mesma forma para método callback do provedor.Isso identifica os métodos callback respectivos e permite que você especifique alguns detalhes sobre o ponto de conexão, como uma identificação e um nome para exibição (que aparecem na UI para os usuários formarem conexões).Como outra alternativa, você pode criar um ponto de conexão personalizado herdando de ConnectionPoint, ou você pode usar ou herdar das classes ConsumerConnectionPoint ou ProviderConnectionPoint.Conforme observado anteriormente, um controle que atua como um consumidor ou um provedor pode ter vários pontos de conexão.

Uma conexão entre os controles pode ser estática ou dinâmica.Conexões estáticas são codificadas declarativamente na página de hospedagem e criadas durante a fase de pré-processamento da página.Isso assegura que a conexão esteja ativa quando um usuário visualiza a página.Para um exemplo, consulte Como: Declarar uma conexão estático entre dois controles Web Parts.Conexões dinâmicas podem ser criadas em programaticamente no código do controle ou declarativamente na página de hospedagem.Se você declara dois controles de servidor compatíveis dentro de uma zona WebPartZoneBase em uma página da Web e declara uma instância do controle ConnectionsZone na página, os usuários podem criar e configurar em tempo de execução uma conexão dinâmica entre os controles.

Conexões Web Part e Outros Recursos do ASP.NET

As conexões contrastam de diversas maneiras de outras técnicas do ASP.NET para transferir informações entre controles em um aplicativo da Web:

  • Conexões são um recurso do Web Parts.Você só pode se conectar a controles que são projetados para conexões Web Parts e que residam dentro de uma zona WebPartZoneBase.

    Observação:

    Conforme observado anteriormente, qualquer controle de servidor ASP.NET, controle de usuário ou controle personalizado, pode ser usado como um controle de Web Parts para aproveitar as conexões.

  • Conexões são diferentes de associação de dados.As conexões entre os controles em uma zona Web Parts usam uma interface para criar um contrato entre os controles.Associação de dados é uma conexão entre um controle e um dispositivo de armazenamento ou banco de dados back-end.Conexões Web Parts movem dados somente entre os controles em uma página.

  • Conexões podem ser personalizadas.Configurações de conexão que indicam quais controles estão conectados podem ser armazenadas com segurança com outros dados de personalização.Para obter mais informações sobre personalização, consulte Visão geral sobre personalização de Web Parts.

Classes de Conexões Essenciais

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

Controles Web Parts

Descrição

WebPartManager

Gerencia todas as conexões entre os controles na zona Web Parts em uma página.Um (e somente um) controle WebPartManager é necessário para cada página de Partes Web.

WebPartZoneBase

WebPartZone

A classe base WebPartZoneBase fornece o contexto necessário no qual os controles de servidor podem se conectar e trocar de dados.Você pode herdar a classe base para criar uma zona personalizada, ou usar o controle WebPartZone como a zona real para conter os controles de servidor envolvidos em uma conexão.

WebPartConnection

Representa uma conexão, com referências para o provedor e consumidor, e todos os outros componentes de uma conexão necessários.

ConnectionPoint

ProviderConnectionPoint

ConsumerConnectionPoint

A classe base ConnectionPoint define um objeto que está associado a um provedor ou consumidor e contém os detalhes necessários para a troca de dados.O ProviderConnectionPoint está associado com o provedor, e o ConsumerConnectionPoint está associado o consumidor.

ConnectionsZone

Fornece uma interface de usuário que permite aos usuários criar conexões dinâmicas e em tempo de execução entre os controles de servidor.

Consulte também

Tarefas

Como: Declarar uma conexão estático entre dois controles Web Parts

Conceitos

Visão geral sobre Web Parts do ASP.NET

Referência

WebPartConnection

ConnectionPoint

Visão Geral do Conjunto de Controle Web Parts