Compartilhamento de Projetos e Experiências

134 views
Skip to first unread message

Vitor Hugo Lourençon

unread,
Nov 27, 2012, 3:18:40 PM11/27/12
to gwt-b...@googlegroups.com
Decidi criar esse tópico para compartilharmos experiências relacionadas à elaboração, construção e manutenção de um projeto, como por exemplo  bibliotecas utilizadas, dificuldades e facilidades encontradas, bugs nas ferramentas entre outros. Este tópico tem  intuito de ser um diferente, que ao invés de ser para tirar uma dúvida, seja para ajudar aqueles que vão iniciar algum projeto a não cometerem o mesmo erro, e compartilhar o conhecimento com aqueles que de alguma forma utilizam da linguagem
Sintam-se à vontade para descrever qualquer informação referente aos projetos e conhecimentos adquiridos. 

Eu tenho um projeto em andamento feito sobre o GWT, o nome dele é MyEPTUS, é um case de ferramentes que auxiliam no relacionamento de uma empresa com o cliente, e também no planejamento de atividades pessoais do usuário.
As ferramentas utilizadas nele sao: 
- Hibernate ( persistência - banco de dados ) 
- Ext(gxt) (componentes gráficos)
- SmartGWt (componentes gráficos)
- HighCharts ( componentes gráficos para gráficos :P )
- JasperReport ( geração de relatório ) 
- FileUpload ( uploads de arquivos ) 
- JavaMail ( email de arquivos ) 
- Gwt 2.4 

 
Cometi alguns erros no inicio do projeto, como 
 - misturar componentes de Ext(gxt) com smartgwt, eles nao davam auto-size, nem auto align entre eles,  acabava ficando tudo torto dependendo da resolução da pessoa.  
depois decidi usar só smartGwt.. o que nao me agradou pois acho o visual do smartgwt um pouco feio..
deopis decidi usar só o Ext(gxt) ficou mais bonito,, mas tive  muita dificuldade em usar o selectitem(combobox) dele.  
no final  das contas, estou usando  Ext para  as Windows com selectitem do smartrgwt inserido no dynamicform, e o resto é smartgwt 
 - chamadas RPC's dentro de loops, tive que refazer, passando uma list como parâmetro nas chamadas. 
 - chamadas de banco sem tratamento de exceção, RPCs sem tratamento de erro..  
 - deixei coisas primordiais para fazer depois, acabei deixando paginação de registros do banco, e controle de acesso para depois, vai ser só trabalho a mais para fazer.
 - zIndex das windows Gxt.
 - lentidão do devMod para testar as funcionalidades implementadas.
 - deixar  maior  do processamento na parte de cliente, o ideal é que o processamento fique no servidor..
 para que não haja muito erros, e o lado cliente apenas apresente os resultados do processamento executado pelo servidor. 
 - Ao incluir a biblioteca do smartGWT 3.0 o window designer parou de funcionar, por nao haver suporte no eclipse, o que atrasa um pouco o desenvolvimento. 


Facilidades 
 - Hibernate com anotações, muito simples de configurar um model, e obter os dados a partir das HQL's. 
 - JasperReport foi muito facil também.. tem varios tutoriais na internet, ensinando o uso. 
 - A bliblioteca de gráficos highcharts tem um showcase com bastante exemplos, o que facilitou bastante a implementação. 
 - A biblioteca grafica Gwt é muito simples, facilita bastante o desenvolvimento, ao contrario da ext.. pena o WindowBuilder nao da suporte para a versao 3.0 do smartgwt, entao tem que fazer "na unha". 


Se quiserem dar uma olhada, o projeto esta hospedado em:  http://www.myeptus.com.br
Senha: 123 

Criticas construtivas são bem vindas.. Esse é um projeto que eu estou trabalhando, já tem uns 6 meses ( quando eu comecei a trabalhar com  GWT e Java)
, e que me trouxe bastante aprendizado! 
 Qualquer duvida/ajuda/dica/coisa estou disponível no gmail. 
Abraços

Victor Pinto

unread,
Nov 27, 2012, 3:46:19 PM11/27/12
to gwt-b...@googlegroups.com
Vitor,
  Muito boa a idéia. Quanto tempo levou o desenvolvimento desse sistema inteiro?

[]'s
Victor Pinto A. de Oliveira


Em 27 de novembro de 2012 18:18, Vitor Hugo Lourençon <vhlou...@gmail.com> escreveu:
http://www.myeptus.com.br

Vitor Hugo Lourençon

unread,
Nov 27, 2012, 6:33:43 PM11/27/12
to gwt-b...@googlegroups.com
6 meses Victor.. ainda ta recente, no começo apanhei um pouco, mas agora ta fluindo. 

Victor Pinto

