| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/01/2012 07:07:57
|
RafaelViana
GUJ Master
Membro desde: 23/03/2008 18:56:02
Mensagens: 1257
Localização: Venâncio Aires/RS
Offline
|
FernandoFranzini wrote:
Quero deixar claro Rafael que eu não estou defendo JSF ou outra coisa. Estou apenas te ajudando a ver o pros e contras para vc possa tomar a melhor decisão.
Algo que eu poderia te acrescentar é que vc tem que fazer o validação arquitetural usando algo que vc não tenha certeza. Por exemplo...se vc tem duvidas que é estranho usar uma aplicação JSF 2 com get + a arvore na pagina. Faça um teste arquitetural e levante os pros e contras. Esse é o trabalho de um arquiteto
Que isso... muito bom ouvir seus argumentos sobre o JSF. Como trabalhei pouquissimo com ele, é bom saber esses prós e contras.
Não conheço a arquitetura dos componentes do JSF, mas se ele permite customizações fica facinho deixá-lo com a cara de aplicativos Flex, como disse antes, atualmente, tenho vistos aplicações mais "bonitas" em HTML do que em Flex. Usar Flex só porque é mais bonito, hoje em dia não é mais um argumento válido.
Esses dias estava vendo a biblioteca Primefaces, contem muito mais componentes ( até acho que melhores ) do que o padrão do Flex.
Enfim, decidir qual tecnologia usar é a parte mais complicada de um projeto. (na minha opinião). Como o Fernando disse, crie um projeto usando JSF configure o JMeter e faça um teste de carga na aplicação veja se ela aguenta. Faça o mesmo com outras tecnologias que você está avaliando. No final, decida qual a tecnologia adotar.
|
Rafael Rodrigues Viana
Estudando Java e Flex
Blog: http://www.cauirs.com.br/rafael/
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/01/2012 07:32:11
|
erickfm8
GUJ Master
Membro desde: 06/10/2009 19:29:12
Mensagens: 1396
Offline
|
http://www.guj.com.br/java/262056-flex-e-aceito-na-fundacao-apache#1369180
|
Bacharel em Sistema de Informação
SCJP - Sun Certified Java Programmer
OCWCD - Oracle Certified Web Component Developer (Estudando..) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/01/2012 07:51:43
|
FernandoFranzini
GUJ Master
![[Avatar]](/images/avatar/33f6c40df1060aa3c548ad2d499eced0.jpg)
Membro desde: 24/04/2009 12:58:16
Mensagens: 1541
Offline
|
Eu não uso flex por 1 motivo - portabilidade.
- Minhas solução precisam ser acessados por dispositivos moveis com navegadores sem capacidade de ter o plugin do flex. Eu prefiro perder um pouco de tempo customizando componentes CSS tendo um visual razoável e ter portabilidade do que ter uma aplicação linda maravilhosa sem portabilidade. Como sempre a decisão arquitetural da solução é baseada em requisitos....
JSF renderiza HTML puro padrão W3C 100% portável para qualquer navegador W3C compatível.
Para aplicações internas corporativas, flex pode ser uma boa no qual vc tem controle das plataformas e navegadores de uso. Mas para aplicações publicadas na internet que é meu caso vc restringe muito...realmente impraticável.
Outra coisa...cuidado com esse papo de "interfaces lindas" ! Isso não é considerado requisito..isso é frescura e papo de usuário final. Requisitos de interfaces são:
- Ergonômica
- Fácil
- Intuitiva
- Evitar propensão a erros
- Agradável
- Funcional..
O resto é frescura .
This message was edited 1 time. Last update was at 05/01/2012 07:54:02
|
Fernando Franzini |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/01/2012 12:31:37
|
rafaelbtz
Java Ninja
![[Avatar]](/images/avatar/c5f441cd5f43eb2f2c024e1f8b5d00cd.jpg)
Membro desde: 29/03/2005 10:53:56
Mensagens: 276
Offline
|
Fernando obrigado por seus argumentos, mas deixa eu comentar algumas coisas, veja que eu também não estou tacando pedras no JSF afinal eu tenho pelo menos uns 8 projetos que estão em desenvolvimento em JSF 2 + Prime. Mas eu ainda acho que esse projeto não se encaixa no JSF.
FernandoFranzini wrote:Vai algumas considerações....
Bom, nesse caso vc precisa de mão de obra mais capacitada..eu trabalho em empresas que usam componentes JSF puro e customizam o CSS, outras que usam CSS padrão de terceiros e até que criaram seus próprios componentes.
Com componentes JSF puro ou custom components é verdade que é bem fácil mexer com o CSS dele, mas você já tentou alterar o CSS do Prime. É um saco fora o trampo que da. Mesmo que você defina que o primefaces.THEME para none no WEB.XML ainda assim os componentes ficam alguns CSS de estrutura que são chatos.
E ter que fazer todos os componentes do seu software na mão sem usar os prontos do Prime ou Rich ai acho que o JSF perde uma de suas principais vantagens.
Numero de unidades e alunos existentes não corresponde necessariamente aos acessos simultâneos a solução. Isso é sua margem, tenha certeza que vc nunca terá 8 mil sessões simultâneas nesta solução.
Nesse caso a conta é mais ou menos essa, veja bem o sistema não é um controle de alunos. É um ERP-Escola que vai ser usado em sala de aula para ensinar Administração de Empresa que é um novo curso que a rede de escolas vai oferecer, então cada sala tem uns 30 alunos e todos estão utilizando ao mesmo tempo pois estão seguindo as aulas com o professor logo acredito que no mínimo 10 dessas requisições chegarão ao mesmo tempo no servidor. Mas tudo bem como eu disse acho a escalabilidade o menor dos problemas que eu vou enfrentar com o JSF.
trafegar a arvore de componentes até o cliente para evitar os ViewExpirateException é errado mesmo. Armazenar a arvore na pagina ou no server é decisão que não se relaciona com a desvio da ViewExpirateException. Ou seja, quem faz isso ta fazendo uma coisa errada. ViewExpirateException deve ser tratado dentro da solução. Hoje é muito facil tratar isso em qualquer versão do JSF.
Quando eu digo trafegar a arvore de componentes quero dizer Armazenar a arvore na pagina, afinal ela vai ter que ser trafegada até o cliente (ou seja definir o parametro javax.faces.STATE_SAVING_METHOD para client), sinceramente eu não gosto nada dessa opção já tive problemas com ela, além de aumentar o consumo da Banda ainda prejudica a segurança da aplicação.
Agora se eu armazenar a arvore no SERVER com certeza vou ter o ViewExpirateException. Eu sei que é possível tratar e mandar o usuário pra alguma pagina mas isso não é o que eu quero.
Por exemplo: Como eu expliquei antes são quatro paginas com requisição GET para fazer um unico processo imagina que o usuário selecionou os dados em duas delas e está sendo exibida a terceira pagina ai ele pára e vai almoçar. Quando ele voltar do almoço vai clicar no link que está no data-table da terceira pagina, se a arvore estiver no SERVER vai dar ViewExpirateException a não ser que eu jogue o timeout da sessao para -1, mas isso acho muito pior que colocar a arvore na pagina.
Então perceba que minha única solução é colocar a arvore de componentes na página e trafegá-la até o cliente em todas as requisições e isso eu não estou querendo fazer, veja que em um Framework Action-Based esse já é o comportamento padrão e eu não preciso fazer nada pra funcionar.
No JSF 1.2 não é! Mas no JSF 2 é sim. A especificação 2.0 contempla isso sim. Pode usar.
Como eu disse, eu sei que JSF 2 contempla, mas você precisa no mínimo de umas gambiarrinhas vai.
Por exemplo caso use navegação direto pelo retorno do método do ManagedBean vc precisa colocar no final da String '?faces-redirect=true' ou as vezes 'faces-redirect=true&includeViewParams=true'
Até da, mas de novo comparando com um ActionBased o JSF perde nesse sentido
Quero deixar claro Rafael que eu não estou defendo JSF ou outra coisa. Estou apenas te ajudando a ver o pros e contras para vc possa tomar a melhor decisão.
Algo que eu poderia te acrescentar é que vc tem que fazer o validação arquitetural usando algo que vc não tenha certeza. Por exemplo...se vc tem duvidas que é estranho usar uma aplicação JSF 2 com get + a arvore na pagina. Faça um teste arquitetural e levante os pros e contras. Esse é o trabalho de um arquiteto
Que isso, você está ajudando bastante, é discutindo que agente aprende.
Quero colocar aqui o meu ponto de vista, dizendo de novo que eu uso bastante o JSF.
Na minha opnião, quando você vai desenvolver um aplicativo WEB onde por exemplo a primeira coisa que acontece é o login do usuário (como um HomeBanking) o JSF se mostra uma opção muito boa mesmo eu sempre a uso JSF nesses casos.
Ja quando seu aplicativo é pra funcionar mais com requisições GET e o login vem por exemplo no final do processo (como por exemplo uma Loja Virtual) ai já não acho o JSF tão bom e prefiro algo mais ActionBased.
Quais serão meus passos daqui pra frente:
Do FLEX eu já desisti mesmo pra falar a verdade nem fui eu mas a diretoria do cliente depois de saber sobre a atitude da Adobe.
Estou aprofundando meus estudos no conjunto (Vraptor + Spring + Hibernate), para o front-end estou estudando ExtJS vou decidir entre ele e o JQuery +JqueryUI ou então JQuery + ExtJS.
Gostei bastante do que vi sobre o ExtJS, mas ainda não coloquei a mão pra saber.
Estou descartando o GWT + GWTJs. Dei uma rápida olhada mas não gostei muito do que vi.
Agora uma pergunta, e o JavaFX o que vocês acham? andei dando uma olhada no roadmap dele http://javafx.com/roadmap/ e vi que uma versão mas completa dele sai só la pra final de 2013. Mas tem alguem aqui que ta apostando nele? alguem já viu algum software mais empresarial (leia-se CRUD) com ele?
Eu vou reforçar meus estudos aqui, e vou postando minhas impressões, e vamos continuar a discussão pois acho que está bastante produtiva.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/01/2012 07:11:32
|
erickfm8
GUJ Master
Membro desde: 06/10/2009 19:29:12
Mensagens: 1396
Offline
|
Como eu disse, eu sei que JSF 2 contempla, mas você precisa no mínimo de umas gambiarrinhas vai.
Por exemplo caso use navegação direto pelo retorno do método do ManagedBean vc precisa colocar no final da String '?faces-redirect=true' ou as vezes 'faces-redirect=true&includeViewParams=true'
Até da, mas de novo comparando com um ActionBased o JSF perde nesse sentido
Navegação do JSF apartir da versão 2 o metodo de navegação que retorna uma String, só é preciso retornar o nome da pagina
ex: return "nomeDaPagina";
que eu saiba não é preciso usar o ?faces-redirect=true
This message was edited 1 time. Last update was at 06/01/2012 07:12:25
|
Bacharel em Sistema de Informação
SCJP - Sun Certified Java Programmer
OCWCD - Oracle Certified Web Component Developer (Estudando..) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/01/2012 07:50:11
|
rafaelbtz
Java Ninja
![[Avatar]](/images/avatar/c5f441cd5f43eb2f2c024e1f8b5d00cd.jpg)
Membro desde: 29/03/2005 10:53:56
Mensagens: 276
Offline
|
erickfm8 wrote:
Navegação do JSF apartir da versão 2 o metodo de navegação que retorna uma String, só é preciso retornar o nome da pagina
ex: return "nomeDaPagina";
que eu saiba não é preciso usar o ?faces-redirect=true
É isso mesmo você só precisa retornar o endereço, MAS se você quiser que a URL no Browser seja alterada para o endereço da pagina destino (isso é obrigatório mo meu caso porque eu quero que a pagina possa ser adicionada ao favoritos do browser) ai você precisa fazer um REDIRECT e pra fazer isso no JSF vc precisa adicionar o ?faces-redirect=true, ou então usar os componentes <h:button> ou <h:link> direto com o outcome mas ai não da pra chamar uma action do ManagedBean.
E se você quiser que além de alterar o endereço ele ainda coloque os parametros da requisição na URL (faça uma consulta qualquer no google e olhe a url da pagina com os resultados) ai você precisa utilizar
'faces-redirect=true&includeViewParams=true
Fora que para ler os parametros passados na URL na pagina destino vc ainda vai precisar colocar no XHTML da pagina destino:
Com eu disse da pra fazer mas que é chato é.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/01/2012 08:17:04
|
Thiago Senna
GUJ Master
![[Avatar]](/images/avatar/78719f11fa2df9917de3110133506521.jpg)
Membro desde: 11/02/2005 08:08:02
Mensagens: 1595
Offline
|
Sinceramente, me parece que seu cliente esta viajando na batatinha. Se você quiser entrar na onda dele tente programar o maximo possivel da camada da UI usando javascript. Sua UI deve apenas se limitar em consumir os servicos disponibilizados pelo seu ERP (que pode ser qualquer coisa... VRaptor, Play, WebService, REST).
Nao sei como seu cliente (ou os analistas, sei lá) chegaram nestes brilhantes requisitos web. Mas fato é que se for para lutar contra o padrao, ou vocês devem cobrar muito caro pelo servico ou convenca eles de que o especilista em TI sao vocÊs, e nao eles. Se nao, eles mesmo fariam o sistema. Enfim... sinceramente nao entendo pq fazem tanta questao de navegar contra a maré.
UPDATED: Ou tente convencer seu cliente que o que ele precisa é de um sistema Desktop.
This message was edited 1 time. Last update was at 06/01/2012 08:18:28
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/01/2012 08:34:52
|
rafaelbtz
Java Ninja
![[Avatar]](/images/avatar/c5f441cd5f43eb2f2c024e1f8b5d00cd.jpg)
Membro desde: 29/03/2005 10:53:56
Mensagens: 276
Offline
|
Thiago Senna wrote:Sinceramente, me parece que seu cliente esta viajando na batatinha. Se você quiser entrar na onda dele tente programar o maximo possivel da camada da UI usando javascript. Sua UI deve apenas se limitar em consumir os servicos disponibilizados pelo seu ERP (que pode ser qualquer coisa... VRaptor, Play, WebService, REST).
Nao sei como seu cliente (ou os analistas, sei lá) chegaram nestes brilhantes requisitos web. Mas fato é que se for para lutar contra o padrao, ou vocês devem cobrar muito caro pelo servico ou convenca eles de que o especilista em TI sao vocÊs, e nao eles. Se nao, eles mesmo fariam o sistema. Enfim... sinceramente nao entendo pq fazem tanta questao de navegar contra a maré.
UPDATED: Ou tente convencer seu cliente que o que ele precisa é de um sistema Desktop.
Bom pra falar a verdade eu também acho isso eles viajam mesmo. Porém tem um grande problema que eu não falei. Agente é uma fábrica de software subordinada a central da escola, ou seja, é tudo independente mas quem manda é a escola... então não da pra brigar muito, eles são clientes e patrões ao mesmo tempo entendeu...
Quanto ao fato de fazer a tela em Javascript é justamente isso que eu quero fazer, por isso estou começando a estudar ExtJS e integrá-lo com Json com o Vraptor. Eu ainda não entendo bem o ExtJS mas pelo pouco que eu vi ExtJS + JQuery vai fazer exatamente isso certo? Telas em Javascrip fazendo requisições e recebendo os dados em JSon não é?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/01/2012 08:48:41
|
Thiago Senna
GUJ Master
![[Avatar]](/images/avatar/78719f11fa2df9917de3110133506521.jpg)
Membro desde: 11/02/2005 08:08:02
Mensagens: 1595
Offline
|
Pois é... complicado essas coisas.
Flex para mim é algo fora de cogitacao. Até poderia ser uma boa opçao, mas parece que flash esta em queda junto com o flex. Entao é melhor evitá-lo. Outra alternativa talvez seja swing.. pois sei q um bom tempo atras ele tinha um recurso onde vc poderia fazer o download e update do aplicativo online. Talvez seja uma opcao.
Mas pra mim, a melhor opcao pra mim ainda é JavaScript dado o seu cenário. Acho que você poderia dar uma olhada no ExtJS e talvez GWT (pois ele gera o cliente em javascript) também possa ajudar.
UPDATED: Sim.. quando pensei em JS pensei em ExtJS + JSON também.
This message was edited 1 time. Last update was at 06/01/2012 08:50:58
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/01/2012 09:15:03
|
rafaelbtz
Java Ninja
![[Avatar]](/images/avatar/c5f441cd5f43eb2f2c024e1f8b5d00cd.jpg)
Membro desde: 29/03/2005 10:53:56
Mensagens: 276
Offline
|
Thiago Senna wrote:Pois é... complicado essas coisas.
Flex para mim é algo fora de cogitacao. Até poderia ser uma boa opçao, mas parece que flash esta em queda junto com o flex. Entao é melhor evitá-lo. Outra alternativa talvez seja swing.. pois sei q um bom tempo atras ele tinha um recurso onde vc poderia fazer o download e update do aplicativo online. Talvez seja uma opcao.
Mas pra mim, a melhor opcao pra mim ainda é JavaScript dado o seu cenário. Acho que você poderia dar uma olhada no ExtJS e talvez GWT (pois ele gera o cliente em javascript) também possa ajudar.
UPDATED: Sim.. quando pensei em JS pensei em ExtJS + JSON também.
Eu pensei em Swing também utilizando o JAva Web Start, mas nesse caso não da. Eu já fiz sistemas com ele e pra falar a verdade o JWS é bom mas da uns probleminhas chatos.
Quanto ao GWT alguém já usou em algum projeto grande? Eu achei interessante o esquema de programação dele em classes Java, mas sei lá me parece que foge muito do padrão. O Ext pelo menos você programa direto os JS e os coloca nos arquivos HTML.
This message was edited 1 time. Last update was at 06/01/2012 09:15:26
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/01/2012 09:40:03
|
luistiagos
GUJ Expert
![[Avatar]](/images/avatar/98785ca89cfbbe933921bfe68a94553b.jpg)
Membro desde: 10/07/2006 10:37:23
Mensagens: 3161
Offline
|
Cara se o problema é que eles querem uma app desktop em um mundo web... meta o Flexão sem dó e nem piedade, que para isto ele e sem duvidas brilhante!
This message was edited 2 times. Last update was at 06/01/2012 09:47:53
|
SCJP 1.5
SCJA 1.0
IBM DB2 Associate |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/01/2012 09:41:19
|
Thiago Senna
GUJ Master
![[Avatar]](/images/avatar/78719f11fa2df9917de3110133506521.jpg)
Membro desde: 11/02/2005 08:08:02
Mensagens: 1595
Offline
|
Só sugeri o GWT pq talvez algumas pessoas prefiram programar em java e fechar uma arquitetura em cima do GWT... Se vocês se sentem confortáveis apenas com JS vai fundo usando apenas JS. Sobre usar GWT em projetos grandes eu nunca usei, mas ele daria conta do recado tranquilamente.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/01/2012 10:29:50
|
FernandoFranzini
GUJ Master
![[Avatar]](/images/avatar/33f6c40df1060aa3c548ad2d499eced0.jpg)
Membro desde: 24/04/2009 12:58:16
Mensagens: 1541
Offline
|
luistiagos wrote:Cara se o problema é que eles querem uma app desktop em um mundo web... meta o Flexão sem dó e nem piedade, que para isto ele e sem duvidas brilhante!
Na minha opinião, para fazer DESKTOP, na web eu figiria do FLEX !!!!
Uma boa opção para fazer RIA com java é VAADIN - https://vaadin.com/home
- Robusto
- Tem suporte
- não precisa de plugin nenhum pq gera HTML/JAVASCRIPT
- Muitas pessoas usando (Java Black Belt - http://knowledgeblackbelt.com/)
This message was edited 1 time. Last update was at 06/01/2012 11:01:07
|
Fernando Franzini |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/01/2012 10:58:12
|
x@ndy
Virtual Machine Man
![[Avatar]](/images/avatar/2a777aa4f210aa4cb06ee3bc682c19a0.png)
Membro desde: 07/01/2011 12:39:32
Mensagens: 554
Localização: Porto Alegre
Offline
|
FernandoFranzini wrote:
luistiagos wrote:Cara se o problema é que eles querem uma app desktop em um mundo web... meta o Flexão sem dó e nem piedade, que para isto ele e sem duvidas brilhante!
Se fosse para fazer DESKTOP na web eu figiria do FLEX !!!!
Uma boa opção para fazer RIA com java é VAADIN - https://vaadin.com/home
- Robusto
- Tem suporte
- não precisa de plugin nenhum pq gera HTML/JAVASCRIPT
- Muitas pessoas usando (Java Black Belt - http://knowledgeblackbelt.com/)
Dei uma olhada por cima nos demos e achei interesante esse vaadin. Vou testar em casa para ver se é produtivo como o flex. Pode ser uma solução até termos ferramentas HTML 5!
|
Software e Tecnologia:http://tekhton.blogspot.com
"Um software desprovido de contexto na base do seu design é, na melhor das hipóteses, um mecanismo que realiza coisas úteis sem explicar suas ações" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/01/2012 11:21:45
|
luistiagos
GUJ Expert
![[Avatar]](/images/avatar/98785ca89cfbbe933921bfe68a94553b.jpg)
Membro desde: 10/07/2006 10:37:23
Mensagens: 3161
Offline
|
x@ndy wrote:
FernandoFranzini wrote:
luistiagos wrote:Cara se o problema é que eles querem uma app desktop em um mundo web... meta o Flexão sem dó e nem piedade, que para isto ele e sem duvidas brilhante!
Se fosse para fazer DESKTOP na web eu figiria do FLEX !!!!
Uma boa opção para fazer RIA com java é VAADIN - https://vaadin.com/home
- Robusto
- Tem suporte
- não precisa de plugin nenhum pq gera HTML/JAVASCRIPT
- Muitas pessoas usando (Java Black Belt - http://knowledgeblackbelt.com/)
Dei uma olhada por cima nos demos e achei interesante esse vaadin. Vou testar em casa para ver se é produtivo como o flex. Pode ser uma solução até termos ferramentas HTML 5!
Dei uma olhada nesse Vadin e nem fodendo que ele é mais produtivo que Flex. Alias se assemelha muito com Swing...
|
SCJP 1.5
SCJA 1.0
IBM DB2 Associate |
|
|
 |
|
|