Vinícius Rodrigues Nunes

Slides:



Advertisements
Apresentações semelhantes
JBanana.
Advertisements

UNIPAC – ARAGUARI CAMPUS – IX PROF. EVERTON HIPÓLITO DE FREITAS
Introdução a JSF Marco Antonio.
Framework para desenvolvimento web
Raphael Gatti Thomás Bryan
Tipos de Sites Web gerados pelo VS2005
Criar uma Aplicação Web em ASP.NET v Tipos de Sites Web gerados pelo VS2005 File-system Web sites Ficheiros armazenados num directório local É utilizado.
Laboratório de Informática Introdução à Linguagem HTML
Gerenciamento do escopo do projeto
Marfin sobre o Documentador;. Marfin sobre o Documentador;
Java Server Pages (JSPs)
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
April 05 Prof. Ismael H. F. Santos - 1 Modulo II CheckStyle Professor Ismael H F Santos –
April 05 Prof. Ismael H. F. Santos - 1 Módulo VI – J ava Standard Template Library (JSTL) Prof. Ismael H F Santos.
April 05 Prof. Ismael H. F. Santos - 1 Módulo II XML Processing: XSLT, SAX e DOM Prof. Ismael H F Santos.
Engenharia de Requisitos
O processo de coletar os requisitos (escopo do cliente)
ZK RIA com ZK Framework.
Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)
Aplicações para Web.
WebWork e JSP Keven andrade
Geração Dinâmica de Páginas com JSP Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação.
Ferramentas e Tecnologias III
Prof. Marco Aurelio N. Esteves
Classes e objetos Modelagem
Tecnologias para Internet
EL e JSTL Prof. Danton Cavalcanti Franco Junior
Desenvolvimento de Projetos e Aplicações Web
Protocolo HTTP e HTML Prof. Danton Cavalcanti Franco Junior
Aplicativos Web Com Orientação a Objetos
GERENCIAMENTO DE AQUISIÇÕES PMBOK
Engenharia de Requisitos
José Roberto Blaschek Gerência do Escopo José Roberto Blaschek.
PÁginas Dinâmicas Programação Web.
Aluno: Mário Monteiro Orientador: Sérgio Soares 1.
Introdução ao Desenvolvimento Web
Capítulo 2 Java Servlets.
Selenium Componentes: Fábio Gomes Claver Pari Eni Conde
Arquitecturas de extensão do servidor HTTP CGI | ISAPI : ASP, ASP.NET Programação na Internet Secção de Programação ISEL-DEETC-LEIC Luis Falcão -
Web Services Uninorte Semana de Tecnologia da Informação
Introdução ao JSF Daniel Bruno
Módulo: Gerenciamento de Incidentes e
1.
Conceitos de J2EE para a WEB
Aula 4: Áreas de Conhecimento em Gerenciamento de Projeto, Escopo
1 2 Observa ilustração. Cria um texto. Observa ilustração.
PESQUISADOR: CASSIANO DALCIN / 2010 Trabalho de Conclusão de Curso MINISTÉRIO DA EDUCAÇÃO Universidade Tecnológica Federal do Paraná Campus Medianeira.
Adriano Melo Introdução ao ASP.NET Adriano Melo
Prof. Alexandre Monteiro Recife
Professor: Márcio Amador
Produtividade com SuperCRUD e Software Template
Processo de Aquisição Adilson de Almeida Cezar Meriguetti
Aula 2 – Primeiros Passos com a arquitetura Web Servidor Instituto Metodista Izabela Hendrix Curso de Tecnologia em Análise e Desenvolvimento de Sistemas.
Arquitetura das JSP - Aula 2
JSP JavaServer Pages Marco Antonio, Arquiteto de Software – TJDF Dezembro/2005.
Introdução a JEE Marco A. S. Reis Arquiteto de Software Abril/2011.
Padrões de Interação com o Usuário
Introdução ao ASP.Net 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
JavaServer Faces Rapid Web Application Development em Java Ricardo Cavalcanti Jobson Ronan
JSP – Mais Recursos Jobson Ronan
ZK RIA com ZK Framework.
Alunos: Diogo do Nascimento Leandro Luiz Mendes
Sistema Almirante Gabriel Junji Ito Giuliano Diego Barbarra.
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Servidores.
Aplicativos para Internet Prof. Wolley W. Silva
Universidade Federal de Sergipe Departamento de Sistemas de Informação Bruno Cruz Jessica Rodrigo Aragão – ASP.NET MVC 3.
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
1 AJAX em aplicações Rails Lívia Monnerat Castro
1 Arquitetura e JSF Gustavo Wagner
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Transcrição da apresentação:

