Pesquisar neste blog

quinta-feira, 18 de fevereiro de 2010

Como se avalia a performance(peso) de um aplicativo WEB ?

De Imagens Divertidas

Estamos a uma semana para colocarmos nosso aplicativo(feito em GX X EVL) final em produção . a expectativa é grande.

Mas nossa preocupação hoje . .é uma só.. Como medir a performance de um aplicativo final ??

Estamos percebendo que estes novos recursos do GX ( User Controls e AJAX Encryptation ) são úteis.. mas estão deixando o aplicativo final lentos.

Sei que temos que avaliar a performance de links(tanto de quem envia como de quem recebe) e de servidores.. também. .. Mas como provar isto aos nossos clientes finais ????


É nítido que um aplicativo feito em GX 9 .. com menos recursos.. ( sem UC e sem AJAX Encryptation ) estão mais rápidos..


E a própria Artech deveria nos dar opções de medir isto.. alguma ferramenta dela.. (um site por exemplo . que entrassemos com os links dos nossos aplicativos e ela testasse online)

E nos desse uma nota sobre a performance.. algo como é feito no www.numion.com


Algumas questões básicas sobre performance de um aplicativo WEB gerado pelo GX:

1) Porque os javscripts gerados pelo UCEditor já não poderiam virem compactados ???

2) Precisamos de todo o javascript que está no GXGRAL.JS ??? e se for um webpanel simples.. não vem coisa demais nesta carga ???

3) As configurações de cache de Transações(se existirem).. interferem na atualização/visualização dos dados ???

4) A Atualização de cache do Banco interfere nesta performance ?

5) A utilização de vários logins(Trusted connection) com pool de conexões no .NET ajudam nesta performance ???

6) Porque não temos a opção de Ajax Encryptation = None .. para deixarmos igual ao GX 9 ?

7) O aplicativo de Perfomance Test do GX só mede objetos locais ?? não tem como medir local e na web .. ou guardar os históricos destas medidas(na web) para fazermos comparações ???


Abraço

Ricardo





quinta-feira, 4 de fevereiro de 2010

Coisas simples e úteis que ainda faltam ao GX.




A Artech melhorou e muito com sua versão X Evolution, e acho (pelo menos já deu alguns sinais) que já está preparando o Evolution II. Sei que talvez não seja o momento .. mas as cobranças abaixo são apenas para ajudá-la a não esqueçer.

Algumas coisas simples.. que o Genexus já deveria estar fazendo(vou classificá-los conforme minha experiência em geradores):

  1. Instalador do aplicativo final mais completo , podendo ser via XCOPY(servidor local) ou via FTP para múltiplos servidores, com agendamento(scheduller) é claro;
  2. Visual mais moderno aos aplicativos WEB gerados, templates já definidos em que pudéssemos apenas escolher/utilizá-los, tanto rico em Recursos quanto imagens e CSS;
  3. Acesso completo aos Eventos HTML/Javascripts.. permitindo interagir.. entre os recursos do GX com o mundo HTML/JAVASCRIPT/CSS em um formato mais fácil, sei que existem hoje UCs que permitem isto .. mas ainda não estão tão fácil de utilizar;
  4. Controle de usuários e permissão de objetos já pré-instalado em nosso aplicativo , o mesmo para as definições de Login e manejo de troca de senhas com regras pré-definidas;
  5. Wizzard ( sei que existem patterns ) mais completos para rotinas básicas.. exemplo : um simples relatório, o próprio MS-Acces hoje é muito mais rápido neste quesito;
  6. Application Template.. ou seja.. ao escolher determinadas características de um aplicativo o GX já utilizaria as definições das TRNS já existentes e já aplicaria um grande Pattern em toda a KB;
  7. Controle de domínios global, compartilhado entre várias KBS ao mesmo tempo .. e ao mudar nele todas as kbs refletiriam este comportamento;
  8. DBRet (Engenharia Reversa ) mais dinâmica .. do tipo .. posso mudar a característica de um atributo / tabela / índices hoje no Genexus.. mas também gostaria de mudar direto no próprio Banco e o GX refletiria estas mudanças;
  9. Pequenos negócios já pré-definidos por seus países/regionalidades.. vou dar alguns exemplos: no Brasil já gostaríamos de ter máscaras / validações prontas.. como CNPJ, CPF, Insc. Estadual, Insc. Municipal, CEP, etc.. Que o digam os outros países!
  10. Help ao aplicativo final .. de fácil implementação ... podendo também gerar ..em vários formatos desejados.. CHTM, HTML, PDF, Word, etc... Hoje existem os dois primeiros formatos. mas ainda são de difícil utilização;
  11. Rápida e fácil integração aos novos conceitos de negócios da WEB , como AppFabric, AppStore, Google Gadget e Apple Gadget;

Sei que dos ítens acima apresentados .. apenas o ítem 11 é novo .. mas o restante.. é algo simples que vários aplicativos já apresentam hoje na atualidade.

A idéia.. é termos um super Genexus .. focado ao mundo de NEGÓCIOS.. não apenas em tecnologia.

