Desenvolvimento Web

Boas…
Sou iniciante em desenvolvimento web, e aproveitando todas a discussões geradas pelo o uso de “struts”, eu gostaria da indicação de um framework das pessoas que possuem experiência, será que devo optar pelo JSF??

Se sim, indique uns links com material deste (em português de preferência)

Agradeço toda e qualquer ajuda…

Depende do que vc quer conseguir. Parece que há mais emprego para quem sabe Struts, mas isso vai mudar logo.

Dê uma olhada no WebWork e no Mentawai.

O WebWork tem mais coisa e é mais famoso. (com XML)

O Mentawai é mais fácil e ágil. (sem XML)

Então,

Eu tenho uma aplicação(Sistema Financeiro) feita em VB6 com base de dados em PostgreSQL 8, eu tenho que migrar essa aplicação para Web.

[quote=robinsonbsilva]Então,

Eu tenho uma aplicação(Sistema Financeiro) feita em VB6 com base de dados em PostgreSQL 8, eu tenho que migrar essa aplicação para Web.
[/quote]

Apoie a indústria nacional então e use o Mentawai. Qualquer dúvida que vc tiver nós podemos responder no fórum, além do que vc pode contribuir para melhorar o framework.

Cara, antes de sair aprendendo algum framework como o Sérgio sugeriu, apanhe mais algumas semanas com JSP e Servlets. São tecnologias bastante cruas, mas ótimas para aprender.
Adianta porcaria nenhuma ter um framework fazendo tudo para você se não entender o que ocorre por trás das cortinas, e isso acarreta uma série de frustrações e problemas aparentemente insolúveis para o desenvolvedor iniciante.

De qualquer maneira, antes de escolher um framework, estude as variáveis:

  • se você quer incrementar o seu currículo ou fazer um trabalho
  • qual framework tem a melhor curva de aprendizado
  • a qual framework a equipe se adapta melhor
  • qual framework possui facilidades built-in que auxiliarão o projeto
  • quanto de suporte, tamanho da comunidade e quanto de documentação tem cada framework

Esse lance de “esse aqui é melhor porque estou falando”, como aprendi recentemente, não vale a pena.

[quote=LIPE]Cara, antes de sair aprendendo algum framework como o Sérgio sugeriu, apanhe mais algumas semanas com JSP e Servlets. São tecnologias bastante cruas, mas ótimas para aprender.
Adianta porcaria nenhuma ter um framework fazendo tudo para você se não entender o que ocorre por trás das cortinas, e isso acarreta uma série de frustrações e problemas aparentemente insolúveis para o desenvolvedor iniciante.

De qualquer maneira, antes de escolher um framework, estude as variáveis:

  • se você quer incrementar o seu currículo ou fazer um trabalho
  • qual framework tem a melhor curva de aprendizado
  • a qual framework a equipe se adapta melhor
  • qual framework possui facilidades built-in que auxiliarão o projeto
  • quanto de suporte, tamanho da comunidade e quanto de documentação tem cada framework

Esse lance de “esse aqui é melhor porque estou falando”, como aprendi recentemente, não vale a pena.[/quote]

Concordo com o Lipe.

É legal vc aprender Servlet/Jsp/Custom Tags primeiro.

Depois escolha um framework, se achar necessário.

Eu sugeri o Mentawai por razões óbvias, mas a escolha é sua. Vc pediu uma opinião de framework e eu dei. Para não parecer propaganda barata eu indiquei o WebWork tb. :wink:

Agora acho legal usar um framework pois ele resolve um monte de problemas, agilizando o processo.

Autenticação
Autorização
Validação
File Upload
Envio de Email
Pool de Conexões
Inner Actions

e por aí vai…

Mas nada te impede, a título de aprendizado e treinamento, de fazer isso tudo na mão.

Só reiterando e pegando carona no que o LIPE já disse, estude muito JSPs e Servlets, veja ciclo de vida, Expression Language, JSTL. Uma ótima fonte pra isso é esse livro aí embaixo:

E pegando carona mais ainda no que ele disse:

Isso é um caso pra Struts, por mais que ele seja horrível (experiência própria, literalmente) ainda é uma exigência em muitos projetos “legado”. O Spring (no geral, não o módulo MVC) também é um framework que está sendo pedido por aí, tem até um ERP Open Source em Java sendo feito aqui na UFPB usando o Spring.

Essas duas são altamente subjetivas, só o seu time aí (ou você mesmo) vão conseguir descobrir.

