Sugestoes para interface (cadastros/relatorios/etc)

24 respostas
E

Ola, pessoal…

Estou precisando fazer um sistema de contas a pagar/receber que tera um modulo obrigatoriamente Web. Ja tenho uma versao em Delphi C/S para a LAN, mas agora o cliente, que tem filiais, e viaja pra outros lugares, precisa acessar o sistema, inclusive para fazer cadastros de contas, e emitir relatorios.

Pedir para ele usar a aplicacao em Delphi remotamente é uma carroca, devido aos links internet, etc.

Entao, pensei em duas alternativas para cada tela de cadastro:

  1. Fazer uma applet
    ou
  2. Usar HTML/JS/CSS/etc/etc/etc + Servlet

Vantagens da applet: tem uma interface 1 milhao de vezes melhor que o “HTML e seus comparsas”, pois eu poderia “tentar” simular com a applet todos os recursos, botoes, eventos, etc, de telas complexas, como uma tela que tenho de baixa de contas a pagar/receber.

Desvantagem da applet: vejo pessoas dizendo que applet morreu, que nao da futuro pra ninguem, que é muito pesado, etc.

Outra opcao seria fazer alguma coisa do tipo applet/servlet, onde a applet seria bem light, mais para controle dos eventos mesmo, e passaria a logica pesada para dentro da servlet.

Voces ja viram ou fizeram algo do tipo ou tem outras sugestoes???

24 Respostas

E

existe uma solução chamada SWT que é bem mais leve que o SWING, mais não é multiplataforma.
Utilizando o JAVA SE 1.4.2 as aplicações SWING ficaram mais rápidas e com tempo de carregamento menor, mais se o problema de performance for realmente o diferencial aconselho as Servlets. Passei por esse problema onde a performance pesa muito e a solução usando Servlets está se mostrando fantástica.

cv1

André, SWT é multiplataforma. Eu cansei de discutir isso aqui no GUJ, então caso encerrado.

Edilmar, vc pode escrever uma aplicação meio-fat-meio-thin client usando Swing, AWT ou SWT, e fazer com que ela seja inicializável pela web através do Java Web Start. Se você tem a JRE mais recente, basta clicar em qualquer link para um arquivo .jnlp (Java Network Launch Protocol) e a aplicação é baixada e iniciada na hora.

Além de ser uma baba de fazer, e mais fácil ainda de usar, dá pra se matar de usar o que der na cabeça usando qualquer um desses 3 toolkits.

Um exemplinho, o demo do JGoodies Forms, feito em Swing:

http://jgoodies.com/download/formsdemo/formsdemo.jnlp

E

Ola pessoal,

Ainda continuo na duvida… para trabalhar com uma interface legal para o usuario remoto, usar Servlets com HTML nao me parece bom. Servlets é otimo no desempenho, mas na interface e facilidades para o usuario é muito fraco (na verdade o HTML/CSS/JS/etc é muito fraco).

Ja fiz algumas coisas simples com Swing, AWT e ate com SWT. Mas o que voces me dizem da solucao applet/servlet? É interessante ou nao tem nada a ver? As applets ainda “tem moral” ou o negocio é fazer applications com JWS totalmente independente do browser?

Vejo na solucao de applets ou de application uma duvida: como a minha aplicacao tera que acessar o BD, eu teria que fazer uma conexao JDBC e criar (ou usar algum, caso exista algum free, avisem-me) componentes Dataware. Mas neste caso a solucao seria “semelhante” a aplicacao Delphi remota, sofrendo dos mesmos problemas de desempenho de link. Por isso pensei em alguma coisa do tipo applet (ou application) chamando a servlet. Entao a servlet teria conexao JDBC (modelo realmente 3 camadas). Somente ainda nao sei como a applet/application iria “trocar as figurinhas” com a servlet para enviar/receber dados do BD.

Rafael_Steil

HTML eh ridiculo de fazer e manter. Voce consegue fazer uma interface BEM legal com criatividade… eh soh saber usar CSS e saber mexer em um bom programa de manipulacao de imagens.

Applet? ugh. Se nao quiser fazer em HTML, faca em Flash… ai sim vc vai ter uma interface grafica matadora.

Coisas como o JGoodies, JWS padraozao mesmo e coisas do genero sao uma boa alternativa tmb.

