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.

Campo(s) obrigatório(s) da clausula WHERE 

Para ter um entendimento melhor sobre como o sistema funciona fiz uma apresentação no Prezi.
Confira aqui um teste do código gerado.
Documentação automática gerada ShrinkQuickestLayer

Comentários

Postagens mais visitadas deste blog

O que é Nagios?

Instalando NagiosQL com mysqli

Instalando o Nagios em 30 passos