Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo

O artigo explica os conceitos básicos da tecnologia Entity Framework, utilizada para realizar o acesso a dados da aplicação, aplicando o conceito de mapeamento objeto relacional. Além disso, será possível entende o uso do WPF(Windows Presentation Foundation), utilizado para a criação de interfaces ricas para Windows.


Em que situação o tema é útil

Neste artigo será utilizado o conceito de separação de camadas, onde a ideia básica é que você possa desenvolver uma aplicação para “N” banco de dados. Além disso, utilizando a metodologia deste artigo, será possível criar uma aplicação e utilizar a mesma, para ASP.NET e Windows Forms, sem a necessidade de recriar as regras de negócios e o acesso a dados.

Entity Framework e WPF – CRUD em camadas com Entity Framework.

O WPF(Windows Presentation Foundation) é uma tecnologia utilizada para criar interfaces ricas Windows, obtendo todo o ganho visual através dos componentes gráficos e possibilitando uma experiência rica do usuário com a aplicação. O Entity Framework é uma tecnologia que auxilia no desenvolvimento do acesso a dados da aplicação, utilizando o conceito ORM(Object-relational mapping), onde você basicamente cria um espelho de suas tabelas, gerando classes que servem como entidades. Aplicando as duas tecnologias, você tem a possibilidade de realizar a separação da UI(User Interface) do acesso a dados da aplicação, assim aplicando o conceito N-Camadas, onde o WPF se encaixa para a interface do usuário e o Entity Framework para a camada de dados.

Existem muitas metodologias para desenvolvimento software. No momento que você prepara um projeto para o desenvolvimento de uma aplicação, a primeira questão a ser analisada é a estrutura do projeto, os frameworks e as metodologias que serão aplicadas. Uma boa prática de projeto que você pode utilizar em suas aplicações é o N-camadas. A ideia é dividir o projeto em várias partes, sendo que todas as partes do mesmo ficam independente uma das outras. Utilizando esta metodologia, você tem a possibilidade de dividir a aplicação em partes, além de permitir que as melhorias de software (implementação de novos recursos, por exemplo), não venham a interferir em todo projeto, melhorando a manutenção do software, possibilitando melhorar o trabalho em equipe, onde cada desenvolvedor vai possuir uma parte especifica do projeto para desenvolver.

A forma mais comum utilizada no conceito N-camadas, é a de 3 camadas (3-tier), conforme mostra a Figura 1, muito utilizada em aplicações web. Geralmente neste modelo de aplicações, existe uma camada para a apresentação ou interface com usuário (Presentation), uma camada para a lógica de negócio ou regras de negócio (Business) e uma camada para os dados (Data). Este conceito é bastante difundido atualmente, sendo cada uma destas camadas alocadas em um servidor diferente para tornarem-se independentes. Um exemplo clássico é pensar em lojas populares, onde existem centenas de filiais e geralmente uma única matriz. Se nessas lojas as aplicações fossem desenvolvidas utilizando o conceito N-Camadas, não seria necessário criar uma aplicação Client e outra Server. Neste caso, somente seria desenvolvido um único projeto, e neste, haveria a separação de camadas, seguindo os pontos citados anteriormente. Quando a aplicação fosse distribuída, você simplesmente iria selecionar que as UI, seriam alocadas em máquinas Client, onde se aplicado à analogia de lojas populares, seriam aquelas que servem para consultas de preços e realização de pedidos. Na Matriz, poderia ser concentrado a UI, BLL (Business Logic Layer) e DAL(Data Access Layer).

