Notícias

GXPublic Applets

CodeReviewr, Neptuno.net, KVCVSP, controle de versões, GXLGenerator, KBQuery: pequenas aplicações que usam GXpublic para a GeneXus 9; coletadas por Marcos Crispino no seguinte post.

GXPublic Applets
Embora seja certo que com a GeneXus X deixa de existir, para os que seguimos trabalhando com a GeneXus 9.0, GXpublic continua sendo uma ferramenta muito valiosa (Com o GXpublic não se podem acessar KBs da GeneXus X. Para acessá-las é possível desenvolver GeneXus Extensions ou utilizar as tarefas do MSBuild).

Ao longo dos anos, foram surgindo necessidades que são difíceis ou impossível de se resolver usando apenas o GeneXus, pelo que fomos desenvolvendo pequenas (daí o título de applets) aplicações que usam GXPublic e que resultam de utilidade no desenvolvimento.
Algunas destas aplicações são públicas e podem se obter do GXOpen, outras não, são desenvolvimentos internos que nunca viram a luz. Algunas poderiam ser necessária também na GeneXus X, outras já estão integradas, não têm sentido ou há uma alternativa que já existe.
A seguir, detalho a que mais uso...


KBQuery

KBQuery numa aplicação que permite executar consultas SQL sobre uma KB GeneXus.

Já tinha escrito sobre esta ferramenta aqui, portanto, não vou dizer muito mais, exceto que me resulta extremamente útil.

GXLGenerator

No ciclo de desenvolvimento que temos na Concepto, todas as mudanças de programação que se fazem ficam associados a uma solicitação e, por sua vez, a uma solicitação anexa-se um GXL com os objetos modificados.

O nome da aplicação diz quase tudo, o que faz é gerar um texto com formato GXL a partir de uma lista de nomes de objetos e seu tipo. Além disso, checa que o objeto exista na KB, para evitara a possibilidade de que fique um objeto que não existe.




KVCVSP - Controle de versões (despretensioso)

Esta aplicação é parte das KBTools. Tem uma interface gráfica, mas para KBs grandes não resulta prática, porque demora muito.

O que faz esta aplicação é distribuir à noite (mediante um processo batch agendado) todos os objetos modificados da última distribuição, deixando o XML num diretório determinado.

Cada arquivo gerado tem a forma tipo_nome_data.xml, por exemplo: PRC_Prova_200904201534.xml.

Desta forma, fica todo o histórico de mudanças de todos os objetos. Usando o comparador de distributes que vem com o GeneXus 9.0, pode-se comparar de forma muito fácil a versão atual de um objeto com uma versão anterior.

Claro que para a GeneXus X deixa de ter sentido, porque já tem o historial dos objetos incorporado.

Neptuno.net

Não conheço a origem do nome desta aplicação, já que a versão original não é minha. Neptuno estava feito no GeneXus/Visual Basic, e funcionava com a versão 8.0 do GeneXus. Neptuno.net é uma variante do programa original mas inteiramente escrito em C#.

O que faz esse programa é mostrar um "call tree" a partir de um objeto dado, mostrando pintados em vermelho aqueles objetos que fazem commit ou rollback.

O objetivo é poder encontrar problemas de integridade transacional a partir de um objeto, que é algo que resulta muito tedioso para fazer "à mão".

As coisas que leva em conta são:

• que o programa tenha commit ou rollback no código
• que tenha a propriedade commit On Exit e faça alguma mudança na base de dados (processa o sp0 correspondente)
• se executar numa nova UTL assume que está bem.

Tem muitas coisas para melhorar, por exemplo, a interface de usuário, a performance, ou poderia ter um botão que percorresse a árvore em profundidade, detendo-se no primeiro nodo com problemas. Mas para uma primeira versão, cumpre com sua função e resulta extremamente útil.



CodeReviewr

Esta é a última incorporação e ainda estou tentando decidir se serve ou não...

O objetivo é poder fazer code review das últimas mudanças (objetos modificados ontem) por parte de toda a equipe de desenvolvimento.
O programa procura na KB os objetos com uma determinada data de modificação, e usa os distributes gerados pelo controle de versões (KBCVSP) para comparar a versão atual do objeto com a versão imediatamente anterior, usando o comparador de distributes do GeneXus 9.0.
A revisão de código não é algo que façamos sistematicamente, mas nos testes que fiz serve para detectar algumas coisas...



*Poste by Marcos Crispino en Blog de Marcos Crispino.