Os serviços do Windows Communication Foundation e serviços de dados do WCF em Visual Studio

Visual Studio2008 fornece ferramentas para trabalhar com o Windows Communication Foundation (WCF) e WCF Data Services, as tecnologias da Microsoft para a criação de aplicativos distribuídos.Este tópico fornece uma introdução aos serviços de um Visual Studio perspectiva.

O que é o WCF?

Windows Communication Foundation (WCF)é uma estrutura unificada para criar aplicativos distribuídos seguros, confiáveis, transacionados e interoperáveis.Em versões anteriores do Visual Studio, havia várias tecnologias que podem ser usadas para comunicação entre aplicativos.

Se você quiser compartilhar informações de forma a habilitar o acesso a partir de qualquer plataforma, você usaria um Web Service(também conhecido como ASMX Web Service).Se você quisesse apenas mover dados entre um cliente e servidor em execução no sistema operacional Windows, você usaria.NET Remoting.Se você quisesse comunicações transacionadas, você usaria Corporativa Services (DCOM) ou se você quisesse um modelo na fila você usaria enfileiramento de Mensagens (também conhecido como MSMQ).

O WCF reúne a funcionalidade de todas essas tecnologias em um modelo de programação unificado.Isso simplifica a experiência de desenvolvimento de aplicativos distribuídos.

Bb907578.collapse_all(pt-br,VS.110).gifQuais são os serviços de dados do WCF

WCF Data Servicessão serviços que interagem diretamente com um banco de dados, permitindo que você retorne dados usando verbos HTTP padrão, como GET, POSTAGEM, COLOCAM ou excluir.Em geral, WCF Data Services são uma boa opção para aplicativos que são usados para criar, atualizar ou excluir registros em um banco de dados.Para obter mais informações, consulte ADO.Estrutura de serviços de dados do NET.

Bb907578.collapse_all(pt-br,VS.110).gifModelo de programação do WCF

O modelo de programação do WCF baseia-se na comunicação entre duas entidades: um serviço WCF e um cliente WCF.O modelo de programação é encapsulado na System.ServiceModel espaço para nome no .NET Framework.

Bb907578.collapse_all(pt-br,VS.110).gifServiço WCF

Um serviço WCF baseia-se em uma interface que define um contrato entre o serviço e o cliente.Ele é marcado com um ServiceContractAttribute de atributo, como mostrado no código a seguir:

<ServiceContract()>
Public Interface IService1
[ServiceContract]
public interface IService1
<OperationContract()>
Function GetData(ByVal value As String) As String
[OperationContract]
string GetData(string value);

Você define as funções ou métodos que são expostos por um serviço WCF, marcando-os com um OperationContractAttribute atributo.Além disso, você pode expor dados serializados marcando um tipo composto com um DataContractAttribute atributo.Isso permite ligação de dados em um cliente.

Depois que uma interface e seus métodos estiverem definidos, eles são encapsulados em uma classe que implementa a interface.Uma classe de serviço WCF simples pode implementar múltiplos contratos de serviço.

Um serviço WCF é exposto para consumo por meio do que é conhecido como um ponto de extremidade.O ponto de extremidade fornece a única maneira de se comunicar com o serviço; Você não pode acessar o serviço por meio de uma referência direta, como você faria com outras classes.

Um ponto de extremidade consiste em um endereço, uma ligação e um contrato.O endereço define onde o serviço está localizado; Isso poderia ser uma URL, um endereço FTP, ou uma rede ou caminho local.Uma ligação define a maneira que você se comunica com o serviço.Ligações do WCF fornecem um modelo de versátil para especificar um protocolo como, por exemplo, HTTP ou FTP, um mecanismo de segurança, como a autenticação do Windows ou nomes de usuário e senhas e muito mais.Um contrato inclui as operações que estão expostas pela classe de serviço WCF.

Vários pontos de extremidade podem ser expostos para um único serviço WCF.Isso permite que diferentes clientes para se comunicar com o mesmo serviço de maneiras diferentes.E/por exemplo, um serviço bancário pode fornecer um ponto de extremidade para funcionários e outra para os clientes externos, cada um usando um endereço diferente, ligação, ou do contrato.

Bb907578.collapse_all(pt-br,VS.110).gifCliente do WCF

Um cliente WCF consiste em um proxy que permite que um aplicativo para se comunicar com um serviço WCF e um ponto de extremidade que corresponda a um ponto de extremidade definidos para o serviço.O proxy será gerado no lado do cliente no arquivo app. config e inclui informações sobre os tipos e métodos que são expostos pelo serviço.Para serviços que exponham vários pontos de extremidade, o cliente poderá selecionar aquele que melhor atenda às suas necessidades, por exemplo, para se comunicar por HTTP e usar a autenticação do Windows.