Abaixo segue uma breve descrição de cada camada.

  • UI – É a Interface com o usuário, você pode imaginar uma aplicação em ASP.NET com os controles GridView, TextBox, Button, entre outros. As ações de listar informações e até mesmo persistir dados ou ainda validar regras de negocio (como CPF), não são centralizadas nesta camada. A utilização de CSS, JavaScript deve ser aplicado nesta camada.
  • DAL – Camada de acesso a dados da aplicação, a ideia é que toda a persistência com o banco de dados seja realizado a partir desta camada. Na prática, retorno de informações como pesquisas, inserção de registros, atualização e exclusão são realizadas a partir desta camada.
  • BLL – Responsável pelas regras de negocio da aplicação, isto é, tudo que envolva lógica de negocio. A formatação de um CPF, baixa de estoque, se um cliente possui débito(e com isso não pode realizar compras), e assim como qualquer outra regra que a aplicação possua.
  • Utilizando este conceito de camadas, você também tem a possibilidade de criar uma aplicação com “N” interfaces (Desktop, Mobile e Web), um tema para um futuro artigo.

    Nota do DevMan

    De uma forma prática, quando citado aplicações Client/Server é muito comum passar a ideia de que a aplicação servidora é aquela onde fica o banco de dados e geralmente regras de negocio da aplicação. Diferente do Client, que serve apenas para consultas e realização de algumas operações.

    Figura 1. Desenvolvimento em 3 Camadas

    Nota do DevMan

    Um programa de aplicação em n-camadas é um aplicativo desenvolvido de forma a ter várias camadas lógicas. Cada camada é autocontida o suficiente, de forma que, a aplicação pode ser dividida em vários computadores em uma rede distribuída.

    CRUD – Create, Read, Update e Delete

    Esta sigla é utilizada quando você deseja referenciar os principais métodos de acesso a dados em uma aplicação.

    Os métodos CRUD estão presentes em todas as aplicações que fazem uso de banco de dados (ao menos um deles). São eles que permitem que as informações alimentadas pelo usuário possam ser gravadas no banco de dados e posteriormente atualizadas, lidas e até excluídas, quando necessário.

    No .NET Framework antes da versão 3.5, os métodos CRUD eram muito utilizados com o auxilio do ADO .NET, tanto na utilização via código, como na utilização de DataSets tipados, onde sempre era necessário utilizar comandos SQL. Uma das grandes problemáticas deste modelo é a deficiência que o .NET tem de gerenciar este código SQL.

    Na versão 3.5 do .NET Framework, foi adicionado suporte ao LINQ (Language Integrated Query), desta forma, os desenvolvedores .NET dispõem de mais uma forma de implementação CRUD, agora utilizando uma sintaxe mais próxima a realidade orientada a objetos, com o auxílio do Entity Framework.

    Nota do DevMan

    Language Integrated Query (LINQ) é uma tecnologia do .NET Framework que adiciona funcionalidades de consulta em algumas linguagens de programação .NET. O LINQ corresponde a uma sintaxe unificada, inicialmente incorporada às linguagens C# e Visual Basic, para consultas em fontes de dados.

    Entity Framework

    Uma das maiores reclamações de desenvolvedores .NET, era por algum framework que lhes auxilia-se na persistência dos dados de uma aplicação, sem que houvesse a necessidade de trabalhar diretamente com banco de dados, reduzindo a impedância entre a orientação a objetos e os bancos de dados relacionais.

    Com o lançamento do Entity Framework, que é o framework da Microsoft para suprir esta necessidade, muito tem se utilizado esta tecnologia para ajudar os desenvolvedores neste processo.

    O Entity Framework permite que o desenvolvedor não se preocupe com comandos SQL, necessário para realizar consultas na base de dados, desta forma, permitindo que este seja visualizado de uma forma orientada a objetos. Através do EF (Entity Framework) as tabelas do banco de dados são representadas por classes no mundo orientado a objetos, facilitando a compreensão e manipulação das informações.

    Basicamente, o Entity Framework realiza a leitura do banco de dados com base em uma conexão definida pelo desenvolvedor (ou também pelo próprio usuário, através do arquivo App.Config ou Web.Config), e transforma as tabelas deste banco de dados em classes .NET, onde suas propriedades/atributos representam as colunas, das tabelas físicas no banco. Esta implementação de classes é também conhecida como “Mapeamento”.

    ...
    Quer ler esse conteúdo completo? Seja um assinante e descubra as vantagens.
    • 473 Cursos
    • 10K Artigos
    • 100 DevCasts
    • 30 Projetos
    • 80 Guias
    Tenha acesso completo