unread,
Nov 27, 2012, 6:50:23 PM11/27/12
to gwt-b...@googlegroups.com
Minha empresa estava trabalhando com sistemas voltado para web em desktop com SmartGWT (por exemplo: http://tcsistemas.com.br:3080/auditoria/Auditoria.html) mas agora estamos migrando as funcionalidades para funcionar para ambientes mobile HTML5, Bootstrap, Design Responsivo e etc (por exemplo: http://tcsistemas.com.br:3080/bootstrap/Bootstrap.html testem no celular pra ver a diferença). Esse modelo de desenvolvimento estou achando bem legal.
Na parte servidor uso EJB3.


[]'s
Victor Pinto A. de Oliveira


--
Você está recebendo esta mensagem porque se inscreveu no grupo "GWT Google Web Toolkit Brasil" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/gwt-brasil/-/oe8kEd3h1t4J.

Para postar neste grupo, envie um e-mail para gwt-b...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para gwt-brasil+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/gwt-brasil?hl=pt-BR.

Carlo Marcelo Revoredo da Silva

unread,
Nov 27, 2012, 7:23:09 PM11/27/12
to gwt-b...@googlegroups.com
Acho ótima a ideia da thread, excelente iniciativa.

eu só pude olhar super rápido... sobre o MyEPTUS eu senti falta de algumas mascaras em certos campos, como de telefone por exemplo.
o projeto ficou muito massa, você ta fazendo sozinho? se for em equipe, usa alguma metodologia? e quanto a sua implementação de hibernate, ta usando ehcache? etc.... o processo de relatorios com o jasper tá tranquilo?

uma coisa que é bacana também de discutir são as medidas pra amenizar as entradas maliciosas na camada de apresentação.
eu só to alertando porque é sempre bom pensar bastante nisso, principalmente quando postar um acesso publico do sistema.
no caso do sistema de auditoria por exemplo, deu pra injetar um xss bem bobo, mas que já dava pra "travar" o sistema no lado cliente.
o mesmo valeu pro MyEPTUS também... tomem cuidado com isso, pessoas mal-intencionadas existem aos montes :p

quanto ao bootstrap minha equipe também adotou e a produtividade subiu muito. inclusive a gente até deixou de lado a app que tínhamos pra android e IOS e deixamos a versão mobile html5 mesmo.

[]'s




Victor Pinto

unread,
Nov 27, 2012, 9:02:22 PM11/27/12
to gwt-b...@googlegroups.com
Carlo,
   Quando você diz travar o lado cliente é pra travar o navegador do usuário? Quais as técnicas para evitar esse tipo de coisa?


[]'s
Victor Pinto A. de Oliveira


--
Você está recebendo esta mensagem porque se inscreveu no grupo "GWT Google Web Toolkit Brasil" dos Grupos do Google.

Vitor Hugo Lourençon

unread,
Nov 27, 2012, 10:27:06 PM11/27/12
to gwt-b...@googlegroups.com
Estou desenvolvendo sozinho.. no inicio era uma equipe de 3 pessoas, utilizávamos metodologia SCRUM (inclusive no programa tem um modulo para isso, meio bugado ).. agora como estou sozinho nao tem porque utilizar :P .
para hibernate nao uso ehcache,ta o hibernate simples mesmo, evitando trazer varios registros do banco, para isso criei uma rotina de paginação para todas as "tabelas" , que tras somente os registros que vão aparecer na tela. 
mas valeu pela dica, nao tinha conhecimento do ehcache, vou aplicar pra  por lá..
com relação ao jasper ta tranquilo, criei uma servlet para responder a requisição dos clientes com os parametros das consultas dos dados do relatorio, e ele gera como response o arquivo pdf.
E Vou me atentar com relação as validações das entradas..

[]'s v 

Vitor Hugo Lourençon

unread,
Nov 27, 2012, 10:44:05 PM11/27/12
to gwt-b...@googlegroups.com

Victor, parabéns pelo sistema, .. e acho bom voce validar essas entradas looogo.. 
e me interessei pelo Bootstrap,  se for boa a produtividade dele, vou repassar pra turma do meu serviço da uma estudada. 

Victor Pinto

unread,
Nov 27, 2012, 10:51:20 PM11/27/12
to gwt-b...@googlegroups.com
Vitor,
   Tem alguns links bons no favoritos: 
Layouts a venda e gratuitos:


[]'s
Victor Pinto A. de Oliveira


Em 28 de novembro de 2012 01:44, Vitor Hugo Lourençon <vhlou...@gmail.com> escreveu:

Victor, parabéns pelo sistema, .. e acho bom voce validar essas entradas looogo.. 
e me interessei pelo Bootstrap,  se for boa a produtividade dele, vou repassar pra turma do meu serviço da uma estudada. 

--
Você está recebendo esta mensagem porque se inscreveu no grupo "GWT Google Web Toolkit Brasil" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/gwt-brasil/-/Jcd6X1rSIU8J.

Vagner Araujo

unread,
Nov 27, 2012, 10:54:55 PM11/27/12
to gwt-b...@googlegroups.com
Então,

É verdade, a aplicação é mesmo vulnerável ao XSS ataque. Se futucar mais, é provável que se ache mais vulnerabilidades.

A primeira coisa a fazer é adotar uma política de segurança, eu prefiro a política paranoica. hihihihihi... ;-)