Vinícius Rodrigues Nunes Aguardando o JSF 2.0 Vinícius Rodrigues Nunes

Agenda O que é JSF hoje? Por que JSF deu certo? O que virá de novo na versão 2? O que já pode ser feito? Onde encontrar mais informações? Como contribuir?

Agenda O que é JSF hoje? Por que JSF deu certo? O que virá de novo na versão 2? O que já pode ser feito? Onde encontrar mais informações? Como contribuir?

O que é o JSF hoje? características Java Server Faces: framework baseado em componentes não em tags simplifica o desenvolvimento de aplicações web considera as ferramentas de desenvolvimento se adequa a diversos tipos de desenvolvedores utiliza boas práticas e padrões de projeto já estabelecidos preparado para multi-renderização Falando javanês: especificação da comunidade Java com 7 anos de idade dependente da API de Servlets parte da especificação “guarda-chuva” EE 5 (versão 1.0) Comentar diferença entre frameworks baseados em componentes e frameworks baseados em ações Comentar rapidamente que padrões de projeto são usados no JSF e que já existiam em outros frameworks de mercado Comentar a existência das versões 1.0, 1.1, 1.2 e agora 2.0 Comentar porque simplifica o desenvolvimento de aplicações web

O que é o JSF hoje? Versões 1.0 e 1.1 JSR127 – 2001 a 2004 Liderada por Ed Burns e Craig R. McClanahan Especialistas: Sun, Oracle, IBM, BEA, outros Principais recursos ciclo de vida em fases data, method e component binding (JSF Expression Language) propriedades e beans gerenciados (ManagedBean, managed properties) árvores de componentes biblioteca de componentes básicos com renderização HTML criação de componentes, renderizadores, conversores e validadores mais fácil de entender e estender padronização do desenvolvimento web em torno de uma proposta unificada http://www.jcp.org/en/jsr/detail?id=127

O que é o JSF hoje? Versão 1.2 JSR 252 - 2004 a 2006, 2008 MDR Liderada por Ed Burns e Roger Kitain Especialistas: Felipe Leme, Matt Raible, Hookom, ILOG, ... Principais recursos Unified Expression Language (MethodExpression, ValueExpression) Solução do convívio tags JSF e tags HTML (Content Interweaving) Mensagens de validação e conversão direto no componente Melhoramentos na inclusão dinâmica Integração com JSTL Melhoramentos para portlets e client state Tag f:setPropertyActionListener http://www.jcp.org/en/jsr/detail?id=252

O que é o JSF hoje? Versão 2.0 JSR314 - 2007 a 2009? Liderada por Ed Burns e Roger Kitain Especialistas: Apache, Ericsson, IBM, Jason Lee, Vinícius Senger, SpringSource, BEA Systems, Exadel, IceSoft, Oracle, Red Hat, Sun, ILOG, Kito Mann, SAP, ... Principais Recursos vários, apresentados nas próximas páginas http://www.jcp.org/en/jsr/detail?id=314

Agenda O que é JSF hoje? Por que JSF deu certo? O que virá de novo na versão 2? O que já pode ser feito? Onde encontrar mais informações? Como contribuir?

Por que JSF deu certo? motivos partiu de uma infra-estrutura bem sucedida a fim de resolver novas necessidades incorpora soluções comprovadas a cada nova versão busca a participação da comunidade principais servidores de aplicação do mercado com suporte a implementação de referência escrita pela Sun principais ferramentas de desenvolvimento possuem suporte respeitável aos recursos do JSF preocupação com as novas tendências e soluções entregas antecipadas de código para aculturamento e feedback objetivos da especificação de encontro atendem às expectativas dos ouvidos

Por que JSF deu certo? motivos API amadurecida para extensões. Possível: usar outras linguagens de descrição de página além de JSP e XHTML definir outras linguagens para definição das regras de navegação acrescentar capacidades comuns a componentes de comando criar conversores e validadores além do já oferecidos criar outras formas de renderização além do HTML e tecnologias associadas customizar o ciclo de vida de processamento das requisições criar componentes de entrada, saída, seleção, comando, ... além dos já oferecidos criar eventos customizados além dos vários já disponíveis manter características e recursos importantes dos componentes com a implementação de interfaces comportamentais resolver expressões EL particulares além daquelas já resolvidas

