Compartilhar via


Demonstra Passo a passo: Criando um aplicativo de dados N-tier

Aplicativos de dados N-camadas são aplicativos que acessam os dados e são separados em várias camadas lógicas, ou camadas .Separar componentes do aplicativo em camadas separadas aumenta a manutenabilidade e escalabilidade do aplicativo.Ele faz isso permitindo adoção mais fácil de novas tecnologias que podem ser aplicadas a uma camada única sem precisar recriar a solução inteira.Um aplicativo de n camadas típico inclui uma camada de apresentação, uma camada intermediária e uma camada de dados.A camada intermediária normalmente inclui uma camada Acesso a Dados, uma camada lógica comercial e compartilhadas componentes, como autenticação e de validação.A camada de dados inclui um banco de dados relacional.Aplicativos de camada N geralmente armazenam informações sigilosas na camada da camada intermediária para manter o isolamento de usuários final que acessam o camada de apresentação de Acesso a Dados.Para obter mais informações, consulte Visão geral de aplicativo de dados de N camadas.

A maneira mais fácil para separar as várias camadas em um aplicativo de n camadas é criar projetos distintos para cada camada que você deseja incluir no seu aplicativo.Digitado DataSets contêm uma propriedade DataSet Project que determina quais projetos o código gerado DataSet e TableAdapter deve ir para.

Essa explicação passo a passo demonstra como separar DataSet e TableAdapter código em distintas biblioteca de classes projetos usando o DataSet Designer.Após você separar o DataSet e TableAdapter o código, você criará um Windows Communication Foundation Services e serviços de dados ADO.NET serviço para chamar a camada Acesso a Dados.Finalmente, você criará um aplicativo como o camada de apresentação Formulários do Windows.Essa camada acessa dados do serviço de dados.

Durante essa explicação passo a passo, você executará as seguintes tarefas:

  • Criar uma nova solução n-camada que irá conter vários projetos.

  • Adicione dois projetos biblioteca de classes à solução n-camada.

  • Crie o dataset executando o Data Source Configuration Wizard.

  • Separe a TableAdapters gerado e código de dataset em projetos distintos.

  • Criar um serviço Windows Communication Foundation (WCF) para chamar a camada Acesso a Dados.

  • Criar funções no serviço para recuperar dados de camada Acesso a Dados.

  • Crie um aplicativo para servir como a camada de apresentação Formulários do Windows.

  • Crie controles que estão acoplados a fonte de dados Formulários do Windows.

  • Escreva o código para preencher as tabelas de dados.

Para uma demonstração de vídeo, consulte Vídeo How to: Criando um aplicativo de dados N-tier.

Pré-requisitos

Para concluir esta explicação passo a passo, você precisa:

Criando a solução N-Tier e biblioteca de classes para manter o DataSet (DataEntityTier)

A primeira etapa dessa explicação passo a passo é para criar uma solução e dois projetos biblioteca de classes.A primeira biblioteca de classes manterá o conjunto de dados (o gerado digitada classe DataSet e DataTables que irão armazenar dados do aplicativo).Este projeto é usado como a camada de entidade de dados do aplicativo e está localizado normalmente na camada intermediária.O Dataset Designer é usado para criar DataSet inicial e separar automaticamente o código em classe duas bibliotecas.

Observação:

Certifique-se nome a solução e projeto corretamente antes de clicar em OK.Isso facilitará para que você concluir essa explicação passo a passo.

Para criar a solução n-camada e DataEntityTier biblioteca de classes

  1. No menu File, crie um novo projeto.

    Observação:

    O Designer de Conjunto de Dados de Conjunto de Dados é suportadaVisual Basic e translation from VPE for Csharp projetos. Crie o novo projeto em um desses idiomas.

  2. Na caixa Novo Projeto caixa de diálogo, na caixa Projeto tipos painel, clique em Windows .

  3. Clique na biblioteca de classes Modelo.

  4. nome DataEntityTier o projeto.

  5. Nome da solução NTierWalkthrough.

  6. Clique em OK.

    Uma solução que contém o projeto DataEntityTier NTierWalkthrough é criada e adicionada ao Gerenciador de Soluções .

