OpenSourceCommunityBrasil / REST-DataWare

Repositório oficial do pacote Rest Dataware para Delphi e Lazarus
GNU General Public License v3.0
146 stars 43 forks source link

[Feature Request] Criação de Physic Drivers para reduzir acoplamento e dependência do .inc #128

Closed mobius1qwe closed 1 year ago

mobius1qwe commented 2 years ago

Descrição da sugestão

O PhysDriver (ou PhysEngine) seria um componente inicialmente baseado nos drivers que seria essencial pro funcionamento do ClientSQL, podendo ser baseado em outras MemTables do mercado.

O ClientSQL passa a ser apenas uma casca que encapsula os comandos fornecidos pelo PhysDriver (ou PhysEngine) através de uma propriedade obrigatória nele.

O ClientSQL continua sendo instalável pelo pacote Core porém depende de um Driver ou de um PhysDriver (ou PhysEngine) pra poder ser usado. Com isso elimina a dependência do Pacote Core ao FireDAC ou bdertl e às diretivas contidas nos arquivos de inclues (.Inc).

Motivo da Mudança Reduzir acoplamento de código, total de linhas de código e otimizar o memtable e dbware criando novas possibilidades

DelcioSbeghen commented 2 years ago

Seguindo uma linha semelhante, outro dia estava pensando se seria possível criar um Driver Physic do RestDataware para o Firedac. Assim quem usa Firedac, precisaria somente alterar o Driver do TFDConnection para RDW e setar as propriedades da conexão com o server via propriedade TFDConnection.Params, não seria necessário alterar nenhum Dataset do projeto, toda a abstração de comunicação com o servidor RDW seria feita pelo Physic do RestDW, da mesma forma que o Firedac faz com os diferentes tipos de conexão que já existem. Até tenho alguns exemplos que peguei na web de como implementar e registrar esses drivers no Firedac, mas como meu Delphi é o Pro, não tenho os fontes do Firedac, aí fica difícil de implementar. Não conheço muito o Zeus, mas que sabe fosse possível implementar dessa maneira também, isso seria uma mão na roda pra quem planeja migrar para o RDW.

mobius1qwe commented 2 years ago

sim, essa ideia é o que tá sendo implementado, os Physic drivers vão ser a ponte entre o componente de conexão e o RDW e vão ser instalados de acordo com o pacote de driver, daí se você instalar o DriverFD, vai instalar o PhysicDriver do FD para o RDW, se instalar o DriverZeos, vai instalar o PhysicDriver do Zeos pra RDW e assim por diante

mobius1qwe commented 2 years ago

informações atualizadas no primeiro post, maiores informações serão alteradas lá também

mobius1qwe commented 1 year ago

Implementado no commit: https://github.com/OpenSourceCommunityBrasil/REST-DataWare/commit/2c38ce6815f6948450652661223ee4227ba36f1f