Por que JSF deu certo? motivos Dezenas de bibliotecas de componentes que ampliam a lista padrão e oferecem suporte a AJAX sem escrita de javascript ou escrita mínima JBoss Richfaces Apache MyFaces, Trinidad e Tobago IceSoft IceFaces Oracle ADF Faces Sun Woodstock, JSFTemplating e muito mais http://www.jsfmatrix.net/

Agenda O que é JSF hoje? Por que JSF deu certo? O que virá de novo na versão 2? O que já pode ser feito? Onde encontrar mais informações? Como contribuir?

Demonstração projeto exemplo Ferramenta de apoio ao gerenciamento com Scrum Protótipo de interface de usuário

pode e deve mudar pra melhor até a Final Release .. novo na versão 2.0 ? objetivos Principais Objetivos componentes customizados mais fáceis de desenvolver suporte a AJAX linguagem de descrição de páginas (PDL) mínimo de configuração melhor compatibilidade entre bibliotecas de diferentes fornecedores Outros objetivos reescrita do gerenciamento de estado páginas guardáveis em favoritos tempo de expedição minimizado processamento e atualização parcial da árvore de componentes novos escopos melhoramento das mensagens de erro Early Draft Review 2: pode e deve mudar pra melhor até a Final Release

.. novo na versão 2.0 ? ProjectStage Características configuração inspirada no RAILS_ENV opções: Production, Development, UnitTest, SystemTest, Extension opção padrão: Production configurada como parâmetro de contexto no web.xml consultada a partir de Application#getProjectState valores que não sejam da enumeração são tratados como extensão alternativa de consulta via JNDI Principal Benefício mudança de comportamento da aplicação de acordo com o valor definido exemplos: ausência de componente de mensagens, ausência de action em componentes de comando, biblioteca não encontrada, ...

.. novo na versão 2.0 ? ProjectStage <context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param> Várias facilidades são oferecidas ao desenvolvedor. O desenvolvedor também pode tomar decisões de acordo com este parâmetro.

.. novo na versão 2.0 ? Escopo view Características inspirado em soluções como t:saveState do Tomahawk, escopo Page do Seam e a4j:keepAlive do Richfaces não é tão poderoso como o conceito de conversação do Seam gera eventos de criação do mapa de atributos e zeramento do mesmo deve ser usado em managed beans serializados atributos estão disponíveis enquanto o usuário não navega para outra página acessível via EL Principal Benefício mais uma opção de escopo para beans gerenciados minimiza a necessidade do escopo de sessão

.. novo na versão 2.0 ? Escopo view web.xml ... <managed-bean> <managed-bean-name>dashboardMB</managed-bean-name> <managed-bean-class>jsf.mb.DashboardMB</managed-bean-class> <managed-bean-scope>view</managed-bean-scope> </managed-bean> dashboardMB.java @ManagedBean(name="dashboard2MB", scope="view") public class DashboardMB implements Serializable { }

