Informações Principais
     Resumo
     Abstract
     Introdução
     Conclusão
     Download
  
  
  
 
Conclusão
 
 
Acadêmico(a): Thiago Boufleuhr
Título: Protótipo de um ORM para Plataforma .Net: Framework de Mapeamento Objeto Relacional
 
Conclusão:
Segundo Lhotka (2009), a construção de uma ferramenta que realize o mapeamento lógico de estruturas de objetos convencionais para estruturas relacionais, deve ser voltada para as características da plataforma em que a mesma será utilizada, a fim de obter os melhores resultados em termos de desempenho e portabilidade, devido às diversas maneiras na qual o mesmo problema pode ser resolvido.
Com base nos pontos levantados acima, observou-se a que a plataforma .NET necessitava de um mecanismo reutilizável de acesso e manipulação de dados relacionais mapeados através de objetos, e que principalmente não transpareça para o desenvolvedor qual Sistema Gerenciador de Banco de Dados (SGBD) esteja-se utilizando.
Embora existam diversas tecnologias que solucionam o problema de mapeamento objeto-relacional em C# no mercado, muitas delas não seguem o padrão de desenvolvimento recomendado pela Microsoft para a plataforma .NET (MSDN, 2007), o que dificulta a compreensão das funcionalidades e dos conceitos particulares da ferramenta por parte dos desenvolvedores acostumados com a plataforma.
Dessa forma, surgiu a necessidade de desenvolver uma ferramenta genérica de mapeamento de objetos para o modelo relacional ou ORM para a plataforma .NET visando auxiliar na persistência e recuperação de objetos escritos na linguagem C# de forma transparente para o desenvolvedor. Assim sendo, torna o desenvolvimento de qualquer solução, que faça uso de banco de dados, mais simples de ser utilizada, pois conta com o suporte integrado ao LINQ no qual facilita a construção de consultas utilizando puramente objetos, atendendo completamente a um dos objetivos deste protótipo.
Dentre um dos principais objetivos deste protótipo, eliminou-se completamente a necessidade de mapear as classes escritas em C# utilizando qualquer tipo de arquivo secundário como, por exemplo, arquivos XML. O mapeamento é realizado decorando-se a classe e suas propriedades com atributos customizados disponibilizados pelo protótipo, atendendo a outro objetivo deste protótipo.
Para o objetivo de simplificar o uso de chaves primárias compostas, foi disponibilizado na classe ColumMap uma propriedade denominada IsPrimaryKey, na qual pode ser utilizada em quaisquer propriedades que reflitam tal comportamento na tabela no banco de dados.
Por fim, o objetivo de simplificar o uso de relacionamentos entre classes mapeadas foi atingido mediante a implementação de um mecanismo que valida o tipo de dados da propriedade que representa o relacionamento a fim de verificar se o mesmo possui o atributo TableMap em seu metadado, dessa forma toma-se como parâmetro que o tipo representa um relacionamento.
Segundo Lhotka (2009), a construção de uma ferramenta que realize o mapeamento lógico de estruturas de objetos convencionais para estruturas relacionais, deve ser voltada para as características da plataforma em que a mesma será utilizada, a fim de obter os melhores resultados em termos de desempenho e portabilidade, devido às diversas maneiras na qual o mesmo problema pode ser resolvido.
Com base nos pontos levantados acima, observou-se a que a plataforma .NET necessitava de um mecanismo reutilizável de acesso e manipulação de dados relacionais mapeados através de objetos, e que principalmente não transpareça para o desenvolvedor qual Sistema Gerenciador de Banco de Dados (SGBD) esteja-se utilizando.
Embora existam diversas tecnologias que solucionam o problema de mapeamento objeto-relacional em C# no mercado, muitas delas não seguem o padrão de desenvolvimento recomendado pela Microsoft para a plataforma .NET (MSDN, 2007), o que dificulta a compreensão das funcionalidades e dos conceitos particulares da ferramenta por parte dos desenvolvedores acostumados com a plataforma.
Dessa forma, surgiu a necessidade de desenvolver uma ferramenta genérica de mapeamento de objetos para o modelo relacional ou ORM para a plataforma .NET visando auxiliar na persistência e recuperação de objetos escritos na linguagem C# de forma transparente para o desenvolvedor. Assim sendo, torna o desenvolvimento de qualquer solução, que faça uso de banco de dados, mais simples de ser utilizada, pois conta com o suporte integrado ao LINQ no qual facilita a construção de consultas utilizando puramente objetos, atendendo completamente a um dos objetivos deste protótipo.
Dentre um dos principais objetivos deste protótipo, eliminou-se completamente a necessidade de mapear as classes escritas em C# utilizando qualquer tipo de arquivo secundário como, por exemplo, arquivos XML. O mapeamento é realizado decorando-se a classe e suas propriedades com atributos customizados disponibilizados pelo protótipo, atendendo a outro objetivo deste protótipo.
Para o objetivo de simplificar o uso de chaves primárias compostas, foi disponibilizado na classe ColumMap uma propriedade denominada IsPrimaryKey, na qual pode ser utilizada em quaisquer propriedades que reflitam tal comportamento na tabela no banco de dados.
Por fim, o objetivo de simplificar o uso de relacionamentos entre classes mapeadas foi atingido mediante a implementação de um mecanismo que valida o tipo de dados da propriedade que representa o relacionamento a fim de verificar se o mesmo possui o atributo TableMap em seu metadado, dessa forma toma-se como parâmetro que o tipo representa um relacionamento.