Qual a tecnologia esta se sobressaindo para UI Web?

29 respostas
G

Tenho um projeto EJB3 + CDI + JAXWS + JPA/HIBERNATE + SWING.

Estou migrando o mesmo para web, já estudei várias tecnologias (jsf-primefaces, gwt-smartclient, javafx, js-ext).

Javafx parece bem (na verdade ja desenvolvi desktop com ele), mais é muito imaturo ainda, e esbarra no jnlp.

jsf-primefaces parece bom, mas muita gente reclama do jsf (lentidão e dificuldade de desenvolver componentes personalizados principalmente)

gwt-smartclient tambem parece bom, mas parece que o google largou o gwt de lado

js-ext, jqueryui - puro javascript para meio complicado para mim.

Se alguem tiver opnião diferente ou sugestão, será bem vinda.

29 Respostas

A

giovanni_stiwes:
Tenho um projeto EJB3 + CDI + JAXWS + JPA/HIBERNATE + SWING.

Estou migrando o mesmo para web, já estudei várias tecnologias (jsf-primefaces, gwt-smartclient, javafx, js-ext).

Javafx parece bem (na verdade ja desenvolvi desktop com ele), mais é muito imaturo ainda, e esbarra no jnlp.

jsf-primefaces parece bom, mas muita gente reclama do jsf (lentidão e dificuldade de desenvolver componentes personalizados principalmente)

gwt-smartclient tambem parece bom, mas parece que o google largou o gwt de lado

js-ext, jqueryui - puro javascript para meio complicado para mim.

Se alguem tiver opnião diferente ou sugestão, será bem vinda.

Jquery na veia! :smiley:

M

Vai de Bootstrap, usei muito tempo o jquery UI, mais parti para o Bootstrap o design dele é muito clean.

K

Tem uns caras bacanas como o BackboneJs + Bootstrap ou AngulaJs + Bootstrap

B

Para sistemas Web eu recomendo o Ext JS. http://www.sencha.com/products/extjs/examples

S

giovanni_stiwes:
Tenho um projeto EJB3 + CDI + JAXWS + JPA/HIBERNATE + SWING.

Estou migrando o mesmo para web, já estudei várias tecnologias (jsf-primefaces, gwt-smartclient, javafx, js-ext).

Javafx parece bem (na verdade ja desenvolvi desktop com ele), mais é muito imaturo ainda, e esbarra no jnlp.

jsf-primefaces parece bom, mas muita gente reclama do jsf (lentidão e dificuldade de desenvolver componentes personalizados principalmente)

gwt-smartclient tambem parece bom, mas parece que o google largou o gwt de lado

js-ext, jqueryui - puro javascript para meio complicado para mim.

Se alguem tiver opnião diferente ou sugestão, será bem vinda.

Se vc já tem um sistema em swing, dá uma olhada no Vaadin. Ele segue o mesmo esquema do swing, mas produz HTML. É bom porque vc não tem que se preocupar com html, http, javascript, css, html5 e o diabo. Vc simplesmente usa os componentes e eles aparecem no browser tal como vc usa os componentes do swing e eles aparecem na tela. Para mim é o melhor frameworks para ui atualmente. O único detalhes é que não sei se ele escala bem. Então se isso é um item importante para vc talvez sejam precisos alguns testes a mais.

G

sergiotaborda:
giovanni_stiwes:
Tenho um projeto EJB3 + CDI + JAXWS + JPA/HIBERNATE + SWING.

Estou migrando o mesmo para web, já estudei várias tecnologias (jsf-primefaces, gwt-smartclient, javafx, js-ext).

Javafx parece bem (na verdade ja desenvolvi desktop com ele), mais é muito imaturo ainda, e esbarra no jnlp.

jsf-primefaces parece bom, mas muita gente reclama do jsf (lentidão e dificuldade de desenvolver componentes personalizados principalmente)

gwt-smartclient tambem parece bom, mas parece que o google largou o gwt de lado

js-ext, jqueryui - puro javascript para meio complicado para mim.

Se alguem tiver opnião diferente ou sugestão, será bem vinda.

Se vc já tem um sistema em swing, dá uma olhada no Vaadin. Ele segue o mesmo esquema do swing, mas produz HTML. É bom porque vc não tem que se preocupar com html, http, javascript, css, html5 e o diabo. Vc simplesmente usa os componentes e eles aparecem no browser tal como vc usa os componentes do swing e eles aparecem na tela. Para mim é o melhor frameworks para ui atualmente. O único detalhes é que não sei se ele escala bem. Então se isso é um item importante para vc talvez sejam precisos alguns testes a mais.

