LINQ e Entity Framework

Slides:



Advertisements
Apresentações semelhantes
Sistemas Cliente/Servidor Introdução
Advertisements

Engenharia de Software
Evolução dos SGBD’s (2ª Parte).
LPOO Classe e objeto.
Resumo 1.1) Introdução 1.2) Abordagem Convencional de Arquivos
Projeto 1.
Maurício Edgar Stivanello
FACULDADE DOS GUARARAPES
Um Processo Baseado em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 7 de abril de.
Mapeamento Objeto Relacional
Módulo III Camada de Persistência
Introdução ao paradigma de programação: Orientado a Objetos
Material III-Bimestre Wagner Santos C. de Jesus
Tecnologia da Informação Orientação a Aspectos
DESENVOLVIMENTO DE UM WEB SITE PARA VÍDEO LOCADORA
Professor Victor Sotero
Hibernate Apresentação
Introdução a JDBC Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Java Persistence API (JPA) Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Mapeamento de Objetos para Tabelas Relacionais
Administração de Sistemas de Informação Banco de Dados
DOCUMENTO CONFIDENCIAL DA MICROSOFT Set 2009 | Página 1 | Apresentação para BDMs.
Middleware e Sistemas Distribuídos
DESENVOLVENDO APLICAÇÕES JAVA PARA WEB UTILIZANDO OS FRAMEWORKS STRUTS 2 E HIBERNATE Alexandre Oliveira.
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
É um conjunto de registos dispostos numa estrutura regular que possibilita a reorganização dos mesmos e a produção de informação com a menor redundância.
ACESSO A BASE DE DADOS.
Curso de ISI (Implantação de Sistemas de Informação)
Introdução ao Hibernate
1.
XIII Jornada de Cursos .NET com C# Lucas Mello Flávio Almeida.
Gerência de Configuração - GC
Professor: Márcio Amador
Orientação a Objetos Parte I
Arquitetura de Desenvolvimento Web MVC vs. Three Tiers
A abordagem de banco de dados para gerenciamento de dados
Framework para mapeamento objeto-relacional
Projeto de Sistemas de Informação Prof. Schneider Oracle Object-Relational.
Um alternativa para o armazenamento
Paradigmas da Programação – Semestre 2 – Aula 1 Professores: Fábio de Paula Santos Eduardo Mantovani
DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.
Hibernate Universidade Federal do Rio Grande do Sul Instituto de Informática Web e Sistemas de Informação (2004/2005) Objetos Distribuídos Prof. Dr. Cláudio.
Nilson de Souza Rego Jr.1 Persistência de Dados em.
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Banco de Dados Universidade do Estado de Santa Catarina
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.
Daniel Paulo Banco de dados: é uma coleção/conjunto de registros relacionados.  Exemplo: O banco de dados de uma Universidade.
UCSal – Bacharelado em Informática
UCSal – Bacharelado em Informática Banco de Dados Profa. Semíramis Assis
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
Equipe: Kéren Glaucya Marco Aurélio. INTRODUÇÃO  JCreator é um IDE, ou seja, é um Ambiente de Desenvolvimento Integrado, criado pela empresa Xinox Software.
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
MDA na Prática Flávia Durans Pitta Marinho
Bancos de Dados Sistema de Banco de dados – sistema de manutenção de registros por computador. É considerado como uma sala.
Desenvolvimento WEB II Ajax – Utilização de Frameworks Javascript Professora: Kelly de Paula Cunha.
Acesso a Banco de Dados com o JDBC Prof. M.Sc. Ronnison Reges Vidal.
Modelagem de dados XML Yago Zacarias Gomes Coutinho Ribeiro
SOA SOA – Arquitetura Orientada a Serviços Conceitos e Aplicações
Aula 1.  O que é?  Porque usar?  Onde é usado?  Como funciona?  SGBD  Linguagem SQL  Alguns Exemplos de tecnologias conhecidas.
Banco de Dados Parte 1 Profa. Ana Karina Barbosa Fevereiro/2008.
CIn-UFPE1 Projeto de Gerenciamento de Dados. CIn-UFPE2 Objetivos n Definir o que significa gerenciamento de dados do sistema; n Entender abordagens diferentes.
Modelo Relacional Introduzido por Ted Codd, da IBM Research, em Utiliza o conceito de relação matemática. Possui base teórica na teoria dos conjuntos.
ALUNO: RONI FABIO BANASZEWSKI Model-View-Controller.
1.
Persistência de dados e padrão DAO
Modelagem de Dados Aula 3.
Persistência de dados e padrão DAO Padrões de Projeto Orientado a Objetos Profa. Danielle Martin/Mauricio Universidade de Mogi das Cruzes.
Prof.: Jean Carlo Mendes
BANCO DE DADOS BASE DE DADOS – É UMA COLEÇÃO DE DADOS INTER- RELACIONADOS, REPRESENTANDO INFORMAÇÕES SOBRE UM DOMÍNIO ESPECÍFICO. EX.: LISTA TELEFONICA,
Transcrição da apresentação:

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

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.

.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

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.

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

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

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

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.

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

O que é o “LINQ” 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 “ADO.NET Entity Framework” É 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.

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

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

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.