Criar a biblioteca de classe para manter a TableAdapters (DataAccessTier)

A próxima etapa depois de criar o projeto DataEntityTier é criar outro projeto biblioteca de classes.Este projeto manterá o s TableAdapter gerado e é chamado Acesso a Dados camada do aplicativo.A camada Acesso a Dados contém as informações que é necessária para se conectar ao banco de dados e estão localizadas normalmente na camada intermediária.

Para criar o novo biblioteca de classes o TableAdapters

  1. No menu F ile,adicione um novo projeto para a solução NTierWalkthrough.

  2. No painel Templates, na caixa de diálogo New Project, clique em Class Library.

  3. nome DataAccessTier e clicar o projetoOK.

    O projeto ObjectBindingWalkthrough é criado e adicionado Solution Explorer.

Criando o Dataset

A próxima etapa é para criar um dataset tipado.DataSets digitados são criados com o classe dataset (incluindo classes DataTables) e as TableAdapter classes em um único projeto.(Todas as classes são geradas em um único arquivo.) Quando você separar o DataSet e TableAdapter s em diferentes projetos, é a classe dataset que é movido para outro projeto, deixando as classes TableAdapter no projeto original.Portanto, criar o conjunto de dados no projeto que irá conter basicamente o TableAdapter s (o projeto DataAccessTier).Você cria o dataset executando o Data Source Configuration Wizard.

Observação:

Você deve ter acesso ao banco de dados de exemplos Northwind para criar a conexão.Para informações sobre como conjunto configurar o banco de dados de exemplo Northwind, consulte Como: Instalar bancos de dados de exemplo.

Para criar o dataset

  1. Clique num projeto em Gerenciador de Soluções .

  2. No menu Data, clique em Show Data Sources.

  3. Na janela Data Sources, clique em Add New Data Source para iniciar o Data Source Configuration Wizard.

  4. Na página Choose a Data Source Type clique em Database e então clique em Next.

  5. Na página Choose your Data Connection siga um destes procedimentos:

    Se uma conexão de dados para o banco de dados de exemplo Northwind estiver disponível na lista drop-down, selecione-o.

    - ou -

    Clique em New Connection para abrir a caixa de diálogo Add/Modify Connection.Para obter mais informações, consulte Adicionar/Modificar Conexão Caixa de diálogo Box (Geral).

  6. Se o banco de dados exige uma senha, selecione a opção para incluir dados confidenciais, e clique Next.

    Observação:

    Se você selecionou um (arquivo de banco de dados local em vez de Conectando-se ao SQL servidor) talvez seja necessário se você deseja adicionar o arquivo para o projeto.clicar Sim para adicionar o arquivo de banco de dados para o projeto.

  7. Clique Next na página Save the Connection String to the Application Configuration File.

  8. Expanda o nó Tables na página Choose your Database Objects.

  9. Marque as caixas de seleção para as tabelas Customers e Orders e em seguida, clique em Finish.

    NorthwindDataSet é adicionado ao projeto DataAccessTier e aparece na caixa fontes de dados Janela.

Separando o TableAdapters do DataSet

Depois de criar o conjunto de dados, separe o classe dataset gerado da TableAdapters.Para fazer isso, definindo o DataSet Project Propriedade para o nome do projeto no qual armazenar a separados sem classe dataset.

Separando o TableAdapters do DataSet

  1. Clique duas vezes no NorthwindDataSet.xsd no Solution Explorer para abrir o dataset no Dataset Designer.

  2. Clique em uma área vazia no designer.

  3. Locate the DataSet Project node in the Properties window.

  4. Na caixa Projeto DataSet Lista, clique em DataEntityTier .

  5. On the Compilação menu, clicar Criar solução.

O DataSet e TableAdapters são separados para os dois projetos biblioteca de classes.O projeto que originalmente continha todo DataSet (DataAccessTier) agora contém somente o TableAdapters.Projeto designado na DataSet Projectpropriedade (DataEntityTier) contém o dataset tipado: NorthwindDataSet.Dataset.Designer.vb (ou NorthwindDataSet.Dataset.Designer.cs).

