Através de um exemplo que tem por finalidade registrar produtos, clientes e itens vendidos, o MVC é posto em prática e até mesmo a camada de persistência é desenvolvida, sendo empregado o framework Aurelius para a tarefa de salvar os dados em um banco de dados relacional.
Também são explicados conceitos importantes relacionados à orientação a objetos, como a agregação e composição.
A programação orientada a objetos apresenta muitas vantagens na hora de desenvolvimento de uma aplicação, e também, durante sua vida útil, pois por meio dela se torna possível escrever códigos com funções reutilizáveis, economizando muito código, além de deixar o código fonte melhor organizado, facilitando a vida do desenvolvedor.
No entanto, o sistema de armazenamento de dados mais utilizado atualmente no mercado são os bancos de dados relacionais, estes que por sua vez não são compatíveis com as classes de um sistema orientado a objetos.
Para essa incompatibilidade damos o nome de impedância e para resolver este problema foram concebidos os frameworks ORM (Object Relational Mapping – Mapeamento Objeto Relacional), estes frameworks desempenham o papel de trazer as classes do sistema para o mesmo nível dos bancos de dados relacional.
O ORM é utilizado para fazer a abstração do banco de dados e por meio dele é possível fazer consultas ou persistências no banco sem que seja necessário, por parte do desenvolvedor, escrever códigos SQL, pois estes são feitos pelo próprio framework.
Outra vantagem de utilizar ORM na hora de desenvolver é a liberdade do programador para utilizar qualquer banco de dados, ou até mesmo qualquer componente de conexão.
No caso específico do Aurelius, por meio dos adapters (será explicado mais adiante) a aplicação em si fica completamente isenta de particularidades com o sistema de armazenamento de dados, ou seja, se futuramente for necessário modificar o BD, basta mudar a classe do Adapter e deixar que o framework faça a adaptação do outro sistema de armazenamento de dados.
Para o desenvolvimento de aplicações utilizando ORM em Delphi foram criados diversos frameworks, entre eles podemos destacar o Aurelius, DORM, entre outros.
Neste artigo vamos estudar com mais detalhes a persistência de objetos utilizando o framework Aurelius, que é uma ferramenta brasileira, inicialmente criada como um trabalho de conclusão de curso e mais tarde, com melhorias, foi incorporado a gama de produtos da TMS.
O Aurelius faz a conexão no BD por meio do padrão Adapter, este que, por sua vez, consiste em criar uma camada intermediária que expressa componente que, por algum motivo, pode estar fora da arquitetura de sua aplicação, ou seja, se futuramente ocorrer alguma mudança na classe adaptada, basta executar as devidas alterações na classe Adapter e o sistema já está pronto para funcionar normalmente.
Utilizando as classes chamadas de domínio, indicamos todas as características necessárias para atender os determinados requisitos de seu sistema, para este processo é dado o nome de mapeamento, que é uma importante etapa do desenvolvimento de um software, pois é nessa fase que são definidas as características das classes de domínio do sistema e as características do banco de dados da aplicação.
Para desempenhar esse trabalho, o Aurelius disponibiliza recursos como, por exemplo, o Automapping, onde é feito o mapeamento de forma automática, bastando seguir os padrões de nomenclaturas de classes e atributos como, por exemplo, TClass e FField. Existe também o mapeamento por Custom Attributes, onde são colocadas tags do nome de cada campo, bem como o da tabela e assim por diante, conforme as necessidades do sistema.
Entendo a arquitetura MVC
Uma vez com a conexão feita e as classes mapeadas, é hora de
iniciar o desenvolvimento utilizando o padrão MVC, empregando as camadas model,
view e controller. Para a view, que é a camada de apresentação do sistema, uma
boa prática é fazer o protótipo da tel ...