Parece que o Vaadin assim como o smartclient é baseado no gwt. correto?

G

Deu uma olhada neste Bootstrap, me parece que tem poucos componentes, e falta muitos componentes complexos que tem no primefaces e smartclient.

M

Eu prefiro Action Based do que Component Based(Prime-Faces), o que o Bootstrap não tem eu faço com jquery, e sinceramente acho que o prime anda carregando muito o lado do client.

G

Até agora os mais completos são: smartclient, js-ext, primefaces (na minha visão).

Quanto a performance, não tenho dados para avaliar.

Quanto a questão a facilidade em programar é questão de costume para todos eles.

S

giovanni_stiwes:

Parece que o Vaadin assim como o smartclient é baseado no gwt. correto?

Sim, o vaadin usa GWT por baixo dos panos, mas vc não vê. E não tem aquele problema de compilação do diabo que o qwt tem. Já tá tudo compilado na lib é só usar. Mas como eu disse, vc não vê esses componentes. Vc trabalha com componentes do Vaadin ele mesmo.

O wicket é pior que o Vaadin no sentido que ainda obriga a escrever html. O Vaadin é zero de client-side. ele faz tudo sozinho.

G

Realmente, bem completo o vaddin, alguem algum comparativo de performance, ou se alguem ja trabalhou com algum dos citados aqui e acha a performance satisfatória.

S

Maracuja:
sergiotaborda:
giovanni_stiwes:

Parece que o Vaadin assim como o smartclient é baseado no gwt. correto?

Sim, o vaadin usa GWT por baixo dos panos, mas vc não vê. E não tem aquele problema de compilação do diabo que o qwt tem. Já tá tudo compilado na lib é só usar. Mas como eu disse, vc não vê esses componentes. Vc trabalha com componentes do Vaadin ele mesmo.

O wicket é pior que o Vaadin no sentido que ainda obriga a escrever html. O Vaadin é zero de client-side. ele faz tudo sozinho.

Nao acho que seja pior, mas diferente! O fato de ter html com os markups ajuda muito na hora de mudanca de layout.

O Vaadin tem oconceito de Tema que permite modificar as cores ,etc… o layout em si não.
O Vaadin é mais para sistemas orientados a formulários como o Swing.

Se o objetivo é um web commerce da vida o vaadin pode não ser a escolha, mas como o autor da thread falaou que já tem o mesmo sistema em swing, eu acho que o vaadin é um bom casamento porque as classes são quase um para um com o swing. O wicket ou outros, implicariam em ter que criar o html na mão o que pode ser bem chato às vezes…

Não apenas uma questão de olha os frameworks , é preciso ver as circusntancias e qual seria a base para um porte mais fácil. Mas sim, como nada foi dito dos requisitos e do que é a aplicação, fica mais difícil opinar.

G

sergiotaborda:
Maracuja:
sergiotaborda:
giovanni_stiwes:

Parece que o Vaadin assim como o smartclient é baseado no gwt. correto?

Sim, o vaadin usa GWT por baixo dos panos, mas vc não vê. E não tem aquele problema de compilação do diabo que o qwt tem. Já tá tudo compilado na lib é só usar. Mas como eu disse, vc não vê esses componentes. Vc trabalha com componentes do Vaadin ele mesmo.

O wicket é pior que o Vaadin no sentido que ainda obriga a escrever html. O Vaadin é zero de client-side. ele faz tudo sozinho.

Nao acho que seja pior, mas diferente! O fato de ter html com os markups ajuda muito na hora de mudanca de layout.

O Vaadin tem oconceito de Tema que permite modificar as cores ,etc… o layout em si não.
O Vaadin é mais para sistemas orientados a formulários como o Swing.

Se o objetivo é um web commerce da vida o vaadin pode não ser a escolha, mas como o autor da thread falaou que já tem o mesmo sistema em swing, eu acho que o vaadin é um bom casamento porque as classes são quase um para um com o swing. O wicket ou outros, implicariam em ter que criar o html na mão o que pode ser bem chato às vezes…

Não apenas uma questão de olha os frameworks , é preciso ver as circusntancias e qual seria a base para um porte mais fácil. Mas sim, como nada foi dito dos requisitos e do que é a aplicação, fica mais difícil opinar.

A aplicação eh uma sistema de gerenciamento de Estoque, Notas Fiscais, Pedido de Compra e Venda, Títulos a Receber e Pagar, Controle de Caixa, Controle Bancário, Calendário Financeiro e algumas dezenas de cadastros, este é o resumo bem resumido do erp da empresa onde trabalho. E agora querem uma interface web. A tecnologia usado no servidor eu já citei anteriormente.

