INSTITUCIONAL
COMUNIDADE
BLOG
AJUDA
MINHA CONTA
EN PT ES

Imagen6632P

Uma olhada na nova ferramenta: Patterns

Marcos Crispino, de Concepto, nos conta a sua visão e experiência como betatester no uso da ferramenta Patterns, cuja versão beta foi liberada juntamente com a beta 1 de GeneXus Yi

O que é um pattern?
O conceito de "pattern" (padrão) é bastante usado na programação orientada aos objetos e, consiste na descrição de um problema recorrente e a melhor solução para o mesmo, que foi utilizada anteriormente para resolver este mesmo problema. Isto facilita a resolução destes problemas, já que não é necessário "reinventar a roda" outra vez.

A ferramenta Patterns da ARTech é um marco que permite gerar código GeneXus a partir destes padrões. Esta ferramenta conta com alguns padrões já implementados e tem a possibilidade de implementar novos ou adaptar os que já existem. Por exemplo, o padrão Work With permite, dada uma transação, gerar todos os objetos necessários para implementar um "trabalhar com..." web para essa transação.

No caso de Conceito, esta idéia de geração de código GeneXus de forma automática vem sendo usada há muito tempo.

Como vínhamos utilizando o Conceito da idéia que propõem os Patterns?
O primeiro gerador de código que desenvolvemos já tem dois anos e utiliza GXPublic para acessar -> estrutura da base de conhecimentos e gera o código que logo em seguida é incorporado -> mesma base de conhecimentos.

Alguns exemplos das coisas que estamos usando são:
Dada uma transação, gerar o código de um procedimento GeneXus que carregue (e outro que leia) um XML com a estrutura da transação .
Dada a estrutura de uma Data Warehouse, gerar automaticamente o código necessário para realizar a carga da informação nas tabelas. Geração de scripts SQL a partir das tabelas e das colunas na base de dados (este ponto é independente de GeneXus ).
Data uma transação (que representa uma mensagem), gerar o XML Schema com a sua mesma estrutura, para poder validá-lo.
Dada uma tabela (que representa uma mensagem), gerar o procedimento GeneXus que carregue (e outro que leia) arquivos ASCII delimitado por vírgulas com os campos da mensagem e faça validações de tipos de dados.

Quais as vantagens oferecidas pelo uso de Patterns?

As vantagens de usar estes padrões (ou geradores de código) são muito evidentes. Por exemplo, o caso de salvar o conteúdo de uma transação em um XML, só depende da estrutura da transação (sempre que tenhamos a possibilidade de definir , nós mesmos, a estrutura do XML). Neste caso, todos os programas que realizem esta tarefa serão similares, somente mudando os atributos que são utilizados.
Este exemplo apresenta um caso claro onde convém usar os padrões. Isto é porque só temos que programar uma vez o gerador de código e depois "instanciá-lo" para cada vez que queiramos fazer o programa para salvar o conteúdo da transação a XML.
As vantagens mais importantes são:
Com pouquíssimo esforço (uns poucos cliques) podemos gerar programas com a funcionalidade desejada.
Os erros no código são evitados. Pode haver erros no gerador de código, mas com o uso, estes erros vão sendo corrigidos. Por outro lado, se o programa é feito -> mão, com cada programa novo podemos estar introduzindo erros.
Lo mismo ocurre con el patrón Work With, que ya viene con la herramienta Patterns. Este padrão permite gerar vários objetos, que formam um "trabalhar com..." a partir da transação selecionada. A ferramenta permite configurar as propriedades para cada transação, como por exemplo os filtros que serão usados no web panel de seleção, os atributos e a ordem das grades, o folder onde serão criados os objetos, etc.

Qual tem sido a experiência de Concepto no uso de Patterns?

Em Concepto estivemos fazendo provas para criar novos padrões ou adaptar os já existentes. Por exemplo, estendemos o padrão Work With, para que tivesse a possibilidade de gerar uma planilha Excel com os dados da grade de seleção. Nossa experiência foi boa, já que nos permitiu avaliar a dificuldade que apresenta o desenvolvimento destes padrões, que nos permitam gerar código de forma automática. A principal dificuldade é que para poder desenvolver estes padrões é necessário programa em C#.

Acho que é muito bom que tenha um marco estândar para desenvolver estes padrões, assim como a ferramenta Patterns. Isto vai permitir -> comunidade desenvolver novos padrões que vão facilitar ainda mais o desenvolvimento de aplicações com GeneXus.
No nosso caso, estamos avaliando realizar a migração dos geradores de código a Patterns, já que neste momento, os geradores de código que temos não estão estandarizados, senão que foram desenvolvidos cada um de forma independente. Tê-los definido como padrões, vai facilitar o uso dos mesmos e o intercâmbio com outros membros da comunidade, que por sua vez, poderiam realizar aportes.

Petroglifo:
http://www.concepto.com.uy/petrocsharp

Mais informações de Patterns no Wiki:
http://wiki.gxtechnical.com/wiki/tiki-index.php?page=Patterns

Relacionado
Foi liberada a Beta 1 de Patterns
Patterns GeneXus em ação
Foi liberada a versão Release Candidate de GeneXus Patterns
PATTERN WW: quando menos é mais!