Compartilhar via


Instruções passo a passo: criando e acessando um WCF Data Services no Visual Studio

Este passo a passo demonstra como criar um WCF Data Services simples que é hospedado em um aplicativo Web do ASP.NET e como acessá-lo de um aplicativo do Windows Forms.

Neste passo a passo, você realizará as seguintes tarefas:

  • Criará um aplicativo Web para hospedar um WCF Data Services.

  • Criará um Modelo de Dados de Entidade que representa a tabela Customers no banco de dados da Northwind.

  • Criará um WCF Data Services.

  • Criará um aplicativo cliente e adicionará uma referência ao WCF Data Services.

  • Habilitará a associação de dados ao serviço e gerará a interface de usuário.

  • Se desejar, adicionará recursos de filtragem ao aplicativo.

Pré-requisitos

Você precisa dos seguintes componentes para concluir esta instrução passo a passo:

Criando o serviço

Para criar um WCF Data Services, você adicionará um projeto Web, criará um Modelo de Dados de Entidade e, em seguida, criará o serviço usando o modelo.

Na primeira etapa, você adicionará um projeto Web para hospedar o serviço.

Dica

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 Personalizando configurações de desenvolvimento no Visual Studio.

Para criar o projeto Web

  1. Na barra de menus, escolha Arquivo, Novo, Projeto.

  2. Na caixa de diálogo Novo Projeto, expanda os nós Visual Basic ou Visual C# e Web e escolha o modelo Aplicativo Web ASP.NET.

  3. Na caixa de texto Nome, insira NorthwindWeb e escolha o botão OK.

  4. Na caixa de diálogo Novo Projeto ASP.NET, na lista Selecionar um modelo, escolha Vazio e o botão OK.

Nesta etapa, você criará um Modelo de Dados de Entidade que representa a tabela Customers no banco de dados da Northwind.

Para criar o Modelo de Dados de Entidade

  1. Na barra de menus, escolha Projeto, Adicionar Novo Item.

  2. Na caixa de diálogo Adicionar Novo Item, escolha o nó Dados e, em seguida, o item Modelo de Dados de Entidade ADO.NET.

  3. Na caixa de texto Nome, insira NorthwindModel e escolha o botão Adicionar.

    O Assistente do Modelo de Dados de Entidade é aberto.

  4. No Assistente de modelo de dados de entidade, no escolher conteúdo do modelo página, escolha o EF Designer de banco de dados item e, em seguida, escolha o próximo botão.

  5. Na página Escolha a Conexão de Dados, executa uma das seguintes etapas:

    • Se uma conexão de dados com o banco de dados de exemplo Northwind estiver disponível na lista suspensa, selecione-a.

      -ou-

    • Escolha o botão Nova Conexão para configurar uma nova conexão de dados. Para obter mais informações, consulte How to: Create Connections to SQL Server Databases.

  6. Se o banco de dados exigir uma senha, escolha o botão de opção Sim, inclua os dados confidenciais da cadeia de conexão e escolha o botão Próximo.

    Dica

    Se uma caixa de diálogo for exibida, escolha Sim para salvar o arquivo no seu projeto.

  7. Na página Escolha sua versão, escolha o botão de opção Entity Framework 5.0 e o botão Avançar.

    Dica

    Para usar a versão mais recente do Entity Framework 6 com Serviço WCF, você precisará instalar o pacote NuGet do provedor do Entity Framework do WCF Data Services.Consulte Usando o WCF Data Services 5.6.0 com o Entity Framework 6+.

  8. Na página Escolher Objetos do Banco de Dados, expanda o nó Tabelas, marque a caixa de seleção Clientes e escolha o botão Concluir.

    O diagrama do modelo da entidade será exibido e um arquivo NorthwindModel.edmx será adicionado ao projeto.

Nesta etapa, você vai criar e testar o serviço de dados.