Rafael

cv1

Ugh, mesmo. Eh um peh no saco resolver problemas com versoes de JVMs, quando voce nao tem controle sobre as maquinas que estao rodando o sistema (senao, e soh dar um pulinho na www.java.com e fazer o download, que instala sozinho). Applets sao o jeito “1998” de fazer o que se faz hoje com WebStart. :wink:

Matadora… vai matar o usuario de raiva, pq os botoes back, forward, stop e reload do browser funcionam de um jeito diferente do esperado, quando funcionam. Pq eh looogico que um cadastro de clientes precisa de animacoes. Pq bookmarks nao funcionam. Pq aplicacoes em Flash, a menos que se tome bastante cuidado, sao um rombo de seguranca ambulante (ta usando Flash remoting eh? Surpreenda-se caso ninguem tenha dado System.exit(0) na sua JVM ainda). Pq…

Bom, chega. Flash pra interfaces de usuario em sistemas - nao em websites, onde ate da pra fazer umas coisas legaizinhas - eh algo que eu ja tentei fortemente fazer, e simplesmente nao chegou la ainda. Vale a pena manter um olho, quem sabe as proximas versoes melhoram (essa ultima pelo menos trouxe um ActionScript mais poderoso, o que jah eh uma bela melhoria, mas ainda nao tah bem lah).

E

Entendi que applet já foi… e Flash tem que ter paciencia para usar aquele troço, deixa quieto…

Agora, voltando a minha ideia principal: se eu fizer application (thin-client) + servlet + BD (3 camadas MVC), é interessante? Tem como “ligar componentes dataware” entre os edits na application e o acesso ao BD na servlet?

Imagine a tradicional tela com os botoes: Primeiro, Anterior, Proximo, Ultimo, Inserir, Alterar, Remover, Gravar, Cancelar, etc na application, em um cadastro de clientes. A opcao application+servlet é viavel?

cv1

Sim. :slight_smile:

Nao, a menos que vc use um JDeveloper ou JBuilder da vida. Eu detesto, mas ja que vc vai fazer um sistema comercial mesmo, nada como usar as ferramentas certas :wink:

E

Voce tem algum exemplo de sistema ou site ou tutorial que use este sistema application + servlet + BD?

Se nao usar uma IDE especifica tenho que fazer o dataware “no braco” na application? Nao ha nada freeware pra isso?

Por que voce detesta componentes dataware? Tem algum ponto negativo?

cv1

Eu detesto as IDEs, mesmo, nao os componentes. Os componentes ate que sao legaizinhos, mas como eu nao preciso deles (pq pras aplicacoes que eu tou desenvolvendo eles nao fazem sentido)…

E

Mas voce conhece componentes dataware freeware?
Ou mesmo conhece exemplos/tutoriais 3 camadas application/servlet/BD?

F

Acho que a idéia do CV ta de ponta…pq naum usar SWT com Web Start?

Tecnologia de ponta com performance otima…e ainda por cima se depois precisar distrubuir como .exe sem mudar muito ja vai estar pronto.

[]'s

Fabio Patricio
Desenvolvedor Oracle/ Java

cv1

Aqui vai um artigo sobre SWT + Java WebStart: http://www.jsurfer.org/article.php?sid=643&mode=thread&order=0&thold=0

E

Eu fiz algumas coisas com SWT e com Swing, e com Eclipse e NetBeans.
E sinceramente, apesar do Swing ser um pouco mais lento, apesar que
a promessa do JDK 1.5 é que evolua bastante, eu nao estou querendo
investir no SWT.

Pra comecar, entre Eclipse e NetBeans, eu fico muito mais a vontade no NetBeans. Acho a interface mais organizada, mais legivel. E concordo com outras pessoas que acham o SWT algo como programacao “pseudo-objeto” estilo GUI-Windows, enquanto que o Swing é muito mais organizado.

E em termos futuros, nada garante que a IBM ira continuar investindo no SWT, principalmente se o Swing evoluir como se espera. Vale lembrar do JDK da IBM, que foi OTIMO por algum tempo, mas o “gas” da IBM acabou.

Luca

Olá

A resposta do CV já esgotou o assunto. Apesar das promessas do Java Server Faces que ainda vai ser lançado, o negócio é mesmo usar Java Web Start com as features do jardiff para fazer download somente do que foi alterado em cada atualização de versão.

