quinta-feira, 23 de outubro de 2014

Boas práticas no GeneXus

Comunidade GX,

Estava vasculhando algumas coisas na wiki do GeneXus e achei uma página em português que fala sobre algumas boas práticas de programação no GeneXus.

É uma página um pouco antiga, então pode ter instruções que não necessariamente se aplicam nas versões mais novas do GeneXus (X, Xev1, Xev2, Xev3).

Quem tiver interesse em dar uma olhada, acesse:

Boas práticas de programação no GeneXus

quinta-feira, 16 de janeiro de 2014

GeneXus Smart Devices

Quer saber mais sobre a arquitetura de aplicativos móveis gerados pelo GeneXus?

Leia esse interessante artigo intitulado A arquitetura exclusiva de GeneXus para smart devices escrito por Gastón Milano (CTO GeneXus).

sexta-feira, 20 de dezembro de 2013

Dica de solução para erro de Namespace xmlns em SDT convertido de Genexus X EVO1 para X EVO2



Olá, amigos Genexianos! 

Quero compartilhar mais uma experiência interessante com vocês.

Durante minha migração de kb Genexus X EVO1 para X EVO2 tive problema relacionado a configuração de namespace de SDT.

Eu tenho na minha kb alguns SDTs para estabelecer comunicação com o PagSeguro (meio de pagamento) e esses SDTs estavam apresentando erros como o da imagem abaixo.


A primeira coisa que fiz foi conferir como estava a configuração do SDT na X EVO1. A configuração do SDT referente à mensagem de erro acima estava da seguinte forma:
 

O interessante é que com essa configuração a integração com o PagSeguro (na kb X EVO1)  funciona perfeitamente.

De acordo a mensagem de erro enviada pelo framework (imagem mais acima) percebi que a propriedade Exposed namespace deveria ficar em branco, sem nenhum valor. Também aproveitei para configurar a propriedade Exposed name com o mesmo valor do XML do PagSeguro no qual estava trabalhando.

A nova configuração do SDT ficou da seguinte maneira:



Feito isso, tudo se normalizou e minha comunicação Genexus + PagSeguro voltou a funcionar perfeitamente na kb X EVO2. Fica a dica, em migração de kbs sempre podemos ser surpreendidos com algum ajuste de configuração.

Como acredito ser este meu último post no blog neste ano de 2013, aproveito para cumprimentar a todos desejando um Feliz Natal e um Feliz 2014! E que o SENHOR Deus os abençoe! Abraços!



quarta-feira, 18 de dezembro de 2013

Como configurar tempo de timeout no Web.Config de aplicações web geradas pelo Genexus X Evolution 2



Olá, Genexianos!

Recentemente, após migrar minha kb Genexus X Evolution 1 U5 para Genexus X Evolution 2 U4, tive problema ao configurar tempo de sessão e tempo de request no arquivo Web.Config.
Geralmente eu costumo incluir dentro da tag <system.web> as seguintes instruções:

<sessionState mode="InProc" cookieless="false" timeout="720" />
<httpRuntime executionTimeout="1200"/>

A primeira instrução define o tempo de inatividade da sessão de uma aplicação web. A segunda instrução define o tempo de processamento de um request.

Imagem da alteração da sessionState e do executionTimeout no Web.Config de forma errada.


Depois de feito a configuração do Web.Config me deparei com dois erros.
Primeiro erro, a aplicação web não estava mais sendo acessada.



Segundo erro, acessei o IIS para checar o que houve. Verifiquei que a opção de Documento Padrão apresentava o erro abaixo.


Pela mensagem do erro descobri a causa do problema. Já existia uma tag httpRuntime com o atributo requestValidationMode no Web.Config e eu estava tentando incluir a mesma tag novamente. Acabei percebendo que o Genexus Evolution 2 (compilando em framework 4) gera o arquivo  Web.Config diferente da Evolution 1. Para solucionar o erro, na tag httpRuntime existente acrescente o atributo executionTimeout.

Imagem da alteração da sessionState e do executionTimeout no Web.Config de forma correta.
 
Feito isso, o sistema web está pronto para rodar. É só correr para o abraço. Concluímos que num processo de migração sempre pode aparecer alguma novidade... rsrs...