G

No momento acho que vaadin ou primefaces seria a melhor opção. devido a complexidade de algumas buscas (tables e treetables) e formularios. Devido a variedade de componentes dos mesmos. Basta descobrir sobre performance e estabilidade (erros). O pessoal aqui da empresa (tem mais 3 programadores) como tem pouco conhecimento em plataforma web não opnaram.

G

Outro que entra para a lista KendoUI. se alguem conhece da uma dica ai.

J

Para mim sem sombra de dúvidas o Bootstrap, tem muitas vantagens, como design responsivo a resoluções diferentes (como celular), grid layout integrado, isso tudo sem ser intrusivo. Claro que usando framework action based, no meu caso no momento ASP.NET MVC, no Java hoje usaria Spring MVC que estou experimentando, mas usava antes Struts2 profissionalmente e foi sucesso na época.

W

Eu tenho estudado AngularJS nos últimos tempos e achei ele genial. É javascript de uma maneira bem organizada, permitindo fazer bindings com html e etc. Pra quem, como eu, usou Flex por bastante tempo, é bastante natural usar o Angular, já que estamos acostumados a escrever bastante código de UI. O boostrap é ótimo, mas certamente deve se utilizar junto com Angular, JQuery ou outro framework.

A desvantagem do Angular é que é recente, não tem documentação em português e a documentação em inglês ainda está sendo aperfeiçoada (eu acho que em junho ou julho do ano passado saiu a versão 1.0 do framework). Mas o Google está investindo bastante no framework agora… vale a pena dar uma olhada.

No lado do servidor, basta ter uns serviços comunicando via JSON. Eu tenho usado Angular + Bootstrap + Vraptor numa app que to fazendo e achei otimo.

G

http://www.jqwidgets.com

Este tambem mutio bom.

G

Resolvi fazer um pequeno prototipo, continuo usando a estrutura jee mas agora comunicando com o cliente atraves de Rest, no cliente estou usando Html + AngularJS + Bootstrap (e JQuery por tabela, talvez tenha que usar JQueryUI para componentes).

Mas parei numa duvida. Templates? Como fazer? No Jsf é o facelet. Mas no hmtl javascript como faço?

J

giovanni_stiwes:
Resolvi fazer um pequeno prototipo, continuo usando a estrutura jee mas agora comunicando com o cliente atraves de Rest, no cliente estou usando Html + AngularJS + Bootstrap (e JQuery por tabela, talvez tenha que usar JQueryUI para componentes).

Mas parei numa duvida. Templates? Como fazer? No Jsf é o facelet. Mas no hmtl javascript como faço?


Já que está migrando, não poderia aproveitar e trocar webservice por solução direta? Ou esses webservices são usados por sistemas externos?

Não sei se entendi, é Client html direto com WebService sem aplicação web?

Sobre templates, exemplo de aplicacao web usando Tiles com framework Spring MVC: http://alvinjayreyes.com/2012/09/24/spring-mvc-3-with-template-using-apache-tiles/

Sobre o lado client, Bootstrap já tem muitos elementos visuais, ainda não vi necessidade de pegar algo do JQueryUI. O que você realmente precisou do JQueryUI que não achou no Bootstrap?

G

Não sei o que quer dizer com estrutura direta. Mas ja tenho um servidor jee existente, so estou colocando jax-rs nos stateles (ja que não uso stateful a adaptação é ate simples)
Não sei se entendi, é Client html direto com WebService sem aplicação web?

Não era minha intenção usar SpringMvc. já que em post anteriores muita gente usou somente html e javascritp no cliente e teve sucesso. Nao queria usar jsp, pois me parece que o mesmo gera muito java script e é lento. Com AngularJs meu cliente fica totalmente desacoplado do meu servidor.

Não achei por exemplo TableComboBox(Aquele combo que mostra um objeto numa tabela no popup, onde eu posso filtrar pelo servidor):
http://www.jeasyui.com/demo/main/index.php?plugin=ComboGrid&theme=default&dir=ltr&pitem=

Obrigado pela atenção.

T

Templates em JS? Handlebars.js -> http://handlebarsjs.com/

J

giovanni_stiwes:
javaflex:

Já que está migrando, não poderia aproveitar e trocar webservice por solução direta? Ou esses webservices são usados por sistemas externos?