Observação:

Quando você separar conjuntos de dados e TableAdapters (por configuração o DataSet Projectpropriedade ), classes parcial do dataset existente no projeto não serão movidas automaticamente.Existing dataset partial classes must be manually moved to the dataset project.

Criar um novo aplicativo de serviço

Como essa explicação passo a passo demonstra como acessar a camada Acesso a Dados usando um serviço WCF, criar um novo aplicativo serviço WCF.

Para criar um novo aplicativo Serviços WCF

  1. No menu F ile,adicione um novo projeto para a solução NTierWalkthrough.

  2. Na caixa Novo Projeto caixa de diálogo, na caixa Projeto tipos painel, clique em Windows .No painel T emplates,clique em WCF serviço biblioteca .

  3. nome DataService e clicar o projetoOK.

    O projeto ObjectBindingWalkthrough é criado e adicionado Solution Explorer.

Criando métodos no nível de acesso de dados para retornar a Clientes e Pedidos de dados

O serviço de dados precisa chamar dois métodos na camada de acesso de dados: GetCustomers e GetOrders.Esses métodos retornará as tabelas Northwind Clientes e Pedidos.Crie os métodos GetCustomers e GetOrders no projeto DataAccessTier.

Para criar um método na camada Acesso a Dados que retorna a tabela Clientes

  1. Em Gerenciador de Soluções ,clique duas vezes em NorthwindDataset.xsd para abrir o conjunto de dados no Dataset Designer.

  2. Clique com o botão direito do mouse CustomersTableAdapter e clique em Adicionar para abrir a Assistente de configuração da consulta TableAdapter consulta.

  3. Em Escolher um tipo de comando página, deixe a valor padrão de instruções Use SQL e clique em Avançar .

  4. Em Escolher um tipo de consulta página, deixe a valor padrão de SELECT que retorna linhas e clique em Avançar .

  5. Em Especifica uma instrução SQL SELECT página, deixe a consulta padrão e clique em Avançar .

  6. Sobre o escolher métodos para gerar de página, digite GetCustomers para o Nome do método in the Retornar uma DataTable seção.

  7. Clique em Finish.

Para criar um método na camada Acesso a Dados que retorna a tabela Clientes

  1. (Clique com o botão direito do mouse em qualquer TableAdapter e escolha Add Query.)

  2. Em Escolher um tipo de comando página, deixe a valor padrão de instruções Use SQL e clique em Avançar .

  3. Em Escolher um tipo de consulta página, deixe a valor padrão de SELECT que retorna linhas e clique em Avançar .

  4. Em Especifica uma instrução SQL SELECT página, deixe a consulta padrão e clique em Avançar .

  5. Sobre o escolher métodos para gerar de página, digite GetOrders para o Nome do método in the Retornar uma DataTable seção.

  6. Clique em Finish.

  7. On the Compilação menu, clicar Criar solução.

Adicionando uma referência para a entidade de dados e camadas de dados do Access ao serviço de dados

Como o serviço de dados precisar de informações do conjunto de dados e TableAdapters, adicione referências para os projetos DataEntityTier e DataAccessTier.

Para adicionar referências para o serviço de dados

  1. Clique com o botão direito do mouse em DataService Gerenciador de Soluções e clique em Adicionar Referência .

  2. Na caixa de diálogo Add Reference, clique na guia .NET .

  3. Selecione ambas as a DataAccessTier e DataEntityTier projetos.

  4. Clique em OK.

O serviço de dados tem que chamar dois métodos na camada Acesso a Dados: GetCustomers e GetOrders.

Agora que a camada Acesso a Dados contém os métodos para retornar dados, criar métodos no serviço de dados para chamar os métodos na camada Acesso a Dados.

Observação:

Para projetos translation from VPE for Csharp, você deve adicionar uma referência para o System.Data.DataSetExtensions assembly para o código a seguir para compilar.