Para criar o serviço de dados

  1. Na barra de menus, escolha Projeto, Adicionar Novo Item.

  2. Na caixa de diálogo Adicionar Novo Item, escolha o nó Web e, em seguida, o item WCF Data Services 5.6.

  3. Na caixa de texto Nome, insira NorthwindCustomers e escolha o botão Adicionar.

    O arquivo NorthwindCustomers.svc aparece no Editor de Códigos.

  4. No Editor de Códigos, localize o primeiro comentário TODO: e substitua o código pelo seguinte:

    Inherits DataService(Of northwindEntities)
    
    public class NorthwindCustomers : DataService<northwindEntities>
    
  5. Substitua os comentários no manipulador de eventos InitializeService pelo seguinte código:

    config.SetEntitySetAccessRule("*", EntitySetRights.All)
    
    config.SetEntitySetAccessRule("*", EntitySetRights.All);
    
  6. Na barra de menus, selecione Depurar, Iniciar sem Depurar para executar o serviço. Uma janela do navegador é aberta e o esquema XML do serviço é exibido.

  7. Na barra Endereço, digite Customers no fim da URL para NorthwindCustomers.svc e escolha a tecla ENTER.

    É exibida uma representação XML dos dados na tabela Customers.

    Dica

    Em alguns casos, o Internet Explorer interpretará incorretamente os dados como um RSS feed.Você deve verificar se a opção para exibir RSS feeds está desabilitada.Para obter mais informações, consulte Solucionando problemas de referências de serviço.

  8. Feche a janela do navegador.

Nas próximas etapas, você criará um aplicativo cliente do Windows Forms para consumir o serviço.

Criando o aplicativo cliente

Para criar o aplicativo cliente, você vai adicionar um segundo projeto, adicionar uma referência de serviço ao projeto, configurar uma fonte de dados e criar uma interface do usuário para exibir os dados do serviço.

Na primeira etapa, você vai adicionar um projeto do Windows Forms à solução e defini-lo como o projeto de inicialização.

Para criar o aplicativo cliente

  1. Na barra de menus, escolha Arquivo, Adicionar, Novo Projeto.

  2. Na caixa de diálogo Novo Projeto, expanda os nós Visual Basic ou Visual C# e escolha o nó Windows e, em seguida, Aplicativo de Windows Forms.

  3. Na caixa de texto Nome, insira NorthwindClient e escolha o botão OK.

  4. No Gerenciador de Soluções, escolha o nó de projeto NorthwindClient.

  5. Na barra de menus, escolha Projeto, Definir como Projeto de Inicialização.

Nesta etapa, você adicionará uma referência de serviço ao WCF Data Services no projeto Web.

Para adicionar uma referência de serviço

  1. Na barra de menus, escolha Projeto, Adicionar Referência de Serviço.

  2. Na caixa de diálogo Adicionar Referência de Serviço, escolha o botão Descobrir.

    A URL do serviço NorthwindCustomers é exibida no campo Endereço.

  3. Escolha o botão OK para adicionar a referência de serviço.

Nesta etapa, você vai configurar um fonte de dados para habilitar a associação de dados ao serviço.

Para habilitar a associação de dados ao serviço

  1. Na barra de menus, escolha Exibir, Outras Janelas, Fontes de Dados.

  2. Na janela Fontes de Dados, escolha o botão Adicionar Nova Fonte de Dados.

  3. Na página Escolher um Tipo de Fonte de Dados do Assistente de Configuração de Fonte de Dados, escolha Objeto e, em seguida, o botão Próximo.

  4. Na página Selecionar os Objetos de Dados, expanda os nós NorthwindClient e NorthwindClient.ServiceReference1.

  5. Marque a caixa de seleção Customer e escolha o botão Finalizar.

Nesta etapa, você criará a interface do usuário que exibirá os dados do serviço.