Não sei o que quer dizer com estrutura direta. Mas ja tenho um servidor jee existente, so estou colocando jax-rs nos stateles (ja que não uso stateful a adaptação é ate simples)
Não sei se entendi, é Client html direto com WebService sem aplicação web?

Não era minha intenção usar SpringMvc. já que em post anteriores muita gente usou somente html e javascritp no cliente e teve sucesso. Nao queria usar jsp, pois me parece que o mesmo gera muito java script e é lento. Com AngularJs meu cliente fica totalmente desacoplado do meu servidor.

Não achei por exemplo TableComboBox(Aquele combo que mostra um objeto numa tabela no popup, onde eu posso filtrar pelo servidor):
http://www.jeasyui.com/demo/main/index.php?plugin=ComboGrid&theme=default&dir=ltr&pitem=

Obrigado pela atenção.


Falai Giovanni, primeiramente queria esclarecer que minha intenção é te ajudar a deixar sua solução web “mais normal” de se manter, em relação a maioria no mundo web, isso caso não exista necessidade do uso dos serviços externamente a sua aplicação ou se não existe realmente motivo da radicalidade no “desacoplamento” até para renderização do client.

JSP não gera JavaScript, quem gera JavaScript são as implementações JSF, corra disso mesmo se gosta de sempre ter o controle do HTML. Com SpringMVC ou qualquer framework web action based você pode naturalmente ter total controle do seu HTML e o JavaScript que você quiser.

Mas enfim, questão de gosto também, fique com a maneira que se sentir melhor para manutenção. Eu pelo menos sempre penso no futuro do cliente (empresa), não quero dificultar com uma solução que poucos vão se candidatar a manter com satisfação.

TableComboBox não é do JQueryUI. Você pode usar qualquer plugin jquery em conjunto com o Bootstrap, como para gráficos, etc, só evite baixar outro pacote inteiro similar ao Bootstrap, como JQueryUI, mas se precisar de algo do JQueryUI, coisa que não tive necessidade ainda, selecione isoladamente o elemento.

G

javaflex:

Falai Giovanni, primeiramente queria esclarecer que minha intenção é te ajudar a deixar sua solução web “mais normal” de se manter, em relação a maioria no mundo web, isso caso não exista necessidade do uso dos serviços externamente a sua aplicação ou se não existe realmente motivo da radicalidade no “desacoplamento” até para renderização do client.

JSP não gera JavaScript, quem gera JavaScript são as implementações JSF, corra disso mesmo se gosta de sempre ter o controle do HTML. Com SpringMVC ou qualquer framework web action based você pode naturalmente ter total controle do seu HTML e o JavaScript que você quiser.

Mas enfim, questão de gosto também, fique com a maneira que se sentir melhor para manutenção. Eu pelo menos sempre penso no futuro do cliente (empresa), não quero dificultar com uma solução que poucos vão se candidatar a manter com satisfação.

TableComboBox não é do JQueryUI. Você pode usar qualquer plugin jquery em conjunto com o Bootstrap, como para gráficos, etc, só evite baixar outro pacote inteiro similar ao Bootstrap, como JQueryUI, mas se precisar de algo do JQueryUI, coisa que não tive necessidade ainda, selecione isoladamente o elemento.

