Desenvolvimento WEB com JEE Wagner Borges
Quem sou eu? Bacharel em Sistemas de Informação pela FACID; Especialista em Sistemas de Informação para a Web; Mestrando da UFPE. Analista de Sistemas trabalhando atualmente na SEFAZ-PI; Entusiasta Java e desenvolve com as tecnologias presentes no JEE há mais de 4 anos; Ex-professor da Faculdade CET, UESPI, FACID; Mantém o blog: http://quebrandoparadigmas.wordpress.com/
Por que java? A linguagem Java é Orientada a Objetos A linguagem é totalmente portável A linguagem implementa desalocação automática de memória É a linguagem mais utilizada no mundo. Conseqüentemente o mercado necessita profissionais capacitados na linguagem. Wagner da Silva Borges
Java é orientada a Objeto Influenciada diretamente por C++ e Eiffel, a linguagem segue a grande tendência das linguagens de programação nas décadas de 80 e 90. Neste período, linguagens como Pascal, Ada, Lisp e Cobol ganharam versões Orientadas a Objetos. Wagner da Silva Borges
Java é totalmente portavel Wagner da Silva Borges
Java Implementa GC automática A linguagem implementa desalocação automática de memória (“coleta de lixo”), e não permite a desalocação manual. Produtividade do programador Testes Bugs Qualidade Wagner da Silva Borges
Por que desenvolver pra WEB? Aplicações web tornam-se mais importantes. Mais complexas. Ajax, validação (server vs. client), efeitos... Exigência mais elevada do cliente durante os anos. Interfaces ricas (fácil de usar) - RIA. Prazos cada vez mais curtos. Desenvolvimento considerado difícil. A bola da vez.. WAGNER DA SILVA BORGES
Desenvolvimento WEB(java) WAGNER DA SILVA BORGES
Sobre a Plataforma JEE É uma especificação Define um conjunto de padrões para o desenvolvimento de aplicações corporativas multicamadas. Especificação x Implementação Primeiros contatos com a plataforma: FACID Credishop
Sobre a Plataforma JEE Tecnologias que fazem parte da arquitetura: Java Server Pages (JSP); Servlets; Enterprise Java Beans (EJB); Java Server Faces Java Database Connectivity Java Persistente API (JPA) Context Dependency Injection (CDI) Java Name Directory Interface (JNDI) Remote Method Invocation (RMI) JavaMail API; Java Message API (JMS);
Sobre a Plataforma JEE Por onde começar? Servlet Servlet Container Java Server Pages – JSP Java Server Faces – JSF Facelets Enterprise Java Beans – EJB Java Persistent API - JPA
Modelo-1 (centrado em páginas) WAGNER DA SILVA BORGES
Modelo-2 WAGNER DA SILVA BORGES
Surgiram diversos frameworks baseados no modelo-2 Apache Struts WebWork (Struts2) Spring MVC Tapestry Velocity E muito outros.. E continuam surgindo mais WAGNER DA SILVA BORGES
O que é Java Server Faces Uma especificação Um framework baseado em componentes de interface com o usuário. Um framework dirigido a eventos. Padrão de mercado. RAD Um framework MVC. Como o Struts, JSF pode ser visto como um framework MVC para construir formulários HTML, validar os valores, chamar lógica de negócio e mostrar os resultados. Uma de suas melhores vantagens é a clara separação entre a visualização e regras de negócio (modelo). WAGNER DA SILVA BORGES
Por que usar JSF? É um padrão de mercado Presente na especificação JEE6.0 Suporte de Big Players Fácil de usar ! E produtivo também! Fornece separação de funções que envolvem a construção de aplicações Web Alta abstração para desenvolvimento de aplicação web Modelo de programação dirigido a eventos (oposto ao modelo HTTP request/response) Baixa curva de aprendizagem da equipe Vários pontos de extensão (converters, validators, listeners etc) Componentes já prontos! WAGNER DA SILVA BORGES
Por que usar JSF? IDEs e WYSIWYG (What you see is what you get) IntelliJ IDEA JBuilder IBM Rational App/Web Developer Red Hat Developer Studio (antigo Exadel Studio) Eclipse (MyEclipse, Europa etc) NetBeans (Visual WebPack) Sun Java Studio Creator Oracle JDeveloper JSFToolbox (Dreamweaver) WAGNER DA SILVA BORGES
Um framework baseado em componentes JSF é construído sob conceito de componentes. Os componentes são as bases para a construção da interface com o usuário. Existem componentes padrões equivalentes a quase todas as tags HTML e diversos componentes auxiliares. Existem diversas bibliotecas de componentes comerciais e open source. Os componentes são expressos através de tags em JSP e posteriormente transformados em HTML. WAGNER DA SILVA BORGES
Um framework baseado a eventos Possui um modelo para a manipulação de eventos. Componentes geram determinados eventos. Faz chamada a um método (ação no servidor). O estado da aplicação web muda devido ao evento disparado pelo usuário. Um evento pode ser um click em um botão, focar sobre um input ou mesmo alterar o valor de uma combobox. WAGNER DA SILVA BORGES
Por que usar JSF? Reusabilidade e estrutura de componentes extensível Acessibilidade (browsers, celulares, pda’s, ...) WAGNER DA SILVA BORGES
Por que usar JSF? Suporte cross-browser Grande atividade da comunidade em fóruns, listas de discussão, blogs, portais, revistas, livros etc. Integração com diversos frameworks Spring, Spring-Annotation, Spring-Webflow, Hibernate, EJB3, JPA, JBoss Seam, Acegi, JAAS, Struts, Struts2, Shale, Tiles, Facelets, Sitemesh, DWR, EXT, Crank, Beehive-Webflow, GWT, Portlets e muitos outros WAGNER DA SILVA BORGES
Por que usar JSF? WoodStock Backbase Net Advantage WebGalileoFa ces Grande variedade de componentes comerciais e open source disponíveis. Dynamic Faces WoodStock Crank Backbase Net Advantage Myfaces Tomahawk Simplica (ECruiser Suite) WebGalileoFa ces Myfaces Sandbox QuipuKit Blueprints Myfaces Tobago JBoss RichFaces RCFaces Myfaces Trinidad Jenia4Faces JBoss Ajax4jsf ZK Myfaces Orchestra G4JSF (GWT API) YUI4JSF (Yahoo API) ADF Faces Ext4JSF (Ext API) IceFaces WAGNER DA SILVA BORGES
Por que usar JSF? RichFaces WAGNER DA SILVA BORGES
Por que usar JSF? RichFaces(2) WAGNER DA SILVA BORGES
Por que usar JSF? RichFaces(3) WAGNER DA SILVA BORGES
Por que usar JSF? myFaces (1) WAGNER DA SILVA BORGES
Por que usar JSF? myFaces (2) WAGNER DA SILVA BORGES
Por que usar JSF? myFaces (3) WAGNER DA SILVA BORGES
Visão Geral da tecnologia Componentes Renderers Managed-beans Converters Validators Navegação (Navigation Rules) Eventos Ciclo de vida (Request Lifecycle) WAGNER DA SILVA BORGES
Ambiente de Desenvolvimento IDEs NetBeans 6.8 Eclipse Oracle Jdevelop ... NetBeans se mostra atualmente como a melhor IDE para o desenvolvimento Java. Banco de Dados MySQL PostgreSQL
JEE continua Crescendo Em constante crescimento. Vale a pena investir no aprendizado. A Oracle tem a plataforma como a principal tecnologia da adquirida na compra da SUN.
Links Importantes www.guj.com.br www.centraljsf.com.br www.javapassion.com http://blog.caelum.com.br http://www.java2s.com http://quebrandoparadigmas.wordpress.com www.portaljava.com.br Grupo do google javasf. http://www.rponte.com.br/