Segundo, uma vez implementada a política, tente hackear aplicação com as técnicas mais usadas e depois com as menos usadas.

E por último, tente criar técnicas de hackear a sua aplicação.



--
Vagner Araujo

Orsic.org


Victor Pinto

unread,
Nov 28, 2012, 12:04:20 AM11/28/12
to gwt-b...@googlegroups.com
Contra o XSS vocês consideram que usar o método SafeHtmlUtils.htmlEscape(String) é suficiente?


[]'s
Victor Pinto A. de Oliveira


--
Você está recebendo esta mensagem porque se inscreveu no grupo "GWT Google Web Toolkit Brasil" dos Grupos do Google.

Carlo Marcelo Revoredo da Silva

unread,
Nov 28, 2012, 6:38:59 AM11/28/12
to gwt-b...@googlegroups.com
bom, muita coisa relevante já foi comentada.

mas respondendo as perguntas:

sim, quando eu me referia a "travar" (colocando aspas pq entenda travar como qualquer coisa abominável a integridade da sua app :P) o browser, mas o problema que comentei pode ir muito alem, lembre-se que sua aplicação utiliza requisições assíncronas, da pra "travar" seu servidor tb :)

como eu tinha falado, foi uma injeção tola, mas já da a perspectiva que no desenvolvimento do sistema pouco se preocupou, então provavelmente outras coisas piores irão surgir, basta explorar.

o bacana é quando vc concluir a aplicação, tente pesquisar vulnerabilidades, e de preferencia, como foi vc quem desenvolveu a app, peça que outras pessoas explorem tb.

essas técnicas de tratamento das entradas da app são chamadas de sanitize input, da uma pesquisa no google, vai achar varias técnicas  como a que você citou, usando regex, entre outras. E não cai na besteira de achar que criou uma regra de validação of doom from hell e sua aplicação é 100% segura e queira sair vendendo selos de garantia por ai rsrs.. vc apenas está minimizando as chances de alguém conseguir injetar algum dado malicioso. A unica app 100% segura é a que possui 0% de funcionalidades, portanto a melhor dica é pesquisar bastante e ter cautela nas funcionalidades da sua app, descarte o que nao precisa ou que possivelmente não será preciso, isso já contribui pois reduz esforços e preocupações.

como foi dito, adote uma politica de segurança, a paranoia vem de brinde.
e também virão outros aspectos, em mais baixo nível  que também devem ser considerados, como boas auditorias, as politicas de senha, entre outras... mas, pelo menos por hora, nao vamos nos enveredar nisso pra focar mais na questão dos componentes de tela, que é a proposta do gwt.

[]'s

Wellington

unread,
Nov 28, 2012, 8:31:29 AM11/28/12
to gwt-b...@googlegroups.com
Parabéns pela iniciativa Vitor. 



2012/11/28 Carlo Marcelo Revoredo da Silva <revo...@gmail.com>

--

Vitor Hugo Lourençon

unread,
Nov 28, 2012, 8:42:33 AM11/28/12
to gwt-b...@googlegroups.com
Obrigado... essa troca de ideias foi bastante proveitosa pra mim,, ja aprendi bastante coisas só nisso aqui, acho que nao devemos usar essa ferramenta apenas como tira-duvidas.. e sim pra compartilharmos conhecimentos. 
Sempre que puder vou postar algumas coisas que achei interessante e claaro, tiar duvidas também :X . 

Vitor Hugo Lourençon

unread,
Nov 28, 2012, 8:58:31 AM11/28/12
to gwt-b...@googlegroups.com
Como diria os caras, tem que ser paranoico, entao acho que não é o suficiente. mas ajuda alguma coisa. 

Vinícius Castro

unread,
Feb 13, 2013, 1:16:21 PM2/13/13
to gwt-b...@googlegroups.com
Legal mesmo.
Tive problemas com Smart Gwt e GWT nativo também, fica uma porcaria!!!!

Para ver esta discussão na web, acesse https://groups.google.com/d/msg/gwt-brasil/-/KMOuRaIwXXAJ.
Reply all
Reply to author
Forward
0 new messages