Notícias

As várias opções de Build do GeneXus X

Bruno Macedo -consultor e instrutor GeneXus no Brasil- publicou recentemente no iMaster, interessante matéria que aborda as diferentes opções que o Genexus oferece na hora de desenvolver, no processo de especificação, geração e compilação de objetos.

Todo desenvolvedor GeneXus está acostumado com o processo de especificação, geração e compilação dos seus objetos. Isto não é nenhuma novidade. Mas no GeneXus X é possível ficar meio confuso com tantas opções oferecidas para realizar esse processo.

No GeneXus X, a especificação, geração e compilação dos objetos está mais automatizada e é chamada de processo de build. O que veremos a seguir é como funciona esse processo de build, analisando as opções disponibilizadas pelo GeneXus. Confesso que no início fiquei um pouco atrapalhado com essa variedade de builds.

O Processo de Build

O processo de build inclui todas as tarefas necessárias para a execução da aplicação. Inclui-se a verificação de alterações no banco de dados, a reorganização (popular reorg) se necessário, especificação, geração e compilação. Não se incluindo a execução propriamente dita da aplicação.




interessante nessa nova versão do GeneXus, é que o processo de build ocorre em background, permitindo ao desenvolvedor realizar outras atividades. Enquanto é feito o build, o desenvolvedor pode continuar o desenvolvimento normalmente.


Características do Processo de Build

As características do processo de build são:
  • Pode ser aplicado a qualquer objeto da base de conhecimento, Developer Menu ou objetos definidos como Main Program;
  • Detecta automaticamente os objetos que necessitam ser gerados;
  • É necessário ser realizado muitas vezes no processo de desenvolvimento da aplicação;
  • É rápido e preciso.
  • Para executarmos o processo de build selecionamos a opção Build All ou Rebuild All do menu principal do GeneXus.

             

As opções Build All e Rebuild All


As Opções de Build

As opções disponíveis para o processo de build são:
  • Build All e Rebuild All
  • Build, Rebuild e Run Selected
  • Build With This Only e Run With This Only

Build All e Rebuild All

Estas opções são escolhidas quando se quer gerar todos os objetos, não escolhendo um em particular, e que o projeto fique atualizado. As duas opções irão realizar os seguintes passos:
  • Salva qualquer objeto não salvo (se há algum erro com algum objeto, o processo não é continuado);
  • Reorganiza o banco de dados se necessário (se há algum erro na reorganização, o processo não é continuado);
  • Especifica somente os objetos que foram modificados (se a opção Build All foi acionada);
  • Força a especificação de todos os objetos (se a opção Rebuild All foi acionada);
  • Geração dos objetos (geração de código fonte);
  • Compila todos os objetos definidos como Main Program;
  • Compila o Developer Menu.
Build, Rebuild e Run Selected


Estas são as opções mais usadas. Atuam no objeto Main Program selecionado ou no objeto Main Program selecionado como Startup Object quando o desenvolvedor pressiona a tecla F5. Os seguintes passos serão realizados:
  • Salva qualquer objeto não salvo (se há algum erro com algum objeto, o processo não é continuado);
  • Reorganiza o banco de dados se necessário (se há algum erro na reorganização, o processo não é continuado);
  • Especifica somente os objetos que foram modificados (se a opção Build foi acionada) da árvore de chamadas do objeto selecionado (se há algum erro com algum objeto, o processo não é continuado);
  • Força a especificação de todos os objetos (se a opção Rebuild foi acionada) da árvore de chamadas do objeto selecionado (se há algum erro com algum objeto, o processo não é continuado);
  • Geração dos objetos (geração de código fonte);
  • Compila o objeto definido como Main Program selecionado (se há algum erro, o processo não é continuado);
  • Executa o objeto Main Program selecionado.
Build With This Only e Run With This Only

Estas opções atuam no objeto selecionado, ignorando qualquer modificação em outro objeto que não seja o selecionado. Como o GeneXus não checa dependências, estas opções são um método rápido para testar modificações realizadas em um único objeto. As opções irão realizar os seguintes passos:
  • Salva qualquer objeto não salvo (se há algum erro com algum objeto, o processo não é continuado);
  • Reorganiza o banco de dados se necessário (se há algum erro na reorganização, o processo não é continuado);
  • Especifica somente o objeto selecionado (se há algum erro com o objeto, o processo não é continuado);
  • Gera o objeto selecionado (geração de código fonte);
  • Compila o Startup Object (se há algum erro, o processo não é continuado);
  • Executa o Startup Object (se há algum erro, o processo não é continuado).
Execução da Aplicação

No GeneXus X, apenas pressionando F5 (Run) são realizados todos os passos necessário do processo de build e executa-se o objeto definido como Startup Object. Se não há um objeto definido como Startup Object, o Developer Menu será executado.


A opção F5 tem a inteligência necessária para saber quais objetos devem ser especificados, gerados ou compilados para executar a aplicação.

Execução Batch do Processo de Build

Como vimos, o processo de build deve ser acionado pelo desenvolvedor, mas existe uma maneira de executá-lo não interativamente, a execução de forma batch. Mediante o GeneXus Build Tasks, baseado no Microsoft Build Engine do Visual Studio, esta tarefa pode ser realizada. As tarefas que podem ser automatizadas são:

Básicas:

• CreateKnowledgeBase;
• Import;
• OpenKnowledgeBase;
• SetModelProperty;
• SetDataModelProperty;
• SetGeneratorProperty;
• Export;
• BuildAll;
• BuildOne;
• DeleteObject;
• Run.

Avançadas:
• CreateDataBase;
• Reorganize;
• Specify All;
• Generate;
• Compile;
• UpdateWorkingModel;
• WriteKnowledgeBaseSchema;
• WriteDataBaseSchema;
• CompareSchemas.

Outras:
• CreateVersion;
• CreateBranch;
• SetActiveBranch;
• RevertToVersion;
• CreateEnvironment;
• SetActiveEnvironment.

Esas tareas están disponibles en GeneXus.MSBuild.Tasks.dll.

Para mais detalhes a respeito da execução batch, acesse a página do Wiki da Artech.

Conclusão

O processo de build do GeneXus X automatizou e bem a tarefa de especificação, geração e compilação, o que antes tínhamos que fazer manualmente. Os novos usuário do GeneXus também saem ganhando com essa automatização, pois eles sempre tinham dificuldades a respeito do build no início da aprendizagem da ferramenta.

Vale destacar também que não precisamos mais esperar o GeneXus concluir o processo para continuarmos trabalhando. Acabou a desculpa do cafezinho, hehehehe... E agora também temos a opção do build em modo batch.

Espero que as informações transmitidas sejam de grande valia. Um forte abraço e até o nosso próximo artigo!