Resumo:
Ontem escrevi sobre ORM, mas apenas apresentei o conceito. Hoje vamos ver o que se espera de uma camada ORM e algumas dicas de como implementá-la.
Uma das coisas que se espera de uma camada ORM é que ela não gere retrabalho. Um tipo de retrabalho comum em aplicações tradicionais é: criar a estrutura do banco de dados e, depois, precisar criar classes que referenciam as tabelas. Como foi apresentado ontem, existe muita semelhança entre a estrutura do BD e as classes que utilizam o conceito de ORM (chamo estas classes de "classes entidades" ou, simplesmente, "entidades", por se tratarem de classes com características especiais).
Já que os atributos da classe serão semelhantes às colunas da tabela, pra que especificá-las duas vezes? E se precisar mudar em um lugar, ter que mudar no outro. A solução é que sua camada ORM seja capaz de realizar a chamada "reflexão" em um dos lados e aplicar as regras do outro (vou explicar).