Todos nós temos que atender nossos clientes finais ..com aplicativos bonitos.. sofisticados.. e completos..


Abraço e Boa sorte ao Genexus TEAM!


Ricardo

AppStore , AppFabric, SQL Azure e Cloud Computing, quanta mudança boa na área de TI.


No último evento que tivemos no Brasil, discutimos alguns assuntos sobre Cloud Computing inclusive foi nos mostrado o trabalho que a Artech já está fazendo(aprontando) com o WS da Amazon.

No começo fiquei desconfiado e fui um dos primeiros a questionar a questão da segurança destas informações..

Mas ultimamente testei o SQL Azure no GENEXUS e qual foi minha surpresa ao vê-lo funcionando de uma forma fácil fácil. (vejam abaixo)



Este plano teste da MICROSOFT nos permite 5 bancos de dados de até 10 GB cada. Se os bancos de 4 GB do SQL 2005 já são o suficiente para pequenos e médios aplicativos quem nos dera estes de 10 GB.

E o que mais me deixou admirado foi ver o Genexus .. criar o banco .. e criar as tabelas fácil fácil.

Já me veio a seguinte idéia. já imaginaram estes bancos servirem para replicação automática de nosso banco local ?? Em caso de uma falha em nosso servidor de banco de dados.. seria só apontar automaticamente para este banco nas nuvens(Cloud) e pronto já continuariamos trabalhando ???

São estes conceitos novos de Cloud Computing.. com os recursos de AppStore , AppFabric e estes tipos de bancos nas nuvens estão vindo e mudando muito nossas idéias..

E voltando ao encontro de São Paulo .. Como a área de TI nos ensina coisas boas a cada época.

Sejam bem vindos.. Google Chromiun OS, Windows AZure, SQL Azure , IPAD, e Android !

Abraço


Ricardo.


quarta-feira, 20 de janeiro de 2010

2010 com GENEXUS EVL grandes avanços, pequenos tropeços!

Começamos 2010 .. instalando definitivamente nossa versão de produção completa.. migramos da versão 9.0 com workflow para a versão X EVL com WORKFLOW.

Participamos 2 anos como Beta Tester, aprendemos muito , colaboramos muito e agora sim.. conseguimos finalizar nossa migração..

Ficamos contente com algumas pequenas correções que estavam nos deixando de cabelo em pé .. vou destacar algumas pendentes e outra já resolvidas:.

Pendentes, ainda nos dando dor de cabeça:
  1. Controle do Reinicio da Sessão automaticamente no IIS 6.0, no IIS 7.0 está ok;
  2. Controle das imagens DeleteRow.gif e UndeleteRow.gif que é obtida via AJAX no javascript GXGRAL.js;
  3. GXUI.GridRender com alguns problemas mais sérios como agrupamento pelo total de registros e não pela página, Eventos , quando disparados, fornecendo dados errados quando agrupados e sem a opção de ordenar e agrupar por várias colunas ao mesmo tempo;
  4. Velocidade de execução do objeto query, está muito lento uma consulta simples.. demorando 2.4 minutos para abrir;
  5. UC query, não permite configurar mais recursos e nem utilizar fórmulas mais complexas(last, first, max, min);
  6. Dinamic Combobox não atualiza em alguns casos o conteúdo baseado no filtro;
  7. WSDL Inspector não lê corretamente parâmetros IN e OUT mais complexos(SDTS Collections);
  8. Métodos .RELOAD, .REFRESH, .REPAINT dos dinamic combobox não compilam nos WebPanels;
  9. Rename de Objetos com INSTÂNCIA de patterns(K2B/workwith) tá dando a maior dor de cabeça;
  10. Rename de variável SDT utilizada em WEBGRID, melhor apagar e refazer novamente o WEBGRID;

Resolvidas:


  1. Controle do Timeout da Sessão , no EVL1 não estávamos conseguindo configurá-la corretamente, SOLUÇÃO , alterado WEB.CONFIG, sessão system.web,
  2. GXUI Build 739 com muito mais recursos/eventos;
  3. UC mais complexos aos mais fáceis completamente dominados;
  4. Recursos da WEB 2.0, Planilhas na web, Agendas na Web, Gráficos na Web, etc...;
  5. Webservices.. realmente úteis.. como pesquisa de CEP e Busca fonética de nomes feito em Delphi .net integrados ao GX;
  6. Build com Force, feitos através de nosso UC RCOMenu;


Se os ítens ainda pendentes fossem realmente resolvidos, estaríamos anos luz a Frente sem perdermos tempo com estas pequenas dificuldades.. mas são ítens que ainda podem serem esperados.

Parabéns a Artech por estes resultados e nós clientes estamos no aguardo destas correções.

Abraço e bom começo de ano a todos.



Ricardo

terça-feira, 1 de dezembro de 2009

Facilidades da WEB III - Google Translator com pronúncia ao vivo do Texto

Olhem só quanta mudança da nossa época do ALTAVISTA Translator para o Google Translator (apenas para inglês por enquanto), mas como melhorou e até com pronúncia ao vivo do texto.



