30
JSF + JBOSS SEAM PRODUTIVIDADE NA WEB João Bosco Oliveira Monteiro [email protected]

JSF_JbossSeam

Embed Size (px)

Citation preview

JSF + JBOSS SEAM PRODUTIVIDADE NA WEB

João Bosco Oliveira Monteiro [email protected]

SOBRE O PALESTRANTE

Graduado em Engenharia de Computação e pós-

graduando em Engenharia de Software

Trabalha com Java desde 2001

Atualmente lidera projetos de desenvolvimento

de software no Tribunal de Justiça de MS

AGENDA

Histórico do desenvolvimento web com Java

Um pouco de JSF

Introdução ao JBoss Seam

Contextos e Componentes

Visão geral de outras funcionalidades

Seam-gen: demonstração

HISTÓRICO

Java Servlets JavaServer Pages Boom de frameworks JavaServer Faces Frameworks “de 2ª. Geração” JBoss Seam Web Beans ... futuro!

SERVLETS

JAVASERVER PAGES

JAVASERVER FACES

Arquitetura MVC

Conjunto pré-fabricado de componente UI

Modelo de programação baseado em eventos

Modelo de componentes permite fácil integração com IDE’s (ex. auto-completar, drag-and-drop, editores WYSIWYG)

Conversão “automática” de dados

Validação e tratamento de erros

JAVASERVER FACES – CICLO DE VIDA Restore View – reconstrução da árvore de

componetes Apply request values – conversão de valores Process validations – advinha? Update model values – valores dos componentes

são atribuídos às propriedades do backing bean Invoke application – tratamento de eventos,

invocação de métodos e avaliação da navegação Render response – atualização dos valores dos

componentes e renderização da resposta

JAVASERVER FACES

JAVASERVER FACES

JAVASERVER FACES Ligação entre um componente de tela e um

método (ação)

JAVASERVER FACES faces-config.xml

JSF - PRINCIPAIS PROBLEMAS

POST! URL’s não amigáveis Submissão duplicada de formulários

Primeira requisição é subutilizada Back button Construção de componentes exige muito esforço

Facelets!

Falta de mecanismo de templating Facelets!

JSF - PRINCIPAIS PROBLEMAS

Escopo Request: exige codificação extra para

manter estado

Escopo Session:desperdício de memória

Não suporta nativamente multi janelas

LazyInitializationException

NonUniqueObjectException

JBOSS SEAM - O QUE É

JSF

EJB

JPA

Utilitários

AJAXSEAM

Outras Frameworks

jBPM

JBOSS SEAM - INTRODUÇÃO

Framework para Enterprise Java

Modelo de componentes unificado

Integração JSF (apresentação) + EJB3 (lógica de negócio e persistência)

Integração com AJAX e jBPM

Preferência por anotações

Facilidade em realizar testes de integração

JBOSS SEAM - COMPONENTES EJB 3.0 stateless session beans

EJB 3.0 stateful session beans

EJB 3.0 entity beans

EJB 3.0 message-driven bean

JavaBeans

JBOSS SEAM - COMPONENTES Definindo um componente no Seam

Registrando um managed bean em JSF

JBOSS SEAM - CONTEXTOS

Event

Page

Conversation

Session

Business Process

Application

JBOSS SEAM - CONTEXTOS

Application

Business Process

Session

Conversation

Page

Event

JBOSS SEAM - BIJECTION Complementa a Injeção de Dependências Contextual Bidirecional

JBOSS SEAM - MELHORIAS E FACILIDADES Logging

JBOSS SEAM - MELHORIAS E FACILIDADES Eventos

JBOSS SEAM - MELHORIAS E FACILIDADES

@Converter @Validator @Asynchronous <s:convertEntity> <s:convertEnum> <s:selectItems> <s:validateAll> <s:link>

JBOSS SEAM - MELHORIAS E FACILIDADES Seam Text Seam PDF Seam Mail Seam Remoting Seam Security Integração com jBPM Integração Wicket * Integração GWT Integração com Flex *

* Em andamento

SEAM-GEN DEMONSTRAÇÃO

DISCUSSÃO

OBRIGADO!

João Bosco O. [email protected]

REFERÊNCIAS

Seam Reference Guide www.seamframework.org

Seam in Action, Dan Allen, Manning, 2008.

Practical Jboss Seam Project, Jim Farley, Apress, 2007

JavaServer Faces in Action, Kito D. Mann, Manning, 2004