Muito interessante sua abordagem, Davi. Agora, eu fico imaginando também uma 
outra coisa: como juntar boas práticas de desenvolvimento orieintado a objeto 
(testes unitários, pacotes de classes, etc.) com esse tipo de abordagem para 
tornar as aplicações mais adaptáveis e ao mesmo tempo sem perder a qualidade do 
software.

Eu penso que o dicionário de dados deve permitir, inicialmente, tornar ítens 
cruciais do sistema (como nomenclatura de campos e labels, customização de 
telas e relatórios e regras de negócio) passíveis de alteração em qualquer 
momento que o cliente sentir necessidade de moldar a aplicação para as mudanças 
de seu ramo de negócio. Quando trabalhava com Clipper, tentei fazer algo 
parecido. Todas as informações de campos, validações de campos, índices e 
arquivos .DBF eu mantinha em um arquivo texto, que na época era como eu poderia 
implementar um dicionário de dados. Depois migrei esse dicionário para um DBF.

Ainda pesquiso sobre uma maneira de implementar uma infra-estrutura básica para 
a criação de sistemas customizáveis ao usuário, não apenas no que diz ao 
aspecto visual, mas no que tange atender necessidades do cliente adequando o 
produto às mudanças nas regras de negócio. O que mais me deparo, pesquisando na 
Internet, é com o uso de tecnologias de script, mais especificamente com o uso 
do Microsoft Script Control dentro de aplicãções Delphi.

Também encontrei tecnologias de scripting que permitem até mesmo debug. A 
conclusão a que chego é de que o uso de ferramentas de scripting é essencial, 
mas é necessário um dicionário de dados bem modelado e que possa ser usado pela 
tecnologia de scripting escolhida. Além disso, esse arcabouço deve estar de 
acordo com a metodologia de desenvolvimento adotada pela equipe e permitir o 
uso de boas práticas já consagradas no desenvolvimento de software, como testes 
unitários, verificação de métricas, testes de integração, build automático, etc.

Sds.


________________________________

To: delphi-br@yahoogrupos.com.br
From: [EMAIL PROTECTED]
Date: Thu, 27 Dec 2007 17:37:33 -0200
Subject: RES: [delphi-br] OFF-TOPIC - Dicionário de Dados







Eu tenho um protótipo de sistema que faz boa parte do que o Elazar descreveu. 
Mas eu não chamo isso de Dicionário de dados e também não faço idéia se seria 
correto.

Mas descrevendo um pouco do funcionamento do protótipo.

Usuário (quando aprender) poderá definir tipos de dados. (considero esse um 
usuário técnico com pouco de conhecimento lógico tipo um consultor vamos dizer)

Ex: Cadeira de caracters (string), set de opções (combo), selecionar dados de 
outra tabela (Lookup), data, etc..

O após o "cadastramento" dessas informações, em outra aba do sistema o usuário 
já está vendo a coisa toda rodando

Vai clicando e navegando na tela que ele acabou de criar.

Estou adicionando novas funcionalidades como programação em vbscript utilizando 
uma ferramenta que pode ser comprada de uma empresa americana.

Ela é bem legal, vc pode publicar seus componentes e eventos via 
AutomationControl e ele publica tudo isso em uma IDE VBA para um usuário 
avançado fazer o que eu permiti-lo fazer.

Muito bom para customização na hora!

De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Elazar 
Dornelles Ceza
Enviada em: quinta-feira, 27 de dezembro de 2007 17:25
Para: delphi-br@yahoogrupos.com.br
Assunto: Res: [delphi-br] OFF-TOPIC - Dicionário de Dados

Boa tarde.

Mas voce não precisa de um dicionário de dados pra fazer isto, basta fazer um 
loop nos fields do dataset e ir criando os componentes de acordo com o tipo de 
campo, por ex. se for String usa um DBEdit, data um DBDateTimePicker por 
exemplo. (ou usa o dbedit mesmo);

A idéia básica do dicionário de dados, seria pra ter informações sobre campos, 
tabelas em runtime, de modo beeeeeem flexivel, pois com o sitema rodando, iria 
simplesmente alterar uma definição e tudo já estaria a disponição dos usuários.

Eu estrutura de dicionario de dados em minhas aplicações particulares (a 
terceiriazação ta pegando aqui..rsss), e o usuário pode entrar e personalizar 
as informações caso ele queira, pode trocar o label de qualquer dbedit, definir 
valores padrões (quando o usuário da o "novo"), ajuda o usuário exibindo as 
dicas dos campos em que ele está posicionado "hints", como o tamanho que ele 
pode digitar, se pode ficar vazio (obrigatorio)....ai vai da necessidade de 
cada um em pensar em boas idéias.

Mas atente que não é simplesmente ir criando uma ou duas tabelinhas ai no seu 
banco de dados achando que vai ter um dicionário, existe muitas coisas que 
implicam por tráz disto tudo.... como por exemplo o caso de declarar os field 
nos datasets, eu ousaria dizer que se você faz isto, desita de tentar 
implementar um dicionário de dados (pelo menos eu tive inumeros problemas com 
esta combinação). Na verdade imagino que o dicionário de dados existe 
exatamente pra preencher as lacunas dos fields (por favor não estou criticando 
ninguem)....tambem vai depender um pouco de como o seu banco de dados está 
normalizado, ainda mais pra compreenção do usuário (caso ele vier a ter acesso)

Tudo vai bem com o dicionário de dados, derrepente voce consegue imaginar 
outras utilizades para o mesmo, como por exemplo criar consultas 
personalizaveis, on o cliente entre determine quais campos ele quer ver no 
"grid".

-> Rubens, de acordo!!!
e como seria esta ideia do vbscript? seria apenas um campo onde o poderia ser 
definido um script e executado na aplicação em dado momento...?..acredito que o 
que voce esta querendo deixar claro é que pode ser qualquer 'codigo via script' 
e não necessáriamente o vb...estou certo?

Lembro me de ter visto algo no Fast Report onde suporta várias linguaguens de 
scritp (e se não me engano tem um componente que faz isto)...tambem tem um no 
ReportBuilder o tal de "RAP" que é bem interessante tb.

Atenc.
Elazar

----- Mensagem original ----
De: Fellipe Henrique <[EMAIL PROTECTED] >
Para: delphi-br@yahoogrupos.com.br 
Enviadas: Quinta-feira, 27 de Dezembro de 2007 15:32:22
Assunto: Re: [delphi-br] OFF-TOPIC - Dicionário de Dados

Seria interessante nisso daí criar a tela automaticamente, incluindo os
campos.. estilo Protheus da Microsiga, aí sim....

[]s.

Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento!
http://br.mail.yahoo.com/

[As partes desta mensagem que não continham texto foram removidas]

[As partes desta mensagem que não continham texto foram removidas]









_________________________________________________________________
Conheça o Windows Live Spaces, a rede de relacionamentos do Messenger!
http://www.amigosdomessenger.com.br/

Responder a