Para criar a GetCustomers e GetOrders funciona no serviço de dados

  1. No projeto DataService,clique duas vezes em IService1.vb ou IService1.cs.

  2. Adicionar o código a seguir em Adicionar o serviço operações aqui Comentário:

    <OperationContract()> _
    Function GetCustomers() As DataEntityTier.NorthwindDataSet.CustomersDataTable
    
    <OperationContract()> _
    Function GetOrders() As DataEntityTier.NorthwindDataSet.OrdersDataTable
    
    [OperationContract]
    DataEntityTier.NorthwindDataSet.CustomersDataTable GetCustomers();
    
    [OperationContract]
    DataEntityTier.NorthwindDataSet.OrdersDataTable GetOrders();
    
  3. No projeto DataService,clique duas vezes em IService1.vb ou IService1.cs.

  4. Adicione o seguinte código ao seu arquivo classe:

    Public Function GetCustomers() As DataEntityTier.NorthwindDataSet.CustomersDataTable Implements IService1.GetCustomers
        Dim CustomersTableAdapter1 As New DataAccessTier.NorthwindDataSetTableAdapters.CustomersTableAdapter
        Return CustomersTableAdapter1.GetCustomers()
    End Function
    
    Public Function GetOrders() As DataEntityTier.NorthwindDataSet.OrdersDataTable Implements IService1.GetOrders
        Dim OrdersTableAdapter1 As New DataAccessTier.NorthwindDataSetTableAdapters.OrdersTableAdapter
        Return OrdersTableAdapter1.GetOrders()
    End Function
    
    public DataEntityTier.NorthwindDataSet.CustomersDataTable GetCustomers()
    {
        DataAccessTier.NorthwindDataSetTableAdapters.CustomersTableAdapter
             CustomersTableAdapter1
            = new DataAccessTier.NorthwindDataSetTableAdapters.CustomersTableAdapter();
        return CustomersTableAdapter1.GetCustomers();
    
    }
    public DataEntityTier.NorthwindDataSet.OrdersDataTable GetOrders()
    {
        DataAccessTier.NorthwindDataSetTableAdapters.OrdersTableAdapter
             OrdersTableAdapter1
            = new DataAccessTier.NorthwindDataSetTableAdapters.OrdersTableAdapter();
        return OrdersTableAdapter1.GetOrders();
    
    }
    
  5. On the Compilação menu, clicar Criar solução.

Criar uma camada de apresentação para exibir dados a partir o serviço de dados

Agora que a solução contém o serviço de dados que tem métodos que chamam para a camada Acesso a Dados, crie outro projeto que chamará o serviço de dados e apresentar os dados para os usuários.Para essa explicação passo a passo, criar um aplicativo Formulários do Windows; essa é a camada de apresentação de n-Tier o aplicativo.

Para criar o projeto camada de apresentação

  1. No menu F ile,adicione um novo projeto para a solução NTierWalkthrough.

  2. Na caixa Novo Projeto caixa de diálogo, na caixa Projeto tipos painel, clique em Windows .Clique em Windows Application no painel Templates.

  3. Nomeie o projeto PresentationTier e clicar OK.

  4. O projeto ObjectBindingWalkthrough é criado e adicionado Solution Explorer.

Configurando o projeto PresentationTier como o projeto de inicialização

Porque o camada de apresentação é a aplicativo cliente real que é usado para apresentar e interagir com os dados, você deve definir o projeto PresentationTier para ser o projeto de inicialização.

Para definir o novo projeto camada de apresentação como o projeto de inicialização

  • No Solution Explorer, clique com o botão direito em PresentationTier e clique em Set as StartUp Project.

Adicionar referências para a camada de apresentação

O aplicativo cliente PresentationTier requer uma referência de serviço para o serviço de dados para acessar os métodos no serviço.Além disso, uma referência ao conjunto de dados é necessário para habilitar tipo compartilhamento pela serviço WCF.Até você ativar tipo compartilhamento através do serviço de dados, código adicionado para o classe dataset parcial não estará disponível para o camada de apresentação.Como você normalmente adiciona código como validação à linha e coluna alterando eventos de um tabela de dados, é provável que você desejará acessar esse código do cliente.Para obter mais informações, consulte Usando serviços WCF no Visual Studio.