.. novo na versão 2.0 ? Component, FacesContext Atributos de componente Características: acessíveis via EL (#{component}) e via método UIComponent#getCurrentComponent Principal Benefício: criação de componentes de composição e identificação do componente em processamento durante o ciclo de vida da requisição. Atributos do FacesContext Características: métodos de busca e definição similares aos de outros escopos Principal Benefício: melhora o desempenho ao minimizar a geração de eventos de request enviados ao assinar ServletRequestListener

.. novo na versão 2.0 ? PDL Características confirma a competência da classe ViewHandler ao permitir mais uma linguagem de declaração Facelets não precisa mais ser configurado no faces-config.xml nem no web.xml Principal Benefício encoraja o uso de outras PDL, ou seja, outros modos de se criar visões e, incorpora a PDL mais aceita no mercado: XHTML com Facelets

.. novo na versão 2.0 ? PDL dashboard.xhtml <?xml version="1.0" encoding="ISO-8859-1" ?> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f=http://java.sun.com/jsf/core> ... </html>

.. novo na versão 2.0 ? Eventos Características sistema de eventos renovado possível assinar eventos em componentes possível assinar eventos na aplicação métodos #subscribeToEvent e #unsubscribeFromEvent Alguns eventos AfterAddToParentEvent – durante a criação da árvore de componentes BeforeRenderEvent – durante a renderização da árvore de componentes ViewMapCreatedEvent e ViewMapDestroyedEvent – eventos do novo escopo view Principal Benefício mais facilidade para acrescentar recursos aos componentes e renderizadores sem a necessidade customizações

.. novo na versão 2.0 ? recursos Características recurso artefato que o componente utiliza para se renderiza no user-agent publicados por convenção na pasta resources no webroot ou pasta meta-inf /resources de um jar suporte a localização, biblioteca e respectivas versões, versões do componente possível atualizar a versão do componente sem realizar redeploy da aplicação possível registrar dependência de recursos via anotação: @ResourceDependency e @ResourceDependencies possível recuperar recurso via EL ou ExternalContext#getResource ou ClassLoader#getResource possível realocar recursos no cabeçalho, corpo ou formulário (atributo target) novas tags: h:head, h:body, h:outputScript, h:outputStyle Principal Benefício simplificação do uso de recursos em páginas e componentes

.. novo na versão 2.0 ? recursos formato do identificador resourceIdentifier = [localePrefix/][libraryName/][libraryVersion/]resourceName[/resourceVersion] dashboard.xhtml ... <h:head> <title>#{dashboard2MB.name}</title> <h:outputStylesheet library="css/1_1" name="app.css"/> <h:outputScript library="javax.faces" name="ajax.js" target="head"/> </h:head> <h:body> ... <h:form id="frmDashboard"> <img src="#{resource['images/tdc2008.jpg']}" width="50px"/> ...

.. novo na versão 2.0 ? Suporte a AJAX Características inspirado no DynaFaces, Weblets, jMaki, Shale Remoting entre outros biblioteca ajax.js tags equivalentes a jsfExt:ajaxZone, a4j:support, ... Principal Benefício uso de AJAX com pouca ou nenhuma escrita de javascript nativo na implementação de referência

.. novo na versão 2.0 ? Suporte a AJAX Exemplo: Iniciar Dashboard <h:commandButton id=“btnIniciar" value=“Iniciar" onclick="javax.faces.Ajax.ajaxRequest(this, event, {execute: this.id, render: ‘otStatus'}); return false;"/> Exemplo: Adicionar Impedimento    <h:inputText value="#{dashboardMB.newImpediment}"     title=“New Impediment"        id=“itNewImpediment"        required="true" actionListener="#{dashboardMB.addImp}"        onkeyup="javax.faces.Ajax.ajaxRequest(this, event, {execute: ‘itNewImpediment', render: ‘impedimentList'});"/>

.. novo na versão 2.0 ? EzComp Características localizados, por convenção, na pasta de recursos baseados na proposta do Facelets turbinados com a biblioteca composite publicam eventos e valores para interessados reconhecem conteúdo do corpo, facets e tipo do atributo inspirado no Tag Files convenção para reconhecimento de arquivo I18N Principal Benefício criação de componentes de composição sem criação de classes ou necessidade de configuração

.. novo na versão 2.0 ? EzComp resources/components/titulo.xhtml <?xml version="1.0" encoding="ISO-8859-1" ?> ... xmlns:ui=http://java.sun.com/jsf/facelets xmlns:composite=http://java.sun.com/jsf/composite > <ui:composition> <composite:interface> </composite:interface> <composite:implementation> </composite:implementation>

.. novo na versão 2.0 ? EzComp dashboard.xhtml <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f=http://java.sun.com/jsf/core xmlns:appez="http://java.sun.com/jsf/composite/components”> ... <appez:titulo id="tituloDashboard" textoDoTitulo="#{dashboard2MB.name}"> <h:panelGroup> <h:outputLabel value="Objetivo:" for="" style="font-weight: bold" /> <h:outputText value="#{dashboardMB.goals}" /> </h:panelGroup> </appez:titulo>

Agenda O que é JSF hoje? Por que JSF deu certo? O que virá de novo na versão 2? O que já pode ser feito? Onde encontrar mais informações? Como contribuir?

O que já pode ser feito? Adoção uso de uma das bibliotecas de componente com suporte a AJAX e a temas: Richfaces Woodstock IceFaces ADF Faces MyFaces Trinidad / Tobago uso de Facelets para criação de templates e composite components uso de uma ferramenta de desenvolvimento com bom suporte a JSF testes automatizados com JUnit , HttpUnit e JSFUnit uso minimizado do escopo de sessão aprendizado e uso JBoss Seam aprendizado aprendizado e uso Spring Web

O que já pode ser feito? Dicas usar mais de um faces-config.xml na mesma aplicação criar páginas compostas registrar as categorias de logging da RI, Facelets e biblioteca de componentes utilizar jQuery para pequenas manipulações cliente usar validadores clientes das bibliotecas usar bibliotecas JS prontas para máscaras e validações sintáticas turbinar processamento parcial enviando poucos valores e atualizando poucos componentes preferir tags do Facelets às do JSTL criar componentes “completos” apenas se a customização de um dos seguintes não é suficiente: conversor, validador e renderizador

O que já pode ser feito? Dicas cuidar com f:verbatim e com o atributo rendered. Preferir h:panelGroup, a4j:outputPanel ou equivalente usar atributos primitivos em Managed Bean como wrappers, facilitando a manipulação de valores nulos customizar conversão de data para o formato e fuso horário do usuário, se aplicável usar anotações @PostConstruct e @PreDestroy usar <f:view beforePhase= /> para inicializações com postback e TagHandler do Facelets sem postback customizar mensagens de conversão, validação entre outras

Agenda O que é JSF hoje? Por que JSF deu certo? O que virá de novo na versão 2? O que já pode ser feito? Onde encontrar mais informações? Como contribuir?

Onde encontrar mais informações? Minicursos Globalcode MC 17 - Introdução ao Java Server Faces MC 31 - Desenvolvendo um aplicativo completo com JSF, Facelets, ... MC 46 - JBoss Seam e Spring MC 45 - JSF e Facelets http://www.globalcode.com.br/site/gratuitos/miniCursos.seam Livros JSF in Action - ISBN: 1932394125 Core JSF – ISBN: 131463055 The Complete Reference JSF – ISBN: 0072262400

Onde encontrar mais informações? Blogs, sítios e materiais online Mojarra team: Ed Burns http://weblogs.java.net/blog/edburns/ Jason Lee http://blogs.steeplesoft.com/ Ryan Lubke http://blogs.sun.com/rlubke/ Roger Kitain http://weblogs.java.net/blog/rogerk/ Jacob Hookom http://weblogs.java.net/blog/jhook/ Mais: Venkat Sadasivam, Jim Driscoll, Ken Paulsen, Max Katz, Rafael Ponte JSF Central JSF Tutorials Java Server Faces Internacional Group Sítios das bibliotecas de componente Revistas Java Magazine Mundo Java

Agenda O que é JSF hoje? Por que JSF deu certo? O que virá de novo na versão 2? O que já pode ser feito? Onde encontrar mais informações? Como contribuir?

criada pela comunidade e Como contribuir? motivação JSF é uma das habilidades técnicas mais pedidas hoje no mundo Java JSF tem workaround para várias necessidades ainda não disponíveis nas implementações de referências JSF é suportado pelas ferramentas de desenvolvimento e apoiado pelos principais players da área: Oracle, Sun, IBM, ILog,SAP, ... JSF integra com linguagens de script Portanto é uma alternativa atualizada: criada pela comunidade e para a comunidade

Como contribuir? várias formas Pode ser ainda melhor ! Estamos todos convidados a: acessar regularmente o site da especificação JSR 314 ler os blogs dos membros da equipe do Sun Mojarra JSF RI usar as versões draft em seus projetos de estudo ler as mudanças na especificação identificar bugs sugerir melhorias e ajustes jsr-314-comments@jcp.org

Perguntas e Respostas ?

Como configurar ? mudanças http://server.dzone.com/blogs/arungupta/2008/10/15/totd-48-converting-a-jsf-12-ap faces-config.xml <faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" version="2.0"> JARs alterados: jsf-api.jar e jsf-ri.jar JARs mantidos: jsf-facelets.jar, jstl.jar, standard.jar, commons-beansutils.jar, commons-digester.jar, commons-collections.jar, commons-logging.jar

Quem é o palestrante ? Vinícius Rodrigues Nunes (vinny@voffice.com.br) Instrutor dos cursos de Java da VOffice a 3 anos Técnico em Processamento de Dados, Bacharelado em Ciências da Computação e Pós-Graduação em Engenharia de Software OO Trabalha com desenvolvimento de software web com Java desde 1999 Certificações: SCJP e SCWCD Preferências : Torcedor das equipes de basquete de Joinville e do Flamengo, fã de Lost e Heroes, usuário de Windows Vista e Eclipse Afeições técnicas: uso diário idéias simples mais muito úteis como RSS , classificação por Tags, podcasts e videocasts

Feedback Quem já usa JSF 1.x em produção? Quem usa Richfaces, IceFaces, MyFaces, ADF, Woodstock, RI pura, outro? Quem já usa Facelets em produção? Quem pretende usar JSF nos próximos 3 meses? Quem já baixou a EDR 2 e executou os exemplos ? Quem já leu a especificação JSF 2 ? Quem acompanha algum dos blogs JSF 2 citados?