Para criar a interface do usuário

  1. Na janela Fontes de Dados, abra o menu de atalho do nó Customers e escolha Copiar.

  2. No designer de formulário Form1.vb ou Form1.cs, abra o menu de atalho e escolha Colar.

    Um controle DataGridView, um componente BindingSource e um componente BindingNavigator são adicionados ao formulário.

  3. Escolha o CustomersDataGridView controle e, em seguida, no propriedades janela conjunto a encaixe propriedade preencher.

  4. Em Solution Explorer, abra o menu de atalho para o Form1 nó e escolha Exibir código para abrir o Editor de códigos e adicione a instrução Imports ou use a instrução na parte superior do arquivo:

    Imports NorthwindClient.ServiceReference1
    
    using NorthwindClient.ServiceReference1;
    
  5. Adicione o seguinte código ao manipulador de eventos do Form1_Load:

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Dim proxy As New NorthwindEntities _
    (New Uri("https://localhost:53161/NorthwindCustomers.svc/"))
            Me.CustomersBindingSource.DataSource = proxy.Customers
        End Sub
    
    private void Form1_Load(object sender, EventArgs e)
    {
    NorthwindEntities proxy = new NorthwindEntities(new Uri("https://localhost:53161/NorthwindCustomers.svc/"));
    this.CustomersBindingSource.DataSource = proxy.Customers;
    }
    
  6. No Gerenciador de Soluções, abra o menu de atalho do arquivo NorthwindCustomers.svc e escolha Exibir no Navegador. O Internet Explorer é aberto e o esquema XML do serviço é exibido.

  7. Copie a URL da barra de endereços do Internet Explorer.

  8. No código que você adicionou na etapa 4, selecione https://localhost:53161/NorthwindCustomers.svc/ e o substitua pela URL que acabou de copiar.

  9. Na barra de menus, escolha Depurar, Iniciar Depuração para executar o aplicativo. As informações do cliente são exibidas.

Agora você tem um aplicativo funcional que exibe uma lista de clientes do serviço NorthwindCustomers. Se desejar expor dados adicionais por meio do serviço, você pode modificar o Modelo de Dados de Entidade para incluir tabelas adicionais do banco de dados da Northwind.

Na próxima etapa opcional, você aprenderá como filtrar os dados que são retornados pelo serviço.

Adicionando recursos de filtragem

Nesta etapa, você personalizará o aplicativo para filtrar os dados por cidade do cliente.

Para adicionar a filtragem por cidade

  1. No Gerenciador de Soluções, abra o menu de atalho do nó Form1.vb ou Form1.cs e escolha Abrir.

  2. Adicione um controle TextBox e um controle Button da Caixa de Ferramentas ao formulário.

  3. Abra o menu de atalho do controle Button e escolha Exibir Código e, em seguida, adicione o seguinte código ao manipulador de eventos Button1_Click:

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim proxy As New northwindEntities _
    (New Uri("https://localhost:53161/NorthwindCustomers.svc"))
            Dim city As String = TextBox1.Text
    
            If city <> "" Then
                Me.CustomersBindingSource.DataSource = From c In _
             proxy.Customers Where c.City = city
            End If
    
        End Sub
    
    private void Button1_Click(object sender, EventArgs e)
    {
    ServiceReference1.northwindModel.northwindEntities proxy = new northwindEntities(new Uri("https://localhost:53161/NorthwindCustomers.svc"));
    string city = TextBox1.Text;
    
    if (!string.IsNullOrEmpty(city)) {
    this.CustomersBindingSource.DataSource = from c in proxy.Customers where c.City == city;
    }
    
    }
    
  4. No código anterior, substitua https://localhost:53161/NorthwindCustomers.svc pela URL do manipulador de eventos Form1_Load.

  5. Na barra de menus, escolha Depurar, Iniciar Depuração para executar o aplicativo.

  6. Na caixa de texto, insira London e escolha o botão. Somente os clientes de London são exibidos.

Consulte também

Tarefas

Como adicionar, atualizar ou remover uma referência de WCF Data Services