De muito longe o Spring ganha de todos os outros, porque ele não é apenas um framework MVC (como o Struts, WebWork e Mentawai), ele é um framework pra facilitar o desenvolvimento de aplicações Java utilizando o princípio da inversão de controle. (tem uma ótima definição de inversão de controle no blog do Daniel.

Aqui o páreo é duro entre Struts e Spring, com uma vitória do Struts que já tem mais de 5 anos de estrada e uma base gigantesca de desenvolvedores e documentação. O Spring está correndo rápido atrás disso, já existem 5 livros publicados sobre ele, a documentação é monstruosa (a que vem no download do framework tem um pouco mais de 200 páginas.

O WebWork não chega nem perto, pois mesmo sendo apenas um pouco mais novo que o Struts vai ser o seu primeiro livro próprio agora (já existe outro que fala no WebWork, mas não é apenas sobre o WebWork).

Ah, e tinha esquecido, o Spring tem uma integração facílima com JavaServer Faces, você não vai precisar fazer as várias gambiarras do Struts pra usar JSF (não sei como se faz isso no Mentawai e no WebWork).

eu estou desenvolvendo um projeto de desenvolvimento de um web browser em java, mas naum tenho muito conhecimentos de como é o funcionamento de um browser ou as classes que eu poderia utilizar. Será que alguém conhece algo a respeito ? algum arquivo que explique o funcionamento de um web browser?

       Athila 
 athila.uno@gmail.com

JRex

Galera …

Eu não concordo com vocês. Aprender e fazer as coisas bonitas são coisas legais. Mas, na boa, na prática vale mais a pena priorizar coisas como o Struts (suficiente para fazer a maioria das aplicações web) do que (por exemplo) a linguagem Java (pasmem!!!). Por que isto ?
Tem uma frase legal de um colega meu sobre o assunto: “O Napster foi o pior software peer-to-peer já inventado, mas o único que o criador ficou milhionário”. Nem sempre fazer a coisa mais bem feita, signfica fazer melhor (financeiramente falando).

Por tanto, se você quiser aprender como as coisas funcionam, Java é um “ambiente” excelente! Você encontrará tudo!!! Forum, revistas, artigos, livros, para você aprender a programar muito bem. Mas você nem precisa virar um programador (médio) para atender as necessidades do mercado.

Pioneirismo é algo importante.

Por isso se vc quer fazer um site, e está mais preocupado com o site em si do que com a tecnologia que está por trás dele, e vc quer usar Java, use o Mentawai. Acredito que é mais produtivo do que um Struts da vida. É mais fácil e mais direto. Isso na minha humilde opinião… Se vc está dominando e acha o Struts ágil e produtivo então use o Struts mesmo.

[quote=rodrigousp]Eu não concordo com vocês. Aprender e fazer as coisas bonitas são coisas legais. Mas, na boa, na prática vale mais a pena priorizar coisas como o Struts (suficiente para fazer a maioria das aplicações web) do que (por exemplo) a linguagem Java (pasmem!!!). Por que isto ?
[/quote]

Sem onda, você já comparou a quantidade de código que você tem que escrever com o Struts e a quantidade de código que você escreveria com um Spring MVC da vida?

Começe pelas transformações do ActionForm pra sua classe de modelo, garanto que vai ser coisa perto de o triplo. Experiência própria.

Pra esse tipo de “necessidade” você pode atender com .NET ou Delphi, porque escolheu Java?

Não saber como as coisas funcionam nem se interessar por isso é um perigo, porque abstrações falham: The Law of Leaky Abstractions

E só os melhores podem fazer o melhor: High Notes

Nada contra webwork. Nada contra SpringMVC. Nem Mentawai, nem Barracuda. Ah! Saoj, excelentes comentários!!!

Vai pelo mais fácil e seja feliz. Talvez, ainda olhando só pelo lado de currículo, valha a pena aprender usar o Struts como o primeiro framework. Se você pensou duas vezes em não usar o Struts por achar que o framework não te agrade, nem pense a terceira. Escolha outro!!!

Nossa! Perae que você pegou pesadíssimo aqui:

  1. Soa preconceituoso: ex. você acredita mesmo que .NET não seja uma boa arquitetura ???
  2. Ainda que não tenha sido preconceituoso, qual o problema de escolher a plataforma .NET ?

Acho que a resposta para última questão não é olhando só o “como as coisas funcionam”, senão você iria sugerir o uso de Smalltalk, mas como o Mercado pesa bastante, Java é uma opção interessante (assim como .NET). Escolher por onde começar requer certa reflexão (acho que escolher entre .NET e JAVA não é uma questão tão trivial assim!)

Calma Maurício! Eu acredito no caminho da prática. Fazer para depois dedicar tempo para entender as questões mais teóricas. Para adquirir fluência numa língua vale de alguma coisa saber toda a gramática para depois começar a falar ???
Tem um ditato latim para isso: “Aurum praxies, Teorum esteris”

Por fim… não basta fazer o melhor. E não é porque você não fez o melhor (tecnicamente) que você não vai se dar bem (financeiramente). Exatamente como falei sobre o Napster, o pior software peer-to-peer.

Nenhum preconceito, sou desenvolvedor C# e C#/ASP.NET e já sofri alguns horrores com Delphi. Se o negócio é fazer CRUD simples e direto em tabelas do banco de dados, pega o VS.NET ou o Delphi 8/2005 e clica e arrasta. Em Java eu poderia usar o e-Gen. Mas pra qualquer coisa que precice de um pouco mais do que isso, vai dar um bom trabalho lidar com RecordSets.

Smalltalk é feio que dói :lol:

E a minha escolha de trabalhar primariamente com Java é porque a referência é maior (e melhor, diga-se de passagem), a maioria das ferramentas de alta qualidade são gratuitas e a comunidade é muito mais acolhedora. Além de não me prender a ninguém. Em casa eu desenvolvo no Jetty no Windows, mas o deploy é num Tomcat no Linux, isso nunca me deu problema.

E você conhece algum programador que saiba tudo da linguagem e sua API? Duvido que o Gosling conheça todo o J2SE, imagina o J2EE e o J2ME.

Quando você se esconde demais atrás de abstrações, sem saber o que está por baixo delas, vai ter problemas quando houver uma falha no serviço que a abstração está provendo.

Por exemplo, eu tive problemas migrando para o Struts 1.2.7 na validação do lado cliente com JavaScript, ela simplesmente não funcionava, mas a do lado servidor funcionava normalmente. Fui ver os fontes HTML que estavam sendo gerados e percebi que era um bug do Validator, que estava gerando código XHTML errado, retirei a declaração pra ele gerar XHTML e voltou a funcionar.

Se eu não soubesse XHTML e não fosse debugar o código, ia ficar sem validação do lado cliente.

Claro que não, mas já é um grande passo. É assim que empresas como a ThoughtWorks e FogCreek funcionam. E é no exemplo de sucesso delas que eu acredito que eu deva me espelhar.

E o meu pai sempre diz uma coisa muito importante: