Tutorial: Criar um cliente do Windows Communication Foundation

Este tutorial descreve a quarta de cinco tarefas necessárias para criar um aplicativo básico do Windows Communication Foundation (WCF). Para obter uma visão geral dos tutoriais, consulte Tutorial: Introdução aos aplicativos do Windows Communication Foundation.

A próxima tarefa para criar um aplicativo WCF é criar um cliente recuperando metadados de um serviço WCF. Você usa o Visual Studio para adicionar uma referência de serviço, que obtém os metadados do ponto de extremidade MEX do serviço. Em seguida, o Visual Studio gera um arquivo de código-fonte gerenciado para um proxy de cliente no idioma escolhido. Ele também cria um arquivo de configuração do cliente (App.config). Esse arquivo permite que o aplicativo cliente se conecte ao serviço em um ponto de extremidade.

Nota

Se você chamar um serviço WCF de um projeto de biblioteca de classes no Visual Studio, use o recurso Adicionar referência de serviço para gerar automaticamente um proxy e um arquivo de configuração associado. No entanto, como os projetos de biblioteca de classes não usam esse arquivo de configuração, você precisa adicionar as configurações no arquivo de configuração gerado ao arquivo App.config para o executável que chama a biblioteca de classes.

Nota

Como alternativa, use a ferramenta ServiceModel Metadata Utility em vez do Visual Studio para gerar a classe proxy e o arquivo de configuração.

O aplicativo cliente usa a classe proxy gerada para se comunicar com o serviço. Este procedimento é descrito em Tutorial: Usar um cliente.

Neste tutorial, irá aprender a:

  • Crie e configure um projeto de aplicativo de console para o cliente WCF.
  • Adicione uma referência de serviço ao serviço WCF para gerar a classe proxy e os arquivos de configuração.

Criar um cliente do Windows Communication Foundation

  1. Crie um projeto de aplicativo de console no Visual Studio:

    1. No menu Arquivo, selecione Abrir>projeto/solução e navegue até a solução GettingStarted que você criou anteriormente (GettingStarted.sln). Selecione Abrir.

    2. No menu Exibir, selecione Gerenciador de Soluções.

    3. Na janela Gerenciador de Soluções, selecione a solução GettingStarted (nó superior) e selecione Adicionar>Novo Projeto no menu de atalho.

    4. Na janela Adicionar Novo Projeto, no lado esquerdo, selecione a categoria Área de Trabalho do Windows em Visual C# ou Visual Basic.

    5. Selecione o modelo Aplicativo de Console (.NET Framework) e digite GettingStartedClient para o Nome. Selecione OK.

  2. Adicione uma referência no projeto GettingStartedClient ao System.ServiceModel assembly:

    1. Na janela Gerenciador de Soluções, selecione a pasta Referências no projeto GettingStartedClient e, em seguida, selecione Adicionar Referência no menu de atalho.

    2. Na janela Adicionar Referência, em Montagens no lado esquerdo da janela, selecione Estrutura.

    3. Localize e selecione System.ServiceModel e, em seguida, escolha OK.

    4. Salve a solução selecionando Arquivo>Salvar tudo.

  3. Adicione uma referência de serviço ao serviço de calculadora:

    1. Na janela Gerenciador de Soluções, selecione a pasta Referências no projeto GettingStartedClient e, em seguida, selecione Adicionar Referência de Serviço no menu de atalho.

    2. Na janela Adicionar Referência de Serviço, selecione Descobrir.

      O serviço CalculatorService é iniciado e o Visual Studio o exibe na caixa Serviços .

    3. Selecione CalculatorService para expandi-lo e exibir os contratos de serviço implementados pelo serviço. Deixe o Namespace padrão e escolha OK.

      Visual Studio adiciona um novo item na pasta Connected Services no projeto GettingStartedClient .

Ferramenta ServiceModel Metadata Utility

Os exemplos a seguir mostram como usar opcionalmente a ferramenta ServiceModel Metadata Utility (Svcutil.exe) para gerar o arquivo de classe proxy. Essa ferramenta gera o arquivo de classe proxy e o arquivo App.config . Os exemplos a seguir mostram como gerar o proxy em C# e Visual Basic, respectivamente:

svcutil.exe /language:cs /out:generatedProxy.cs /config:app.config http://localhost:8000/GettingStarted/CalculatorService
svcutil.exe /language:vb /out:generatedProxy.vb /config:app.config http://localhost:8000/GettingStarted/CalculatorService

Arquivo de configuração do cliente

Depois de criar o cliente, o Visual Studio cria o arquivo de configuração App.config no projeto GettingStartedClient , que deve ser semelhante ao exemplo a seguir:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup>
            <!-- specifies the version of WCF to use-->
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
        </startup>
        <system.serviceModel>
            <bindings>
                <!-- Uses wsHttpBinding-->
                <wsHttpBinding>
                    <binding name="WSHttpBinding_ICalculator" />
                </wsHttpBinding>
            </bindings>
            <client>
                <!-- specifies the endpoint to use when calling the service -->
                <endpoint address="http://localhost:8000/GettingStarted/CalculatorService"
                    binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ICalculator"
                    contract="ServiceReference1.ICalculator" name="WSHttpBinding_ICalculator">
                    <identity>
                        <dns value="localhost" />
                    </identity>
                </endpoint>
            </client>
        </system.serviceModel>
    </configuration>

Na seção system.serviceModel>, observe o <elemento de ponto de extremidade>.< O <elemento endpoint> define o ponto de extremidade que o cliente usa para acessar o serviço da seguinte maneira:

  • Endereço: http://localhost:8000/GettingStarted/CalculatorService. O endereço do ponto de extremidade.
  • Contrato de prestação de serviços: ServiceReference1.ICalculator. O contrato de serviço lida com a comunicação entre o cliente WCF e o serviço. O Visual Studio gerou esse contrato quando você usou sua função Adicionar referência de serviço. É essencialmente uma cópia do contrato que você definiu no projeto GettingStartedLib.
  • Vinculação: WSHttpBinding. A associação especifica HTTP como transporte, segurança interoperável e outros detalhes de configuração.

Próximos passos

Neste tutorial, ficou a saber como:

  • Crie e configure um projeto de aplicativo de console para o cliente WCF.
  • Adicione uma referência de serviço ao serviço WCF para gerar a classe proxy e os arquivos de configuração para o aplicativo cliente.

Avance para o próximo tutorial para aprender a usar o cliente gerado.