Um conhecimento só é válido quando compartilhado.

quinta-feira, 22 de setembro de 2016

ORMBr - Uma visão aérea

Neste arquivo vou tentar mostrar para você uma visão aérea do ORMBr Framework, ele é separado por camadas, e cada camada são independente uma da outra, proporcionando assim usar qualquer camada em outro projeto que eu queira e haja necessidade.

Nessa imagem most o fluxograma, das camadas existentes veja abaixo:


Como citei acima o fluxograma mostra as camadas existentes, cada camada tem suas Units, vou relacionar para que serve cada camada, mas não vou relacionar aqui quais units de cada camada.

Dependency Injection - Essa camada como o nome já diz, traz independência da criação das classe produtos concreto, diretos em nosso projeto, hoje as independências são duas uma para o TClientDataSet e outra para o TFDMenTable.

Driver - Essa camada cuida de tudo que se refere ao banco de dados, nela podemos definir nossa conexão, transações e executar os comando SQL que venham a ser necessários. Essa camada é expansível, podendo existir N drivers, hoje temos para os bancos MSSQL, FireBird, MySQL e SQLite.
Devemos considerar essa camada como unica, pois ela deverá servir para todo o projeto, seu uso foi mostrado no artigo ORMBr - Como criar uma conexão ?

Bind - Essa camada é responsável a nos proporcionar o usar pelo o ORMBr os famosos TDataSet e os componentes dbwares.
Na camada Bind teremos todos os recursos como Insert, Append, Edit, Delete, ApplayUpdates uso dos eventos do DataSet etc..., tudo o que já estamos acostumados, e nos bastidores essa camada trata tudo para se comunicar com a camada que irá fazer o tratamento para persistência das informações no banco.
Devemos ter uma instância do Bind para cada tabela(TDataSet) que precisarmos, no caso de mestre-detalhe por exemplo, vamos ter um Bind Mestre e outro para a Detalhe, passando assim como parâmetro para o Bind Detalhe o Bind Master.

Session - Essa camada é usada pela camada Bind, na verdade é essa camada, que tem o link direto para que o ORMBr faça tudo no banco de dados, ele é quem cuida dos objectos modelos e seus mapeamentos.
Bom ai podemos nos perguntar se é essa a camada que faz gerencia tudo como comandos, persistência etc.. no banco de dados, então para que a camada Bind acima? O motivo é que deixei essa camada para aqueles que não gostam de usar DataSet, com a existência dela, pode-se ter todos os recursos de um ORM, ignorando a camada Bind.

Metadata - Essa camada como o nome já diz, tratará de todos os recursos de gerenciamento do metadata do banco de dados, adicionando, alterando e excluindo, campos, tabelas, FK, PK etc..., a pretensão do ORMBr é ir até onde der para gerenciamento do metadata como exemplo gerenciamento de Views.

Criteria - Essa camada, já veio pronta e foi uma mão na roda para o ORMBr vui. Criteria é uma interface que criei para ser usada como esse nome, mas na verdade quem está por traz é a biblioteca GpSQLBuilder, (o uso do GpSQLBuilder, foi solicitado a autorização ao autor, que autorizou), mais informações em GpSQLBuilder.

Controller - Bom e por final, temos a camada Controller que servirá como base para que voçês possam criar seus controles herdando do TControllerBase, essa class base, já irá disponibilizar para vocês as propriedades que será alimentada após sua criação, o DataSet e o IDBConnection, disponibilizando assim dentro do seu controle o acesso necessários a essas instâncias.

É isso ai, e vamos que vamos, ainda tem muita coisa para eu passar para vocês :)

0 comentários :

Postar um comentário

SAC Automação Delphi e Lazarus

SAC Automação Delphi e Lazarus
Assine nosso SAC Automação Delphi e Lazarus para ter suporte técnico especializado em desenvolvimento

Quem sou eu

Minha foto

Proprietário/Administrador de Empresa em TI (Tecsis Informática)
  • Autor dos projetos OpenSource ORMBr, e DBCBr
  • Autor dos componentes ACBrInstall, ACBrSped, ACBrPaf, ACBrInStore, ACBrDownload.

Total de visualizações

Postagem em destaque

ORMBr - Mapeamento objeto-relacional

Mapeamento objeto-relacional ( ou ORM, do inglês: Object-relational mapping ) é uma técnica de desenvolvimento utilizada para reduzir...

Todo os direitos reservados.. Tecnologia do Blogger.

Seguidores

Google+ Seguindores