Luiz Escobar wrote:

> ==OPF==
> Cliente := TCliente.Retrieve(ID); <<-- monta query, pesquisa, etc.
> Cliente.Nome := 'Outro Nome';
> Cliente.Save; <<-- cache, controle transacional, tudo aqui dentro.
> 
>>> E olha que eu escolhi um modelo de dados sem herança, pra ficar mumu pra 
>>> TDataset.
> 
> Ta tirei o EDIT, quer dizer só mando o valor, sem dar um EDIT, mas tenho um 
> SAVE = POST, os cache/transaction no OPF não existem ? onde eu faço varias 
> alterações e mando salvar tudo de uma vez para que se der um problema eu 
> possa fazer um ROLLBACK ???
> Este exemplo ta meio desproporcional...

Por favor, esclareça melhor a sua dúvida (ou as dúvidas).

> Pra quem acha que EDIT´s são melhores que DBEDIT´s, isso ai Fudeu com tudo 
> mesmo porque os controles ficaram mais ainda longe das mãos dos 
> programadores.... não que eu não ache isso maravilhoso, muito pelo contrario, 
> quanto menos codigo melhor...

Que controles você precisa?

> BOM mas o que o OPF do RETRIEVE usou para se ligar ao BANCO ? não foi um 
> DBWARE ? tipo um TTABLE ? TQUERY ? TDATABASE ? e para visualizar as coisas, 
> vou ter que fazer um label1.caption := cliente.nome ? 
> Explique mais, ou mostre onde posso conseguir mais coisa.... to começando a 
> gostar do bixim.... 

Cliente := TCliente.Retrieve(ID);
TClienteEditPresenter.Run(Cliente);

Em duas linhas você traz o cliente, mostra pro usuário, o usuário altera 
o que quer, clica OK, e o que o usuário alterou é enviado para o banco 
em uma única transação.

TClienteEditPresenter.Run;

Em uma linha você faz tudo o que eu falei acima, mas ao invés de 
alterar, você cria um novo cliente. Detalhe - nem precisa se preocupar 
em criar instância de coisa nenhuma. Nem destruir (use o FastMM se você 
não acredita).

>> ==DBAware==
>>
>> DBAware é orientado a TDataset (win32) e ainda assim fica pendurado em 
>> um componente (DB*) e a um datasource. Se você quer um componente 
>> 'Combo' mais envenenado, ele tem que entender DBAware. Se o seu Dataset 
>> estiver em um DataModule e por desencargo do destino a ligação quebrar 
>> (nisso o Delphi melhorou um bocado), você tem que reabrir o form e 
>> refazer a bendita.
> 
> é isso de quebrar realmente acontecia muito com D2.... mas no D6 nunca 
> aconteceu comigo....

E eu te juro que na época eu achava uma coisa "normal".

>> ==MVP==
>>
>> MVP é totalmente desacoplado, é o framework que entende o componente, e 
>> não o contrário. O formulário que usa o padrão MVP *não tem código*, 
>> você pode mandar os .pas e os .dfm para uma empresa de design, entregar 
>> uma licença de Delphi pra eles, eles usam qualquer componente que eles 
>> quiserem, você tras os novos formulários para o seu projeto e recompila. 
>> A única exigência é que os componentes continuem com o mesmo nome, 
>> porque MVP pode ser bom, mas não é feiticeiro.
> 
> HUmmm isso realmente parece bom...

Isso é só o começo.

>> Teria mais um monte pra falar, mas encerro aqui minha participação nessa 
>> thread com esse mini-artigo (a menos que os colegas tenham dúvidas).
> 
> Vixe... varias... mas vamos deixar para quando vc chegar no BETA ai eu vou 
> ser um que vai querer testar isso ai... porque em PRÉ-ALFA, num vai dar....

Pré alfa não significa cangalha. Significa que ainda tem mais código pra 
vir. Eu, no seu lugar, baixaria e fuçaria até virar do avesso. Pra quem 
gosta de Assembly isso é um prato cheio.

O framework está estável, como eu já te disse, tenho ele em produção.

--
João Morais



> Valeu e obrigado....
> 
> 
> 
> Luiz Escobar
> Analista/Desenvolvedor:
> WEB - HTML/JavaScript/PHP/MySQL 
> WINDOWS - Delphi/MyDAC/ASSEMBLER/MySQL/xBase
> DOS - Clipper/Assembler xBase
> SERVIDORES - NetWare4.11, LINUX-REDHAT9, WINDOWS-2k
> LINUX - LAZARUS/Kylix/MySQL;
> http://www.megasistema.com.br
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> 
> 

Responder a