Estou avaliando o uso de ExtJ - http://www.sencha.com/products/extjs/ com arquitetura REST.
Pelo que venho vendo é possivel usa-lo com SpringMVC, VRaptor, DWR e conectores do padrões do proprio ExtJ chamados de directjngine, extdirectspring e extdirect4java.
Gostaria de saber se alguem ja tem usado algum deles? Comentários? Dicas problemas?
Alguma soluções em produção?
Oi Ivan !! Muito bom!!
É exatamente que eu estava pensando…
Segue algumas duvidas…
Vc integrou o Jersey com Spring? Usou aquele integrador do jersey para spring?
Vc recomenda o livro da Loiane?
Os widget como grid consegue automaticamente popular a grid visual com JSON de um objeto java diretamente?
Integrei o Jersey com Spring, somente adicionei a dependencia jersey-spring (estou usando maven),
dessa forma, a minha camada de acesso aos recursos, implementada pelo jersey vira bean do Spring.
Quanto ao livro da loiane, eu apenas li os artigos dela e as video aulas, e ja consegui montar minha arquitetura, mas o livro dela é inconstestavelmente recomendado.
A grid do extJs, consegue ser populada por meio do json/xml retornado pelo server-side automaticamente, obedecendo a estrutura do modelo associado ao componente, como descrito pela arquitetura que mostrei.
O formulario e demais componentes do extJs seguem o mesmo principio.
Puxa vida…que maravilha!!! To bem empolgado com essa nova arquitetura…os componentes do exjt são de muita qualidade…o skin etc.
Ja estou vendo as videos aulas…
Vc usa a versão open?
Como vc resolveu os relatórios nesse modelo desktop web?
Eu adotei o principio que o server-side nao mantem estado, 100% stateless,
A camada de acesso aos recursos deve ser bem desenhada para possibilitar o acesso aos dados de todos os recursos,
os relatorios sao sempre retornados via xml ou json, mediante parametros informados, ou em pathParam ou queryParam.
O retorno eu capturo na aplicação cliente e realizo a formatação e apresentação.
Não tive problemas com relatorios, pois encaro como acesso a recursos.
O problema foi a autenticação, uma vez que nao eh recomendado manter sessão no Rest.
Dessa forma, cada solicitação deve ser autenticada, utilizo headerParams.
Funciona bem por aqui.
O próprio,
Usuo Bean Validation, juntamente com messageResources do Spring para centralizar/internacionalizar as mensagens.
As possíveis exceções são tratadas com http response com respectivos http codes, e a mensagem é inserida no entity do response.
Faço o tratamento de exceções via @provider, que possibilita ótimo exceptionHandler.
Ficou sim…
Estou no forum oficial do ExtJS brasil e to vendo o pessoal falar muito mal da performace dele.
Vc tem alguma critica ai?
Outra coisa…vc ja pensou sobre as evoluções das versões? Tipo…vc usa a versão 3 do ExJs e sai a versão 4. Dai para o suporte e vc é forçado a migrar tudo para 4, sendo que elas não são compatíveis entre si…isso que eu acho péssimo. Ou seja, a nova versão quebra todo seu codigo…e se falando de JavaScript afff…ja me da até arrepios…kkkkk
Quanto ao desempenho, ele se mostrou suficiente.
Na verdade, não tive problemas com isso.
Eu já atualizei a versão do framework algumas vezes e nao tive grandes impactos.
O mecanismo pricipal foi respeitado, a parte de modelos/loads/post nao foi alterada.
Eu acredito muito que o fator predominante é a arquitetura da aplicação.
Nos meus designersm ele se encaixou para fazer a interface grafica de acesso a alguns recursos de um Rest.
Esse Rest não possui outra forma de acesso, a não ser pela camada de acesso a recursos.
É mais comum vc ver aplicações Web com uma api Rest, mas não é o caso das minhas aplicações distribuídas.
Eu acredito que dentro dessa arquitetura, o ExtJs é uma boa opção.
Porém eu utilizo “também” outros meios para fazer interface com meus “WebServices Rest”, tenho por exemplo uma aplicação Web com Wicket do qual a fonte de dados é o Rest.
A comunicação é feita via httpCliente, e tudo vai bem.