Para adicionar uma referência para o camada de apresentação

  1. No Solution Explorer, clique com o botão direito do mouse no nó do projeto de clique em Add Rreference.

  2. Na caixa de diálogo Add Reference, clique na guia .NET .

  3. Selecione Database e clique em OK.

Para adicionar uma referência para o camada de apresentação

  1. No Solution Explorer, clique com o botão direito do mouse no projeto e clique em Add Service Reference.

  2. Na caixa Adicionar serviço de referência caixa de diálogo, clique em Descubra .

  3. Selecione Service1 e clique em OK .

    Observação:

    Se você tiver vários serviços no computador corrente, selecionar o serviço que você criou anteriormente nesta explicação passo a passo (o serviço que contém o GetCustomers e GetOrders Método s ).

Adicionando DataGridViews ao formulário para exibir os dados retornados pelo serviço de dados

Depois de adicionar a referência de serviço para o serviço de dados, a Data Sources janela é preenchida automaticamente com os dados que são retornados pelo serviço.

Ao adicionar dois dados DataGridViews acoplado ao formulário

  1. No Solution Explorer, selecione o projeto.

  2. Na caixa Dados Sources Janela, expanda NorthwindDataSet e localize o nó Customers.

  3. Arraste o nó Customers Form1.

  4. Na caixa Dados Sources Janela, expanda o nó Customers e localize o nó Orders relacionados (o nó Orders aninhado no nó Customers).

  5. Arraste o nó Orders relacionados Form1.

  6. Crie um Form1_Load manipulador de eventos, clicando duas vezes em uma área vazia do formulário.

  7. Adicione o seguinte código para o manipulador de eventos Form1_Load.

    Dim DataSvc As New ServiceReference1.Service1Client
    NorthwindDataSet.Customers.Merge(DataSvc.GetCustomers)
    NorthwindDataSet.Orders.Merge(DataSvc.GetOrders)
    
    ServiceReference1.Service1Client DataSvc = 
        new ServiceReference1.Service1Client();
    northwindDataSet.Customers.Merge(DataSvc.GetCustomers());
    northwindDataSet.Orders.Merge(DataSvc.GetOrders());
    

Aumentando o tamanho da mensagem máximo permitido pelo serviço

Porque o serviço retorna dados das tabelas Clientes e Pedidos, o valor padrão para maxReceivedMessageSize não é grande o suficiente para manter os dados e precisa ser aumentada.Para esta explicação passo a passo, você irá alterar o valor para 6553600.Você irá alterar o valor no cliente e isso atualizará automaticamente a referência de serviço.

Observação:

O inferior dimensionar padrão se destina a limitar a exposição a negação de serviço) Negação de serviço ) ataques.Para obter mais informações, consulte MaxReceivedMessageSize.

Para aumentar o valor maxReceivedMessageSize

  1. Em Gerenciador de Soluções ,clique duas vezes no arquivo app.config no projeto PresentationTier.

  2. Localize o atributo tamanho m axReceivedMessage e altere o valor para 6553600 .

Testando o aplicativo

Execute o aplicativo.Os dados são recuperados do serviço de dados e exibidos no formulário.

Para testar o aplicativo

  1. Pressione F5.

  2. Os dados da tabela Clientes são recuperados a partir do banco de dados local e os dados da tabela Pedidos são recuperados a partir do serviço de dados.

Próximas etapas

Dependendo dos requisitos do aplicativo, há várias etapas que você pode querer fazer depois de salvar os dados relacionados no aplicativo baseado no Windows.Por exemplo, você poderia fazer os seguintes aprimoramentos para este aplicativo:

Consulte também

Conceitos

O que Há de Novo em Dados

Outros recursos

N-Tier Data Applications

Atualização hierárquica

Acessando Dados (Visual Studio)