Além de traduzir com uma boa concordância, tem a facilidade de nos dar a pronúncia ao vivo em inglês. Quanta facilidade, como eu gostaria de que tivesse a pronúncia também em espanhol.


Parabéns ao Google, será que teriam uma API para estes recursos em nossos aplicativos ???

Já pensou um HELP lido em vários idiomas ????


Abraço e quanta facilidade neste maravilhoso mundo Web.



Ricardo

Facilidades da WEB II - Chat para suporte ao vivo FREE


Outra necessidade importante em nosso aplicativo é o setor de suporte, estavamos usando o MSN, mas não tinha controle de como andavam estes atendimentos. Pesquisei na web o MSN web online, mas parece que foi desativado pela Microsoft, ai encontrei este : COMM100 , fácil, prático e o principal Grátis.


Área interna dos operadores(atendimento) , conversarem com os usuários.





Principais características:
1) Fácil de instalar, só cadastrar e adicionar um script de configuração no código GX;
2) Histórico das conversas, com envio de e-mail;
3) Possui um usuário Administrador;
4) Permite o uso de voz , para atendimento ao vivo, via FLASH;
5) Não precisa instalar nenhum aplicativo;

Só tem uma característica ruim temporáriamente, não tem tradução para outros idiomas, mas eles estão trabalhando nisto e nos avisarão assim que for liberado.


Parabéns a equipe da http://www.comm100.com e

Obrigado por termos estas facilidades na WEB de uma forma prática , fácil e grátis.


Abraço


Ricardo

Facilidades da WEB I - Webservice de Busca de CEP do Brasil

Precisávamos instalar uma pesquisa de CEP em nossos banco de dados , tanto pelo CEP informado quanto pelo logradouro(rua/avenida/travessa).

O Nosso Correio possui o famoso DNE (Diretório nacional de endereços) , mas parece que é cobrado e é bem cobrado. Ai pesquisando na internet achei o BUSCARCEP. Prático, barato(grátis até 20 pesquisas por minuto) e funcional (fácil fácil de usar no GX EVL). Vejam abaixo..

// Código do Grid de pesquisa do logradouro
Event Grid1.Load
// Se informou o Logradouro(endereço) e a cidade...
If ( Not &NomEndPesquisa.IsEmpty() And Not &CidadeNomePesquisa.IsEmpty())
// Monta a String de pesquisa do logradouro
&vrStringUrl1 = IIF( &vrTipoLogradouroPesquisa = TipoLogradouro.Vazio, '?logradouro=' + &NomEndPesquisa.Trim() , '?tipo_logradouro=' + &vrTipoLogradouroPesquisa.EnumerationDescription() + '&logradouro=' + &NomEndPesquisa.Trim() ) + iif( Not &CidadeNomePesquisa.IsEmpty(), '&cidade=' + &CidadeNomePesquisa.Trim(), '') + iif( Not &NomBairroPesquisa.IsEmpty() , '&bairro=' + &NomBairroPesquisa.Trim(), '' ) + iif( Not &EstadoUfPesquisa.IsEmpty(), '&uf=' + &EstadoUfPesquisa.Trim(), '' )

&vrStringUrl2 = '&formato=xml&chave=minhachave'
&vrStringUrlCompleta = &vrStringUrl1.Trim() + &vrStringUrl2.Trim()
&vrHttpClient.Execute('GET', &vrStringUrlCompleta.Trim())
If (&vrHttpClient.ErrCode = 0) And (&vrHttpClient.StatusCode = 200)
&vrHttpClient.ToFile('xml/buscalogradouro.xml')
&vrArq = Dfwptxt( &vrStringUrlCompleta )
&vrArq = DfwNext()
&vrArq = Dfwclose()
// Abre o xml retornado e joga no XMLREADER, permitindo fácil leitura abaixo
&vrXMLReader.OpenResponse( &vrHttpClient )
&vrQtdEncontrados.SetEmpty()
Do While Not &vrXMLReader.EOF
&vrXMLReader.Read()
If &vrXMLReader.Name = 'resultado'
&vrRetornoXML = &vrXMLReader.Value.ToNumeric()
Endif

...


O código acima é o início da pesquisa do CEP pelo logradouro e joga num grid.(vejam a tela abaixo).



Ou se quiser, é só mudar o código da pesquisa(no site tem os exemplos) e retorna o endereço(logradouro) , bairro , UF e Cidade do cep desejado.



Para usar este webservice(buscarcep) , é só se cadastrar, pegar uma chave(registrar-se) que irá permitir 20 pesquisas por minuto, se precisar de mais, ai é só entrar em contato com eles e pagar via boleto o serviço deles. Acho que quem precisar de mais pesquisas valerá a pena.

Lógico que tem suas desvantagens, por ser um webservice remoto que precisa da internet estar funcionando , mas para pequenos negócios ajuda e bastante estar embutido no aplicativo.

Parabéns ao pessoal do www.buscarcep.com.br , foi mais difícil por o prompt do EVL funcionar corretamente(até agora não consegui) do que integrar o webservice.

Abraço A TODOS ! E que venham mais serviços da WEB deste tipo.


Ricardo