Oi Pessoal.
Há cerca alguns meses iniciamos a construção de nosso aplicativo para gerenciamento de Notas Fiscais Eletrônica, hoje o sistema já está bem maduro (funcionalidades). Com 2 meses de desenvolvimento ele já estava no ar, em produção, com as funcionalidades básicas rodando sem problemas.
Para desenvolver esse sistema (que na verdade acabou mudando um pouco seu foco deixando de ser exclusivamente para NFe tornando-se uma base de sistemas mais abrangente, principalmente por causa do SPED), optamos pela plataforma JBoss 5 + EJB3 + JPA (com Hibernate como persistence provider), Apache Axis para comunicação com WebServices da SEFAZ, XMLBeans para gerar as classes de geração dos XMLs, EJBTimers para ativar processos e enviar mensagens JMS, emails… etc.
Neste projeto, a partir do momento que optamos pelo JBoss como App Server, procurei colocar os componentes que fosse suportado pelo mesmo e que fosse indicados para melhor compatibilidade com este servidor. No entanto, optei por não utilizar as apis proprietárias, de forma que… para portar isso para um Glassfish talvez algumas horas de trabalho em testes resolveria caso precisássemos.
Quanto ao portal WEB, começamos com JSP, Struts e Ajax (jQuery), na verdade não foi uma opção nossa… por uma questão de “tempo” e “urgência” tivemos que concluir e aceitar a versão 1.0 dessa forma mesmo, mas hoje já estamos com nossa versão 2.0 caminhando para release em algumas semanas conforme o definido inicialmente, que conta com Seam 2.1 + JSF (é claro) + RichFaces… ainda rodando no JBoss5, tudo acessando os nossos EJBs já existentes e que eram utilizados no portal 1.0.
Felizmente eu sou um dos donos da empresa e como assumi o desenvolvimento em Java sózinho praticamente tive liberdade de escolher o que quisesse como tecnologia. Já fazia mais de 1 ano que eu estava em processo de estudo de tecnologias por interesse pessoal apenas. Antes de tudo isso ocorrer eu ainda trabalhava na Motorola, fiquei lá por 1 ano e 3 meses mas infelizmente lá não tinha liberdade para experimentar essa tecnologia, mas nunca me deixei abater por isso e continuei a estudar o EJB e JBoss. Talvez eu tivesse entrado um pouco mais a fundo no Spring eu tivesse abandonado o EJB3, mas infelizmente ou felizmente eu tive mais clareza com o EJB do que com o Spring, que hoje vejo ser um excelente framework.
De qualquer forma a cada dia que passa estou mais familiarizado com o EJB e vai ser dificil mudar quando já tiver alcançado um know-how avançado do mesmo.
Não adianta vc ser mestre em EJB ou Spring se a empresa para quem vc trabalha não oferece condições de vc colocar em código todo o seu potencial produtivo e criativo em prática, enfim o problema é mais do que técnico.
A melhor tecnologia pode variar a depender de diversos fatores que só um bom gerente de TI consegue captar. É preciso avalidar muito bem a capacidade técnica do pessoal, inclusive seus gostos particulares e principalmente a curva de aprendizado de uma nova tecnologia. Agora no tocante ao Spring e EJB especificamente acho que encontra “mão-de-obra qualificada” para essas duas tencologias não deve ser nenhum grande problema, eliminando assim vantagem de uma sobre a outra neste aspecto.
Se vale a pena um conselho, procuremos sempre observar e reconhecer que nenhuma tecnologia é auto-suficiente. Sempre vai ter aquele momento, ou aquel probleminha chato daquela plataforma, etc… então é aí que o bom profissional tem destaque, ele precisa ser dinâmico e colocar em prática o “dom” da criatividade e da superação que Deus deu para resolver esses problemas, senão passamos a eternidade em busca do mundo perfeito, ou do ambiente perfeito se preferir
Abraço a todos, parabéns pelos pontos de vista e sejam felizes com suas escolhas, pois a escolha seja ela qual for já é fator positivo de sucesso.
PS: Felizmente pelos posts apresentados não tive arrependimento na minha escolha, o que já é ótimo.
Att.
Edson