Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Acesso a dados no Delphi Prism - Artigo ClubeDelphi 130
Este artigo apresentará o uso do ADO.NET Entity Framework como uma ferramenta de mapeamento objeto/relacional para realizar uma modelagem e consultas a fontes de dados, que serão visualizadas e representadas utilizando Delphi Prism em formulário
[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da ClubeDelphi 130
Nos dias atuais, o desenvolvimento de sistemas é uma prática comumente utilizada e o que indica um bom desenvolvimento é um ótimo planejamento (análise), a competência e o prazo (tempo de desenvolvimento), entre outros fatores. A utilização de boas práticas de desenvolvimento aliadas a ferramentas que possibilitam estas práticas permitirá ganhos de produtividade e consequentemente redução do tempo de desenvolvimento, podendo assim a equipe de projeto ficar atenta às regras de análise e testes para que o sistema a ser desenvolvido seja de boa qualidade.
Ao utilizar um ambiente computacional, uma das necessidades mais básicas refere-se à persistência. Ela é a garantia da permanência das informações de uma aplicação em determinado estado, mesmo após seu encerramento. A prática mais comum para a obtenção de tal característica se faz mediante a utilização de um banco de dados relacional.
Banco de dados relacional denota um conceito, sendo este definido no SGBDR (Sistema Gerenciador de Banco de Dados Relacional), o qual possui papel muito importante na manutenção e consulta de grande volume de dados, trazendo entre outros benefícios a recuperação de falhas, velocidade nas pesquisas, acesso concorrente, integridade, independência e segurança dos dados.
A principal dificuldade gira em torno de um problema inerente à disparidade do paradigma objeto/relacional, denominada impedância de dados, que implica em um considerável esforço para transpor as diferenças existentes entre a tecnologia relacional e a orientada a objetos.
O modelo relacional é baseado em princípios matemáticos, tendo suas virtudes relacionadas à capacidade de armazenar grandes volumes de dados, provendo técnicas e conceitos adequados à garantia da integridade dos mesmos, inserindo na abordagem declarativa da linguagem SQL (Structured Query Language) uma maneira eficaz de codificar o que será feito.
Do outro lado, o modelo Orientado a Objetos está fundamentalmente atrelado à engenharia de software, evidenciando a temática imperativa da orientação a objetos, a qual faz uso de conceitos como herança, polimorfismo e encapsulamento, provando assim sua concepção no intuito de indicar como será feito.
O processo de modelagem de um sistema Orientado a Objetos e seus principais conceitos diferem na abordagem referente à tecnologia relacional, existindo muitos desafios quanto à sua utilização, incidindo no empenho em criar um esquema livre de redundâncias relacionadas ao banco de dados. Além disso, podem existir problemas relacionados a desempenho e uma série de outras incompatibilidades, que impõem dificuldades tais como: Granularidade, Subtipos, Identidade, Associações e Navegação.
Partindo deste princípio, com o Visual Studio 2008 surgiu o Linq To Sql, uma forma de utilizar o padrão Linq para realizar consultas SQL em bancos de dados. Este foi um grande avanço que permitiu deixar de escrever instruções SQL engessadas no código e passou a utilizar queries fortemente tipadas.
Após o Linq To Sql surgiu o Entity Framework como uma ferramenta ORM. Com o Entity Framework 1.0 ocorreram mudanças na forma como os desenvolvedores e os projetos passaram a trabalhar com o banco de dados, possibilitando que a atenção fique mais voltada às regras e lógicas do negócio.
O ADO.NET Entity Framework 4 permite realizar a modelagem e o acesso as informações de um Banco de Dados deixando o desenvolvedor transparente às regras de negócio podendo trabalhar com um modelo conceitual do banco de dados. Uma das vantagens é que o mapeamento dos objetos do banco e o próprio banco de dados podem ser alterados sem prejuízo para o desenvolvimento do sistema, a camada de aplicação torna-se independente da camada de acesso a dados.
Capaz de abstrair o esquema de um banco de dados relacional e apresentá-lo como um modelo conceitual, mapeando tabelas para entidades (objetos que representam dados), e preenchendo as lacunas existentes entre o modelo relacional e orientado a objetos, o ADO.NET Entity Framework é uma ferramenta ORM robusta, e suas capacidades de modelagem, acesso e manipulação de dados diminuem o ruído inerente às diferenças de impedância.
Todo o acesso a dados e armazenamento é feito através de um modelo de dados conceitual, que reflete as tabelas do banco na forma de entidades, livrando o desenvolvedor de se concentrar no seu mapeamento manual e ainda da escrita direta de consultas SQL. Essas tarefas eram tediosas e exigiam conhecimento avançado de banco de dados.
O Entity Framework é conhecido como a evolução do pacote de tecnologias ADO.NET, e sua portabilidade se estende aos mais variados bancos de dados, sendo a implementação de referência da Microsoft para o mapeamento objeto/relacional. Outra característica interessante do EF é a capacidade de suportar tipos complexos, uma novidade da última versão, bem como Lazy Loading, que permite o carregamento de entidades relacionadas conforme utilização.
O ADO.NET Entity Framework representa um grande avanço para consulta e atualização de dados relacionais, tendo em vista que as principais formas e ferramentas de manipulação de dados focavam suas estratégias em DataSet. O Entity Framework tem como principal objetivo abstrair o modelo de dados relacional em um modelo conceitual totalmente voltado a orientação a objetos, oferecendo serviços de criação, exclusão, recuperação e modificação. Apresenta um designer RAD (Rapid Application Development) para modelar entidades de dados com suporte a tipos complexos.
Nota: O ADO.NET Entity Framework 4 é a segunda versão do Entity Framework, adotando este nome por ser parte integrante do .NET 4.0, e, segundo a Microsoft este pulo de versões é para realizar uma sincronia de seus produtos.
Ao utilizar este ORM, a equipe de desenvolvimento é encorajada a iniciar escrevendo a lógica da aplicação, fazendo uso de um modelo de dados totalmente orientado a objetos e sua arquitetura simplificada.
Nota do DevMan
Realizando um comparativo do Entity Framework com o Delphi tradicional, pode-se relembrar que o Delphi já teve frameworks nativos para persistência e mapeamento objeto / relacional. O Bold (Delphi 7) era usado em aplicações Win32. O ECO (Enterprise Core Objects) surgiu no Delphi 8, mas seu uso foi descontinuado na ferramenta. O Bold foi originalmente desenvolvido por uma empresa chamada BoldSoft. Em 1997 foi lançada a primeira versão do Bold para Delphi, na época, Delphi 2. Com o advento do .NET, o ECO foi lançado e teve como base o Bold, podendo ser definido como uma evolução do Bold para o mundo .NET. O ECO fez parte de um conjunto de ferramentas destinadas à Arquitetura Dirigida ao Modelo, ou simplesmente MDA (Model Driven Architecture). A MDA possui um objetivo muito claro que é tornar independente a regra de negócio de uma aplicação.
"
Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Rodrigo Araujo
Bacharel em Ciência da Computação pela UFSM – Santa Maria/RS trabalha com Análise e Desenvolvimento de Software há mais de 10 anos. Desde 2003, utiliza tecnologias .NET.



