Fellipe Henrique wrote:
> Olá Joao, pois bem, tenho algumas duvidas antes de iniciar no OO:
> 
> 1) O que voce quiz dizer com o IO engessa o sistema? Voce disse que pra
> objetos complexos ele é ruim, o que seria um objeto complexo por exemplo?

Objeto complexo é aquele cujo mapeamento tenha mais de um nível de 
mestre-detalhe; ex.: OrdemServico->Item->Cores.

Quanto ao engessar:

- Se você precisa de uma consulta mais elaborada, especialmente as que 
precisam consultar dentro de containers, você terá que pular a 
orientação a objetos e montar uma SQL diretamente contra o banco. SQL 
significa trabalhar com registros ao invés de objetos, então lá se vai a 
premissa do mapeamento.

- O IO irá sempre destruir e reconstruir um container quando existem 
alterações dentro dele (do container). Ex.: você tem um pedido com 200 
itens e você altera o campo obs de um dos itens. Todos os itens serão 
destruídos e reincluidos. Isto foi escolha do projeto por questões de 
consistência em alterações concorrentes (e para minha humilde opinião, 
uma escolha mal feita)

- Se você tiver um banco legado que não possa alterar, você terá 
problemas para fazer o mapeamento (se é que vai conseguir). Se a 
estrutura do banco puder começar do zero, então não tem problema.

- O framework de apresentação do IO é baseado em tdataset, ou seja, você 
continua com formulários atolados de componentes, você tem mais trabalho 
para construir ligações, enfim tudo o que um usuário de tdataset já está 
acostumado.

- O IO não é muito esperto para ler os dados, você pode ter algum 
pequeno problema de performance com modelos complexos e rede lenta. Tem 
um pessoal que estava escrevendo umas correções para esta miopia mas 
atualmente está parado.

De tudo que eu citei, 70% já foi resolvido no Press e os outros 30% 
serão resolvidos antes de sair a v1. IO, por enquanto, está com o 
desenvolvimento parado, infelizmente.

> 2) O "problema" do PRess que eu vejo, é não ter Wizard, o que pra mim que
> está começando é uma facilidade, quem sabe quando eu estiver bem nao o uso.

Beira o impossível não usar um expert. Hoje, para você que não conhece, 
usar um expert significa "ganhar" os fontes sem escrever uma única linha 
e sem conhecer qualquer sintaxe. Para quem conhece, significa trocar a 
digitação de umas 100 linhas por uns 10 clicks. A vantagem de conhecer o 
código vem com o tempo, quando você precisa fazer alterações e é mais 
prático alterar em código do que alterar via expert.

> 3) Eu posso fazer isso no IO: Por exemplo tenho um Caixa... com uma tela...
> gostaria de de incluir no caixa com vencimentos e tudo, tanto por codigo (em
> qualquer lugar do sistema) quanto pela tela de caixa. é possível isso no IO?

Eu não entendi, mas vou falar um pouco de inclusão de dados:

var
   VCliente: TCliente;
begin
   VCliente := TCliente.Create;
   try
     VCliente.Nome := 'nome do cliente';
     VCliente.Store;
   finally
     VCliente.Free;
   end;

Isto é uma premissa básica para qualquer framework de mapeamento. Você 
pode fazer o equivalente a isto usando os expositores do IO também, a la 
tdataset.

> 4) O select é igual ao normal? Posso usar o SQL que uso no Firebird?

Não. Em IO você tem que usar um Selector e uma linguagem orientada a 
objetos. Tipo 'select * from tcliente where nome="nome do cliente"'. 
Válido tanto para IO quanto Press. Em Press você tem tanto a linguagem 
de acesso a dados quanto uma novidade: objetos Query. Com um objeto 
query você tem mais possibilidades de consulta do que com SQL plano, que 
por sua vez tem muito mais possibilidades do que a linguagem do IO.

> 5) Como fica as Triggers no banco de dados? Elas continuam existindo?

Poderiam continuar existindo, mas trigger é regra de negócio e lugar de 
regra de negócio é na aplicação, não no banco. Constraints são as únicas 
regras que residem no banco, com IO você tem que fazer na munheca, 
PressOPF cria todas as constraints para você.

--
Joao Morais


> Em 10/07/07, Joao Morais <[EMAIL PROTECTED]> escreveu:
>>   Fellipe Henrique wrote:
>>> Olá João, tudo bem?
>> Tudo bem. Tudo certo contigo?
>>
>>> Gostaria de discutir com você sobre o IO, ou mesmo o Press, acredito por
>> ser
>>> meio-off e eu nã osei seu e-mail particular, por favor, envie um email
>> para
>>> mim, se possível, em: [EMAIL PROTECTED] <fellipeh%40gmail.com>
>> IO tem news em inglês, vide www.instantobjects.org, nada de suporte
>> pt-br; Press tem lista pt-br, vide www.pressobjects.org; e meu email
>> aparece em todas as mensagem que você recebe. A lista delphi-br é
>> suficientemente abrangente para dar suporte tanto a Press quanto a IO,
>> mas você ainda pode optar pelas listas delphi-oop-br ou objectpascal do
>> Yahoo.
>>
>> Não vejo problema com discussão em private com exceção de que você não
>> estará compartilhando o que você estará recebendo, bem como não dará a
>> outras pessoas a oportunidade de tecer comentário; portanto, apenas por
>> estes motivos, eu prefiro que você escolha alguma destas listas ou news
>> para discutirmos (participo de todos).
>>
>> --
>> Joao Morais
>>
>>  
>>
> 
> 
> 

Responder a