Mapeamento objeto-relacional (Object Relational Mapper)

Por definição, ORM é uma técnica de desenvolvimento utilizada para reduzir a diferença que existe entre os modelos de dados relacionais e os orientados a objetos. As tabelas do banco de dados são representadas através de classes e os registros de cada tabela são representados como instâncias das classes correspondentes.
Partindo desse princípio, iniciei um projeto para criar meu próprio ORM visando agilizar o processo de desenvolvimento de futuros sistemas e aprender um pouco mais sobre o assunto. Para isso, utilizei a linguagem de programação C# com ASP.NET.
Basicamente, o ORM cria automaticamente toda a camada de acesso de dados seguindo o paradigma de Arquitetura Multicamada.
Algumas características contempladas no projeto são:
- Tratamento de referências circulares
- Autorreferência
- Múltiplas referências para uma mesma tabela
- Múltiplas referências para uma mesma tabela com autorreferência
- Documentação do código automaticamente utilizando o padrão XML do Visual Studio
- Tratamento de erro para valores nulos dos campos da tabela
- Criação de funções básicas de Leitura, Criação, Alteração e Exclusão (CRUD) que retornam Lists, DataTable, Void ou Int
- Criação da Camada de Acesso de Dados (DAL)
- Criação da Camada de Transferência de Dados de Objetos (DTO)
- Criação da Camada de Regra de Negocio (BLL)
Uma vantagem clara da utilização desse sistema é que a arquitetura multicamada permite a separação total da interface do usuário e do acesso de dados. Outra vantagem é que a geração automática de código padroniza e economiza tempo para focar em outros aspectos do sistema.
Tela de alteração da clausula WHERE |
Inicialmente o Shrink Quickest Layer foi desenvolvido para gerar o código sem interferência do usuário, porém ele permite alterações básicas das clausulas WHERE das consultas SQL.Todo o código é gerado com tratamento de erro.
Após a geração do código fonte pelo ORM, no processo de instanciação do objeto é informado quais campos(clausula WHERE da consulta) são obrigatórios para utilização da função.
Todos os dados inseridos ou alterados são sistematicamente validados.
Para ter um entendimento melhor sobre como o sistema funciona fiz uma apresentação no Prezi.
Comentários
Postar um comentário