1 / 14

LINQ e Entity Framework

LINQ e Entity Framework. Gabriel P. S. Brenner gabrielbrenner@inb.gov.br. Objetivos.

wanda
Download Presentation

LINQ e Entity Framework

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. LINQ e Entity Framework Gabriel P. S. Brenner gabrielbrenner@inb.gov.br

  2. Objetivos O objetivo dessa apresentação é abordar o mapeamento objeto relacional (MOR) e duas soluções que surgiram em 2008 com o lançamento do Visual Studio 2008 e da Framework 3.5 que resolvem essa problemática de forma natural e transparente, integrando a sintaxe da linguagem, compilador e IDE de desenvolvimento, criando uma forma natural de utilizar objetos mapeados de Banco de Dados Relacionais.

  3. .NET Framework Parte dos mesmos princípios do JAVA; Foram utilizados os mesmos critérios de produtividade, que já existiam em IDE’s de desenvolvimento anteriores (Visual Basic 6.0, etc) para criar sua IDE (Visual Studio) Revolucionou o desenvolvimento WEB já no lançamento de sua primeira versão Atualmente possibilita o desenvolvimento de sistemas Windows e Web com praticamente a mesma agilidade

  4. Paradigmas Conflitantes A Orientação a Objetos e o modelo relacional se conflitam. O Modelo Relacional armazena os dados em estruturas lógicas, seguindo o embasamento matemático dado por CODD, baseado na teoria dos conjuntos. A Orientação a Objeto é baseada em outros pilares. Possui conceitos que não existem em bancos relacionais.

  5. Paradigmas Conflitantes - Relacional Prevê somente o armazenamento dos dados em estruturas lógicas (Tabelas), que possuam colunas (campos) e linhas (registros ou túplas) para representar os dados. Refere-se exclusivamente aos dados Todas as anomalias de atualização, exclusão e inserção podem ser removidas com a aplicação das formas normais Não aborda detalhes de implementação Serve como base para armazenamento dos dados e os SGDBs relacionais fornecem recursos para que a informação seja recuperada rapidamente

  6. Paradigmas Conflitantes - OO Prevê a personalização das entidades em objetos. Baseada nos seguintes pilares: Classes Encapsulamento Ocultação de informações e implementações Troca de Mensagens (Métodos // Propriedades // Eventos) Retenção de estado Herança Polimorfismo Construtores Representa os dados por meio de objetos Precisa persistir seus dados, para poderem ser recuperados

  7. Problemas Causados O objeto não pode ser armazenado “por inteiro”, tendo que ser mapeado cada propriedade a ser persistida com o seu respectivo campo na tabela Exige um grande trabalho com codificação somente para mapear os dados com seus respectivos recipientes O desenvolvedor, fica amarrado e precisa conhecer os dois modelos. O Modelo UML e o Modelo Relacional de todo e qualquer sistema que for desenvolver Normalmente, uma programação Orientada a Objetos no modelo tradicional, exige a codificação individual de cada método de comunicação necessário

  8. Soluções Existentes Existem diversos modelos que se propõem a solucionar esse problema, todos baseados no modelo de desenvolvimento em camadas O desenvolvimento em camadas prevê o isolamento das principais funcionalidades do sistema em camadas, seguindo os mais diversos modelos Desenvolvimento em camadas é um assunto relativamente antigo que começou a ganhar força com o surgimento de tecnologias como COM/COM+, CORBA e JBEANS.

  9. Soluções Existentes Camada intermediária que, através de um mapeamento dos objetos com seus respectivos recipientes, resolva todos os problemas de comunicação com a base de dados. Essa camada intermediária, chama-se “Camada de Persistência”. Existem camadas prontas tanto para JAVA quanto para .NET (GENTLE.NET, NHIBERNATE, HIBERNATE, CASTOR, etc.). A proposta mais atual é o LINQ to SQL e a ENTITY FRAMEWORK

  10. LINQ - Language integrated Query É um conjunto de recursos introduzidos no .NET Framework 3.5 que permitem a realização de consultas diretamente em base de dados , documentos XML , estrutura de dados , coleção de objetos ,etc. usando uma sintaxe parecida com a linguagem SQL LINQ to SQL é uma implementação específica to LINQ para o SQL Server que converte consultas escritas em C# ou Visual Basic em SQL dinâmico , provendo uma interface que permite mapear os objetos do banco de dados gerando as classes para realizar as operações usando a sintaxe LINQ; também permite realizar alterações nos objetos e atualizar o banco de dados O que é o “LINQ”

  11. É a evolução do ADO.NET acompanhando a evolução da ferramenta e a implementação do LINQ Oferece o mapeamento objeto relacional (O/R) de forma a permitir o mapeamento das tabelas do banco de dados como objetos para abstrair o acesso a dados deixando para o desenvolvedor que já conhece orientação a objetos mais um grande mecanismo de acessar o banco sem precisar ter conhecimento aprofundado de banco de dados e de T-SQL (Trasact SQL). Com o LINQ to Entity Framework você poderá fazer mapeamento para diversas bases de dados (SQLServer, Oracle, DB2, MySql, PostgreSQL, SQLite, VistaDB, Informix, Sybase ... ) assim como para outras fontes como XML e serviços. O que é o “ADO.NET Entity Framework”

  12. Linq to SQL(Exemplo) DEMONSTRAÇÃO PRÁTICA DE LINQ TO SQL

  13. Entity Framework (Exemplo) DEMONSTRAÇÃO PRÁTICA DE ADO ENTITY FRAMEWORK

  14. Conclusão • O LINQ e a Entity Framework vieram para ficar e é provável que propostas de outras tecnologias surjam seguindo a mesma linha de integração Compilador X MOR. • O mínimo que se consegue com a utilização é a padronização do desenvolvimento, o que gera ganho de produtividade e facilidade de manutenção; • Isolar o banco de dados do desenvolvimento da aplicação, torna muito mais evidente os modelos UML’s; • A aplicação ganha em portabilidade e entendimento; • A perda de performance é facilmente superada pelos ganhos para a equipe de desenvolvimento; • Em sistemas de alta escalabilidade, pode ser que a camada de persistência não seja a solução ideal.

More Related