Baixei um crud SpringMvc ele tambem usar webservice (http://www.sivalabs.in/2011/04/springmvc3-hibernate-crud-sample.html) so que com anotações diferentes (@RequestMapping, etc), não é isto? neste caso prefiro ficar com o jee que ja esta rodando bem como meu servidor, pois ja tenho tudo implementado com stateless, ejb container transactions, CDI, etc. E como disse no final das contas não vi tanta diferenca entra SpringMvc e JaxRS + Stateless.

Obs.: Se entendi errado o Spring mvc me corrija, ou se tiver um exemplo mais completo?

J

giovanni_stiwes:

Baixei um crud SpringMvc ele tambem usar webservice (http://www.sivalabs.in/2011/04/springmvc3-hibernate-crud-sample.html) so que com anotações diferentes (@RequestMapping, etc), não é isto? neste caso prefiro ficar com o jee que ja esta rodando bem como meu servidor, pois ja tenho tudo implementado com stateless, ejb container transactions, CDI, etc. E como disse no final das contas não vi tanta diferenca entra SpringMvc e JaxRS + Stateless.

Obs.: Se entendi errado o Spring mvc me corrija, ou se tiver um exemplo mais completo?


Minha intenção era para uso de qualquer framework MVC action based server side, SpringMVC é só um exemplo, mas sem webservices, já que não apresentou motivos de uso além da própria aplicação. Por você estar migrando o lado client imaginei que seria bom aproveitar e fazer uma reforma geral, mas se percebe bem que será melhor aproveitar o que já tem pronto do lado servidor então é considerável deixar como tá, depende do investimento.

Um exemplo do que você pediu do SpringMVC: http://www.simpledev.com.br/simplificando-springmvc.html

J

sergiotaborda:
giovanni_stiwes:
Tenho um projeto EJB3 + CDI + JAXWS + JPA/HIBERNATE + SWING.

Estou migrando o mesmo para web, já estudei várias tecnologias (jsf-primefaces, gwt-smartclient, javafx, js-ext).

Javafx parece bem (na verdade ja desenvolvi desktop com ele), mais é muito imaturo ainda, e esbarra no jnlp.

jsf-primefaces parece bom, mas muita gente reclama do jsf (lentidão e dificuldade de desenvolver componentes personalizados principalmente)

gwt-smartclient tambem parece bom, mas parece que o google largou o gwt de lado

js-ext, jqueryui - puro javascript para meio complicado para mim.

Se alguem tiver opnião diferente ou sugestão, será bem vinda.

Se vc já tem um sistema em swing, dá uma olhada no Vaadin. Ele segue o mesmo esquema do swing, mas produz HTML. É bom porque vc não tem que se preocupar com html, http, javascript, css, html5 e o diabo. Vc simplesmente usa os componentes e eles aparecem no browser tal como vc usa os componentes do swing e eles aparecem na tela. Para mim é o melhor frameworks para ui atualmente. O único detalhes é que não sei se ele escala bem. Então se isso é um item importante para vc talvez sejam precisos alguns testes a mais.

Nesse mesmo sentido vc pode adicionar a sua lista de candidatos o Apache Wicket. O wicket e bem maduro e confiavel pois esta no mercado desde 2004.

J

sergiotaborda:
giovanni_stiwes:

Parece que o Vaadin assim como o smartclient é baseado no gwt. correto?

Sim, o vaadin usa GWT por baixo dos panos, mas vc não vê. E não tem aquele problema de compilação do diabo que o qwt tem. Já tá tudo compilado na lib é só usar. Mas como eu disse, vc não vê esses componentes. Vc trabalha com componentes do Vaadin ele mesmo.

O wicket é pior que o Vaadin no sentido que ainda obriga a escrever html. O Vaadin é zero de client-side. ele faz tudo sozinho.

Nao acho que seja pior, mas diferente! O fato de ter html com os markups ajuda muito na hora de mudanca de layout.

J

Trabalho com Wicket atualmente, na empresa onde estou temos 2 produtos desenvolvidos com ele e nao temos tido problemas. O framework existe desde 2004, ele e bastante popular na europa.

J

sergiotaborda:
Maracuja:
sergiotaborda:
giovanni_stiwes:

Parece que o Vaadin assim como o smartclient é baseado no gwt. correto?

Sim, o vaadin usa GWT por baixo dos panos, mas vc não vê. E não tem aquele problema de compilação do diabo que o qwt tem. Já tá tudo compilado na lib é só usar. Mas como eu disse, vc não vê esses componentes. Vc trabalha com componentes do Vaadin ele mesmo.

O wicket é pior que o Vaadin no sentido que ainda obriga a escrever html. O Vaadin é zero de client-side. ele faz tudo sozinho.

Nao acho que seja pior, mas diferente! O fato de ter html com os markups ajuda muito na hora de mudanca de layout.

O Vaadin tem oconceito de Tema que permite modificar as cores ,etc… o layout em si não.
O Vaadin é mais para sistemas orientados a formulários como o Swing.

Se o objetivo é um web commerce da vida o vaadin pode não ser a escolha, mas como o autor da thread falaou que já tem o mesmo sistema em swing, eu acho que o vaadin é um bom casamento porque as classes são quase um para um com o swing. O wicket ou outros, implicariam em ter que criar o html na mão o que pode ser bem chato às vezes…

Não apenas uma questão de olha os frameworks , é preciso ver as circusntancias e qual seria a base para um porte mais fácil. Mas sim, como nada foi dito dos requisitos e do que é a aplicação, fica mais difícil opinar.

Entendo, e obviamente so estamos dando algumas ideias para o criador do post para que ele saiba para onde olhar. Com certeza nao se chagara e nenhuma conclusao descente sem conhecer o projeto, requisitos, equipe e etc; tendo somente como base as parcas informocoes trocadas em forum da internet. :slight_smile:

Criado 1 de fevereiro de 2013
Ultima resposta 1 de fev. de 2013
Respostas 29
Participantes 10