Visão geral de associações do Windows Communication Foundation
As associações são objetos usados para especificar os detalhes de comunicação necessários para se conectar ao ponto de extremidade de um serviço WCF (Windows Communication Foundation). Cada ponto de extremidade em um serviço WCF requer uma associação bem especificada. Este tópico descreve os tipos de detalhes de comunicação definidos pelas associações, os elementos de uma associação, quais associações estão incluídas no WCF e como uma associação pode ser especificada para um ponto de extremidade.
O que uma associação define
As informações em uma associação podem ser muito básicas ou muito complexas. A associação mais básica especifica apenas o protocolo de transporte (como HTTP) que deve ser usado para se conectar ao ponto de extremidade. Em geral, as informações que uma associação contém sobre como se conectar a um ponto de extremidade se enquadram em uma das seguintes categorias:
Protocolos
Determina o mecanismo de segurança que está sendo usado, a funcionalidade de mensagens confiável ou as configurações de fluxo de contexto de transação.
Codificação
Determina a codificação de mensagem (por exemplo, texto ou binário).
Transport
Determina o protocolo de transporte subjacente a ser usado (por exemplo, TCP ou HTTP).
Os elementos de uma associação
Uma associação consiste basicamente em uma pilha ordenada de elementos de associação, em que cada um deles especifica parte das informações de comunicação necessárias para se conectar a um ponto de extremidade de serviço. As duas camadas mais baixas na pilha são necessárias. Na base da pilha está o elemento de associação de transporte e logo acima dele está o elemento que contém as especificações de codificação de mensagem. Os elementos de associação opcionais que especificam os outros protocolos de comunicação são colocados em camadas acima desses dois elementos necessários. Para obter mais informações sobre esses elementos de associação e sua ordenação correta, consulte Associações Personalizadas.
Associações fornecidas pelo sistema
As informações em uma associação podem ser complexas e algumas configurações podem não ser compatíveis com outras. Por esse motivo, o WCF inclui um conjunto de associações fornecidas pelo sistema. Essas associações foram projetadas para cobrir a maioria dos requisitos do aplicativo. As classes a seguir representam alguns exemplos de associações fornecidas pelo sistema:
BasicHttpBinding: uma associação de protocolo HTTP adequada para se conectar aos serviços Web que estão em conformidade com a especificação de Perfil Básico do WS-I (por exemplo, serviços baseados em serviços Web ASP.NET).
WSHttpBinding: uma associação interoperável adequada para se conectar a pontos de extremidade que estão em conformidade com os protocolos WS-*.
NetNamedPipeBinding: usa o .NET Framework para se conectar a outros pontos de extremidade do WCF no mesmo computador.
NetMsmqBinding: usa o .NET Framework para criar conexões de mensagem enfileiradas com outros pontos de extremidade do WCF.
NetTcpBinding: essa associação oferece um desempenho maior do que as associações HTTP e é ideal para uso em uma rede local.
Para obter uma lista completa, com descrições de todas as associações fornecidas pelo WCF, consulte Associações fornecidas pelo sistema.
Usando suas próprias associações
Se nenhuma das associações incluídas fornecidas pelo sistema tiver a combinação certa de recursos que um aplicativo de serviço exige, você poderá criar sua própria associação. Há duas maneiras de fazer isso. Você pode criar uma nova associação com base em elementos de associação pré-existentes usando um objeto CustomBinding ou pode criar uma associação completamente definida pelo usuário derivando da associação Binding. Para obter mais informações sobre como criar sua própria associação usando as duas abordagens, consulte Associações Personalizadas e Criando associações definidas pelo usuário.
Usando associações
O uso de associações envolve duas etapas básicas:
Selecionar ou definir uma associação. O método mais fácil é escolher uma das associações fornecidas pelo sistema incluídas com o WCF e usá-la com suas configurações padrão. Você também pode escolher uma associação fornecida pelo sistema e redefinir seus valores de propriedade para atender aos seus requisitos. Como alternativa, você pode criar uma associação personalizada ou uma associação definida pelo usuário para ter graus mais altos de controle e personalização.
Crie um ponto de extremidade que use a associação selecionada ou definida.
Codificar e configurar
Você pode definir associações de duas maneiras: por meio do código ou por meio da configuração. Essas duas abordagens independem se você está usando uma associação fornecida pelo sistema ou uma associação personalizada. Em geral, o uso do código fornece controle completo sobre a definição de uma associação em tempo de design. O uso da configuração, por outro lado, permite que um administrador do sistema ou o usuário de um serviço ou cliente do WCF altere os parâmetros de uma associação sem precisar recompilar o aplicativo de serviço. Essa flexibilidade geralmente é desejável porque não há como prever requisitos de computador específicos sobre os quais um aplicativo WCF deve ser implantado. Manter as informações de associação (e endereçamento) fora do código permite alterá-las sem a necessidade de recompilação ou reimplantação do aplicativo. Observe que as associações definidas no código são criadas após as associações especificadas na configuração, permitindo que as associações definidas por código substituam todas as associações definidas pela configuração.