Após ter sido criado um cliente WCF, você referenciar o serviço em seu código como faria com qualquer outro objeto.Por exemplo, para chamar o GetData método mostrado anteriormente, você poderia escrever um código semelhante ao seguinte:

  Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
      Dim client As New ServiceReference1.Service1Client
      Dim returnString As String

      returnString = client.GetData(TextBox1.Text)
      Label1.Text = returnString
  End Sub
private void button1_Click(System.Object sender, System.EventArgs e)
{
    ServiceReference1.Service1Client client = new
        ServiceReference1.Service1Client();
    string returnString;

    returnString = client.GetData(textBox1.Text);
    label1.Text = returnString;
}

Ferramentas WCF no Visual Studio

Visual Studio2008 fornece ferramentas para ajudá-lo a criar serviços WCF e clientes do WCF.Para uma explicação passo a passo que demonstra as ferramentas, consulte Passo a passo: Criando e acessando os serviços WCF.

Bb907578.collapse_all(pt-br,VS.110).gifCriar e testar os serviços WCF

Você pode usar o WCF Visual Studio modelos como base para criar rapidamente seu próprio serviço.Em seguida, você pode usar o Host de Auto serviço WCF e o cliente de teste do WCF para depurar e testar o serviço.Juntos, essas ferramentas fornecem um rápido e conveniente de depuração e o ciclo de testes e eliminam a necessidade de confirmar a um modelo de hospedagem mais cedo possível.

Bb907578.collapse_all(pt-br,VS.110).gifModelos do WCF

O WCF Visual Studio modelos fornecem uma estrutura de classe básica para desenvolvimento de serviços.Vários modelos WCF estão disponíveis na Add New Project caixa de diálogo.Isso inclui projetos WCF Service Library, o WCF Service Web Sites e modelos de Item de serviço do WCF.

Quando você seleciona um modelo, os arquivos são adicionados para um contrato de serviço, uma implementação de serviço e uma configuração de serviço.Todos os atributos necessários são adicionados, criar um tipo simples de "Hello World" do serviço, e não é necessário gravar nenhum código.Você, claro, desejará adicionar código para fornecer funções e métodos para o serviço do mundo real, mas os modelos fornecem os princípios básicos.

Para saber mais sobre os modelos do WCF, consulte WCF Visual Studio Templates.

Bb907578.collapse_all(pt-br,VS.110).gifHost de serviço do WCF

Quando você inicia o Visual Studio do depurador (pressionando F5) para um projeto de serviço do WCF, o Host de serviço do WCF é iniciada automaticamente para hospedar o serviço localmente.Host de serviço do WCF enumera os serviços em um projeto de serviço do WCF, carrega a configuração do projeto e instancia um host para cada serviço que encontra.

Usando o Host de serviço do WCF, você pode testar um serviço WCF sem escrever código extra ou confirmar a um host específico durante o desenvolvimento.

Para saber mais sobre o Host de serviço do WCF, consulte WCF Service Host (WcfSvcHost.exe).

Bb907578.collapse_all(pt-br,VS.110).gifCliente de teste do WCF

A ferramenta cliente de teste do WCF permite que você teste parâmetros de entrada, submeter que a entrada para um serviço WCF e exiba a resposta que o serviço envia de volta.Ele fornece um serviço conveniente experiência em testes ao combinar com o Host de serviço do WCF.

Quando você pressiona F5 para depurar um projeto de serviço do WCF, o cliente de teste do WCF abre e exibe uma lista de pontos de extremidade de serviço que são definidos no arquivo de configuração.Você pode testar os parâmetros e iniciar o serviço e repita este processo para continuamente testar e validar o seu serviço.

Para saber mais sobre o cliente de teste do WCF, consulte WCF Test Client (WcfTestClient.exe).

Bb907578.collapse_all(pt-br,VS.110).gifAcessando os serviços WCF no Visual Studio

Visual Studiosimplifica a tarefa de criação de clientes do WCF, automaticamente, gerando um proxy e um ponto de extremidade para serviços que você adicionar, usando o Add Service Reference caixa de diálogo.Todas as informações de configuração necessárias são adicionadas ao arquivo app. config. A maioria das vezes, tudo o que você precisa fazer é instanciar o serviço para usá-lo.

O Add Service Reference caixa de diálogo permite que você digite o endereço de um serviço ou para procurar por um serviço que está definido na sua solução.A caixa de diálogo retorna uma lista de serviços e as operações fornecidas por esses serviços.Ele também permite que você defina o espaço para nome pelo qual você fará referência os serviços no código.