Se optar por usar swing poderá obter uma interface mais amigável com diferentes look&feels. Há muitos livros sobre swing e penso ser mais fácil encontrar profissionais que conheçam swing do que swt. Este último é uma opção nova e caso você se sinta confortável com ele vá em frente.

Não é verdade que applets estejam mortas. Se você examinar os milhares de terminais do Banco Postal vai ver uma applet assinada com mais de 1200 classes (fora as libs tipo foxtrot, commons, etc.). O seu desenvolvimento começou quando o JWS ainda era uma promessa. O JWS ficou bom mesmo depois do J2SDK 1.4 e o Banco Postal usa J2SDK 1.3. O problema do uso de applets é a necessidade de desenvolver um classloader específico (e mais alguns veneninhos) para não precisar fazer download de toda a aplicação a cada mudança de versão.

Quanto ao uso ou não de servlets a questão não tem nada a ver com a interface gráfica do usuário e sim com sua vontade de usar um servidor de aplicações já pronto que receba as transações por http ou então que você mesmo desenvolva este servidor. O uso de http (ou https) é mandatório pois passa facilmente por firewalls e você não precisará entrar em disputa com o depto de segurança de redes.

Atualmente com java.nio se pode desenvolver um ótimo servidor para receber solicitações http (ou https). Mas vai ser dificil convencer seus chefes de que será melhor do que já existe pronto.

[]s
Luca

F

Hm…boa questão essa…vc acham que isso pode acontecer? Imagino que acontecendo isso é a mesma coisa que a IBM naum apostar mais no Eclipse ou não?

[]'s

cv1

A SWT nao eh da IBM, eh do Eclipse Consortium. Se a IBM der as costas, ainda temos algumas empresinhas minusculas (SAP?) pra dar continuidade à coisa.

http://www.eclipse.org/org/index.html

F

“cv”:
A SWT nao eh da IBM, eh do Eclipse Consortium. Se a IBM der as costas, ainda temos algumas empresinhas minusculas (SAP?) pra dar continuidade à coisa.

http://www.eclipse.org/org/index.html

SAP minuscula? rss essa foi boa…tem mais algumas minusculas (Borland, HP )

CV, boa lembrança…
Outra coisa que não intendi do comentário do colega sobre SWT ser uma “programação “pseudo-objeto” estilo GUI-Windows” como assim?

[]'s

T

Nunca trabalhei com o SWT, mas li bastante e vi alguns exemplos. Essa critica eh feita em geral pelos puristas. O Swing eh um exemplo muito bom de Framework orientado a objetos, onde tudo eh baseado no MVC, tudo se baseia em Listeners e os componentes visuais complexos, como Tabela e Listas tem um objeto de dados separados.
Ja o SWT nao leva a Orientacao a Objeto as ultimas consequencias, como o Swing, usa conceitos mas simples, talvez ate um loop de eventos. Mas nada impede da criacao de wrappers mais orientado a objetos em cima do SWT.
Existem varios toolkits graficos, fora do java, que tem essa caracteristica, por exemplo o GTK. Ele eh puro C, sem nada de C++, mesmo assim, existem varios wrappers dele para o C++, Python e ate Java, estes mais orientados a objetos ( a medida do possivel ).

Agora uma coisa que gostaria muito de ver, nao sei se eh possivel: fazer uma adaptacao do swing, talvez ate um um LF, que use as primitivas do SWT. Nao sei se isso eh possivel, mas realmente seria algo muito interessante.

cv1

Da uma olhada no SwingWT, tanque. Exatamente o que vc quer :wink:

F

http://sourceforge.net/projects/swingwt/

[]'s

louds

Tem o JFaces, que vem com o eclipse.

F

O JFace é uma API acima da SWT utilzando ela como base.

[]'s

louds

Sim, e tem um design muito mais OO que a SWT.

F

Me desculpa, eu não tinha entendido o que quiz dizer. Isso vc tens razão normalmente eu uso JFace mas quando me perguntam o que usei respondo SWT/JFace :slight_smile:

Eu particularmente gosto de usar SWT/JFace.

[]'s

Criado 31 de dezembro de 2003
Ultima resposta 6 de jan. de 2004
Respostas 24
Participantes 8