O Configurar referências de serviço caixa de diálogo permite que você personalize a configuração de um serviço.Você pode alterar o endereço de um serviço, especifique o nível de acessar, comportamento assíncrono e tipos de contrato de mensagens e configurar reutilização de tipo.

Como: selecionar um ponto de extremidade de serviço

Alguns serviços do Windows Communication Foundation (WCF) exponham vários pontos de extremidade por meio do qual um cliente pode se comunicar com o serviço.Por exemplo, um serviço pode expor um ponto de extremidade que usa um nome de usuário e a ligação HTTP / segurança de senha e um segundo ponto de extremidade que usa autenticação do Windows e FTP.O primeiro ponto de extremidade pode ser usado por aplicativos que acessam o serviço de fora de um firewall, enquanto o segundo pode ser usado em uma intranet.

Nesse caso, você pode especificar o endpointConfigurationName como um parâmetro para o construtor para uma referência de serviço.

ObservaçãoObservação

Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Configurações de Visual Studio.

Para selecionar um ponto de extremidade de serviço

  1. Adicione uma referência a um serviço WCF.Para obter mais informações, consulte Como: adicionar, atualizar ou remover uma referência de serviço.

  2. No Editor de código, adicione um construtor para a referência de serviço:

    Dim proxy As New ServiceReference.Service1Client(
    
    ServiceReference.Service1Client proxy = new ServiceReference.Service1Client(
    
    ObservaçãoObservação

    Substitua ServiceReference com o namespace para a referência de serviço e a substituição Service1Client com o nome do serviço.

  3. Será exibida uma lista de IntelliSense com sobrecargas para o construtor.Selecione o endpointConfigurationName As String de sobrecarga.

  4. Após a sobrecarga, digite = ConfigurationName, onde ConfigurationName é o nome do ponto de extremidade que você deseja usar.

    ObservaçãoObservação

    Se você não souber os nomes dos pontos de extremidade disponíveis, você pode encontrá-los no arquivo app. config.

Para encontrar os pontos de extremidade disponíveis para um serviço WCF

  1. Em Solution Explorer, o botão direito do mouse no arquivo app. config para o projeto que contém a referência de serviço e, em seguida, clique em Abrir.O arquivo será exibido no Editor de código.

  2. Procure o <Client> marca no arquivo.

  3. Pesquisar sob o <Client> a marca de uma marca que começa com <Endpoint>.

    Se a referência de serviço fornece vários pontos de extremidade, haverá dois ou mais <Endpoint marcas.

  4. Dentro do <EndPoint> marca, você encontrará um name="SomeService" parâmetro (onde SomeService representa um nome de ponto de extremidade).Este é o nome da empresa que pode ser passado para o endpointConfigurationName As String a sobrecarga de um construtor para uma referência de serviço.

Como: chamar um método de serviço de forma assíncrona

A maioria dos métodos nos serviços Windows Communication Foundation (WCF) pode ser chamado de forma síncrona ou assíncrona.Chamar um método de forma assíncrona, permite que seu aplicativo para continuar a trabalhar enquanto o método está sendo chamado quando ele opera em uma conexão lenta.

Por padrão, quando uma referência de serviço é adicionada a um projeto ele é configurado para chamar métodos de forma síncrona.Você pode alterar o comportamento para chamar os métodos de forma assíncrona, alterando uma configuração na Configure Service Reference caixa de diálogo.

ObservaçãoObservação

Essa opção é definida em uma base por serviço.Se um método para um serviço é chamado de forma assíncrona, todos os métodos devem ser chamados de forma assíncrona.

ObservaçãoObservação

Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Configurações de Visual Studio.

Para chamar um método de serviço de forma assíncrona

  1. Em Solution Explorer, selecione a referência de serviço.

  2. Sobre o projeto menu, clique em Configure Service Reference.

  3. No Configure Service Reference caixa de diálogo, selecione o operações assíncronas de gerar caixa de seleção.

Como: vincular dados retornados por um serviço

Você pode vincular os dados retornados por um serviço Windows Communication Foundation (WCF) para um controle, exatamente como você pode vincular qualquer outra fonte de dados a um controle.Quando você adiciona uma referência a um serviço WCF, se o serviço contém tipos compostos que retornam dados, eles são adicionados automaticamente para o Fontes de dados janela.

Para vincular um controle a único campo de dados retornado por um serviço WCF

  1. No menu Data, clique em Show Data Sources.O Fontes de dados janela será exibida.

  2. No Fontes de dados janela, expanda o nó para sua referência de serviço.Tipos compostos que retornado pelo serviço serão exibidos.

  3. Expanda um nó para um tipo.Os campos de dados para esse tipo serão exibidos.

  4. Selecione um campo e clique na seta suspensa para exibir uma lista de controles disponíveis para o tipo de dados.

  5. Clique no tipo de controle que você deseja vincular a.

  6. Arraste o campo para um formulário.O controle será adicionado ao formulário junto com um BindingSource componente e um BindingNavigator componente.

  7. Repita as etapas 4, embora a 6 para qualquer um dos outros campos que você deseja ligar.

Para vincular um controle a tipo composto retornado por um serviço WCF

  1. Sobre o dados menu, selecione Show Data Sources.O Fontes de dados janela será exibida.

  2. No Fontes de dados janela, expanda o nó para sua referência de serviço.Tipos compostos que retornado pelo serviço serão exibidos.

  3. Selecione um nó para um tipo e clique na seta suspensa para exibir uma lista de opções disponíveis.

  4. Clique em DataGridView para exibir os dados em uma grade ou detalhes para exibir os dados em controles individuais.

  5. Arraste o nó para o formulário.Os controles serão adicionados ao formulário junto com um BindingSource componente e um BindingNavigator componente.

Como: configurar um serviço para reutilizar os tipos existentes

Quando uma referência de serviço é adicionada a um projeto, todos os tipos definidos no serviço são gerados do projeto local.Em muitos casos, isso cria tipos duplicados quando um serviço usa comuns .NET Framework tipos ou quando os tipos são definidos em uma biblioteca compartilhada.

Para evitar esse problema, os tipos em assemblies referenciados são compartilhados por padrão.Se você quiser desativar o compartilhamento para um ou mais assemblies de tipo, você pode fazer assim, o Configurar referências de serviço caixa de diálogo.

Para desativar o compartilhamento em um único assembly de tipo

  1. Em Solution Explorer, selecione a referência de serviço.

  2. Sobre o projeto menu, clique em Configure Service Reference.

  3. No Configurar referências de serviço caixa de diálogo, selecione usar novamente os tipos em assemblies referenciados especificados.

  4. Marque a caixa de seleção para cada assembly no qual você deseja ativar o compartilhamento de tipo.Para desativar o compartilhamento de um conjunto de tipo, deixe a caixa de seleção desmarcada.

Para desativar o compartilhamento em todos os assemblies de tipo

  1. Em Solution Explorer, selecione a referência de serviço.

  2. Sobre o projeto menu, clique em Configure Service Reference.

  3. No Configurar referências de serviço caixa de diálogo, limpar o usar novamente os tipos em assemblies referenciados caixa de seleção.

Tópicos relacionados

Título

Descrição

Passo a passo: Criando e acessando os serviços WCF

Fornece uma demonstração passo a passo de criação e uso de serviços WCF no Visual Studio.

Passo a passo: Criando e acessando um serviço de dados do WCF no Visual Studio

Fornece uma demonstração passo a passo de como criar e usar WCF Data Services na Visual Studio.

Using the WCF Development Tools

Discute como criar e testar os serviços WCF no Visual Studio.

Como: adicionar, atualizar ou remover uma referência de serviço

Descreve como adicionar, atualizar ou remover os serviços WCF de um projeto.

Como: adicionar, atualizar ou remover uma referência de serviço WCF dados

Discute como referência e usar WCF Data Services na Visual Studio.

Como: adicionar uma referência a um serviço da Web

Descreve como adicionar uma referência a um Web service XML (ASMX) a um projeto.

Solucionando problemas de referências de serviço

Apresenta alguns erros comuns que podem ocorrer com referências de serviço e como evitá-los.

Depuração dos serviços WCF

Descreve problemas comuns de depuração e técnicas que você pode encontrar ao depurar serviços WCF.

Windows Communication Foundation Authentication Service Overview

Descreve como usar o WCF para fornecer um serviço de função para um site da Web.

Messaging in the .NET Compact Framework

Descreve o suporte para a camada de mensagens do WCF na.NET Compact Framework.

Passo a passo: Criando um aplicativo de dados de n camadas

Provides step-by-step instructions for creating a typed dataset and separating the TableAdapter and dataset code into multiple projects.

Adicionar caixa de diálogo de referência de serviço

Descreve os elementos de interface do usuário do Add Service Reference caixa de diálogo.

Configurar a caixa de diálogo de referência de serviço

Descreve os elementos de interface do usuário do Configure Service Reference caixa de diálogo.

Referência

System.ServiceModel

System.Data.Services