mais velozes e mais furiosos: desenvolvimento web 2.0 e ... · framework perfeito, do que realmente...

52
Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e JEE com JBoss Seam João Paulo Viragine Solutions Architect [email protected]

Upload: others

Post on 11-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e JEE com JBoss Seam

João Paulo Viragine

Solutions [email protected]

Page 2: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Motivação

• O JSF merece uma segunda chance?

• O EJB foi realmente aperfeiçoado?

• Vale a pena continuar com Java ou é melhor partir para Ruby on Rails?

Page 3: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Motivação (continuação)

• Com o JBoss Seam, podemos responder SIM a todas essas questões.

Page 4: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Qual framework devo utilizar?

• Em um mundo abarrotado de frameworks, como escolher um?

• Temos tantos frameworks disponíveis para a plataforma Java: alguns já consolidados, outros prometendo. A decisão torna-se agonizante!

• A decisão pelo melhor framework:

Page 5: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Qual framework devo utilizar? (continuação)

• Logo que tomamos a decisão, surge um novo framework prometendo “acabar” com os antecessores.

• Vemo-nos no “Paradoxo da Escolha”: Ficamos pensando que o melhor framework é aquele que

ainda não utilizamosu Como conseqüência, gastamos mais tempo procurando pelo

framework perfeito, do que realmente desenvolvendo aplicações

• Estamos sempre procurando por um framework que seja: Novo e ao mesmo tempo familiar Leve, mas poderoso

Page 6: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Qual framework devo utilizar? (continuação)

• Precisamos de um framework que integre a vasta gama de tecnologias/frameworks da plataforma Java, em um modelo unificado de desenvolvimento: O JBoss Seam é esse framework

Page 7: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

JSF e EJB 3.0

• Não serão abordadas as deficiência do JSF e do EJB 3.0 Existe material específico sobre esse tema

• Aproveitarei o tempo pra falar do JBoss Seam

Page 8: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

O que é o JBoss Seam?

• Definição da palavra: Seam = emenda

• Seam não é um acrônimo (SEAM): Stop Enterprise Application Masochism Software for Enterprise Application Masterpieces

• Informações gerais: Criado por Gavin King (criador do Hibernate) Versão 1.0 Beta 1 em 18/09/2005 Versão 1.0.0.GA lançada em 12/06/2006 Versão atual de produção: 2.0.2.GA em 15/05/2008 Comunidade extremamente ativa: www.seamframework.org

• Mais de 1.000 usuários registrados no primeiro mês• Atualmente, quase 3.000 usuários registrados

Page 9: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

O que é o JBoss Seam? (continuação)

• Definições: JBoss Seam - Next generation enterprise Java development

(do site do JBoss Seam) Um framework leve para Java EE 5.0 O JBoss Seam é um framework para a plataforma Java EE

que facilita o desenvolvimento de aplicações web e finalmente cumpre a promessa de uma arquitetura unificada de componentes

O JBoss Seam resolve os problemas da plataforma Java EE unindo conceitos inovadores a padrões existentes (JSF/JPA/EJB 3.0)

Page 10: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

O que é o JBoss Seam? (continuação)

• O JBoss Seam NÃO é apenas mais um “simples framework de integração” competindo em um mercado abarrotado de opções

• O JBoss Seam NÃO é uma reposta ao Spring framework: Resposta/alternativa ao Ruby on RailsR

• O JBoss Seam possui todos os “músculos/força” do Java EE, mas com uma aparência elegante

• “Serviços Enterprise” para as massas

Page 11: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Características e Benefícios

• Integração entre JSF e EJB 3.0 Integração não definida na especificação da plataforma

Java EE 5.0:• “Mundos separados”

O JBoss Seam faz todo o “trabalho sujo” de integração entre JSF e EJB 3.0, deixando o desenvolvedor concentrado no domínio de negócios

O JBoss Seam foi feito para o JSF:• Além do JSF, o JBoss Seam permite outras tecnologias

para a camada de apresentação: Wicket, Tapestry, GWT e Flex (GraniteDS e BlazeDS)

Page 12: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Características e Benefícios (continuação)

• Além de não depender do JSF para a camada de apresentação, o JBoss Seam funciona com ou sem EJB 3.0

• Tipos de componentes Seam: JavaBeans EJB 3.0:

• Stateless Session Beans• Stateful Session Beans• Entity Beans• Message-Driven Beans

• Virtualmente, qualquer classe Java pode se tornar um componente Seam @Name:

Page 13: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Características e Benefícios (continuação)

• Modelo unificado de componentes: Não há distinção entre componentes da camada de

apresentação e componentes da camada de negócios:• Ex: EntityBean trafega diretamente da camada de

apresentação para a camada de negócios/persistência e vice-versa:

Page 14: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Características e Benefícios (continuação)

• Modelo unificado de componentes (continuação): O modelo de componentes do JBoss Seam permite a

utilização direta de POJOs como “backing beans” para as páginas JSF:• Nada de cadastrar classes no faces-config.xml:

Elimina camadas/artefatos “desnecessários”: VO/DTO, DAO, Service Locator, OpenSessionInView, etc

VOCÊ monta a arquitetura da sua aplicação, define as camadas e como elas vão interagir

Page 15: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Características e Benefícios (continuação)

• Integração com AJAX Suporte “out of the box” para frameworks open source

baseados em JSF:• Adiciona suporte AJAX sem a necessidade de codificação

de JavaScript pelo desenvolvedor• ICEfaces• JBoss RichFaces:

Possui uma camada de JavaScript remoto:• Acesso aos componentes Seam direto do JavaScript:

Integração com: Dojo GWT

Page 16: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Características e Benefícios (continuação)

• Gerenciamento de estado e demarcação de contexto de maneira declarativa Ciclo de vida dos componentes é gerenciado pelo JBoss

Seam Sem chamadas explícitas ao HttpSession

• Uso exagerado do HttpSession = Memory leak• @Scope(value=ScopeType.SESSION):

• Estende os contextos definidos pela especificação de Servlets: request (event), page, session e application com dois novos contextos: Conversation Business process

Page 17: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Características e Benefícios (continuação)

• Conversation Conceito chave no JBoss Seam A conversação representa uma “unidade de trabalho” do

ponto de vista do usuário:• Geralmente associada a um Caso de Uso

Um usuário pode ter várias conversações ao mesmo tempo:• Normalmente em múltiplas janelas do browser

Facilita a construção de “wizards” Facilita o uso de AJAX Facilita ainda mais o uso do JPA:

• Evita a famigerada LIE (LazyInitializationException)

• Business process Contexto Stateful (Banco de Dados)

O usuário pode continuar a interação com o sistema mais tarde

Page 18: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Características e Benefícios (continuação)

• Integração com Business Process Management (BPM) Traz o BPM para o mundo das aplicações web Business Process Management (BPM) transparente através

do Java Business Process Management (jBPM)• Interação de longa duração (vários dias)

Pode envolver interação de vários usuários (associação de tarefas)

Criação e controle do processo baseados em anotações:

Page 19: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Características e Benefícios (continuação)

• O JBoss Seam suporta o conceito de Inversão de Controle (IoC) ou Injeção de Dependências (DI), mas vai além

• A injeção de dependências funciona bem no modelo de arquitetura stateless, mas, em uma arquitetura stateful, precisamos que a injeção de dependências seja bidirecional:

• Bijeção (Injeção + Ejeção): Estende o modelo de IoC:

• Dinâmica• Contextual• Bidirecional

A bijeção ocorre: • Antes e depois das chamadas aos métodos

Page 20: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Características e Benefícios (continuação)

• Injection: Componente é recuperado de um contexto (ou criado,

dependendo da configuração) e injetado em outro componente:

Outjection: Um componente “ejeta/coloca” outro componente em um

contexto:

Page 21: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Características e Benefícios (continuação)

• Navegação: A aplicação não conhece nada sobre a navegação, mas a

navegação conhece o estado da aplicação:• Métodos “retornam void” e não um “outcome” ou a

própria página de transição:

• A navegação conhece o estado da aplicação e toma decisões:

Page 22: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Características e Benefícios (continuação)

• Navegação (continuação) Stateful:

Fluxo de navegação entre páginas (pageflow) definido via jBPM Process Definition Language (jPDL)

Utilizado quando temos um fluxo de navegação “restrito”:

Page 23: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Características e Benefícios (continuação)

• Navegação (continuação) Stateful (continuação)

Editor gráfico para o diagrama do fluxo de páginas através do JBoss Developer Studio/JBoss Tools:

Page 24: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Características e Benefícios (continuação)

• Navegação (continuação) Stateless

Definida através da navegação do JSF (faces-config.xml) ou JBoss Seam (pages.xml)

O fluxo de navegação via pages.xml é muito mais poderoso que o fluxo de navegação do JSF: Acesso ao estado da aplicação, mecanismo de

eventos e etc Utilizado quando temos um fluxo de navegação

“livre”:

Page 25: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Características e Benefícios (continuação)

• Segurança: Abstrai a utilização do JAAS Integração com o JBoss Rules Pode ser aplicada a:

• Páginas (pages.xml):

• Fragmentos de páginas:

• Métodos:

• Entidades

Page 26: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Características e Benefícios (continuação)

• Gerenciamento de “workspace” e janelas do browser: O usuário pode utilizar várias abas Ou, o usuário pode utilizar várias conversações em uma

única aba Exemplo: HotelBooking

• Uso intensivo de anotações: Configuração por exceção (“no XML hell”) As anotações do JEE/EJB 3.0 são utilizadas e ampliadas com

as anotações do JBoss Seam Eliminação das declarações dos “JSF Managed Beans”,

“Converters” e “Validators” no faces-config.xml

Page 27: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Características e Benefícios (continuação)

• Validação Onde colocar as regras de validação?

• Na camada de apresentação? Sim, precisamos informar os erros de validação para o

usuário Mas, também temos de garantir as regras/restrições

na camada de persistência: Podemos esquecer de colocar a validação em uma

página Clientes que utilizem as classes de domínio podem

fazer um “bypass” da validação (Ex. Aplicação Desktop, WebServices)

“Bad design”: Regras de validação fazem parte do objeto de domínio (Persistent Domain Objects Pattern vs Anemic Domain Model)

• Melhor opção: colocar a validação nas classes de domínio e reaproveitá-las na camada de apresentação com a utilização de AJAX

Page 28: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Características e Benefícios (continuação)

• Validação (continuação) Hibernate Validator:

• Vários validadores pré-definidos: Max, Min, Length, Range, Size, Email, Future, Past, Pattern, Email, CreditCard, etc

• Fácil customização (Ex: @CPF, @StrongPassword)• Funciona com qualquer implementação de JPA:

Se utilizado com o Hibernate, gera a DDL com todas as restrições definidas

• Esforço de padronização da especificação Bean Validation (JSR 303)

• Validação na classe de domínio:

Page 29: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Características e Benefícios (continuação)

• Validação (continuação) – Integração Integração do JSF/Facelets com o Hibernate Validator:

• O JBoss Seam leva a validação definida no objeto de domínio para a camada de apresentação: Seam JSF Controls:

<s:validate/>, <s:validateAll>● Lê a anotação (meta-informação) definida e a utiliza

como validador no JSF <s:decorate/>● “Decora” o campo quando há algum erro de

validação

Page 30: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Características e Benefícios (continuação)

• Fácil utilização de testes unitários e de integração: Como são POJOs, os componentes Seam são facilmente

testáveis Podemos testar toda a aplicação, independente da

interação do usuário:• Simula todo o ciclo de vida do JSF

Frameworks de testes:• TestNG e JUnit

Os testes podem rodar dentro da própria IDE, o JBoss Seam faz o deploy dos componentes EJB via JBoss Embedded

Page 31: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Características e Benefícios (resumo)

• Um framework completo para o desenvolvimento web O JBoss Seam endereça e integra questões como:

• Persistência• Concorrência• Gerenciamento de estados• Segurança• Email • Geração de PDF e gráficos• Workflow• Web Services • Cache de fragmentos de páginas• Captcha• BPM• AJAX• etc

Page 32: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Seam Application Framework

• Um framework dentro do próprio framework

• Um conjunto de classes que facilitam a construção de componentes: CRUD (EntityHome) Pesquisas em entidades (EntityQuery) Controladores JSF (EntityController)

• Duas maneiras de criação: Via código Java:

Via declaração XML (components.xml):

Utilização:

Page 33: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

seam-gen

• Maneira simples de começar utilizar o JBoss Seam: Gera todo o projeto e as configurações necessárias:

• Nada de se preocupar com configurações, xml, bibliotecas, etc

• Gerador de aplicações no estilo Ruby on Rails: Linha de comando (ant):

• seam new-project, seam new-action, seam new-form, seam generate-entities, seam generate-ui, etc

Integrado com IDE (JBoss Developer Studio/JBoss Tools)

• CRUD: Baseado no Seam Application Framework Geração a partir de entidades existentes (top down) Ou, por engenharia reversa da base de dados (botton up):

• Identifica relacionamentos complexos Gera a interface gráfica coerente com o modelo de dados

Page 34: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

seam-gen (continuação)

• Aplicação gerada com suporte a: Templates Facelets, RichFaces, AJAX, CSS EJB 3.0/JPA Segurança Internacionalização Classes de teste com TestNG

• Gera projeto compatível com: ant Eclipse NetBeans

• Fácil modificação do código gerado: Código próximo ao criado manualmente

Page 35: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

JBoss Developer Studio (JBDS)/JBoss Tools

• Maneira ainda mais simples (que o seam-gen) de começar utilizar o JBoss Seam: “Front-end para o seam-gen” Toda criação do projeto Seam é baseada em “wizards”

• Baseado no Eclipse 3.3 (Europa) e WTP 2.0

• Ambiente de desenvolvimento totalmente integrado

• Suporte especial ao JBoss Seam: Editor gráfico para os arquivos de configuração “Content Assist” para Unified Expression Language (EL) e

Facelets:• Reconhece os componentes Seam

Page 36: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

JBDS/Tools (continuação)

• Editor visual de páginas

• Paleta de componentes (JSF, RichFaces/Ajax4jsf, JBoss Seam)

• Ferramentas para o Hibernate: Mostra a SQL gerada pela HQL/JPAQL

• Ferramentas para o JBoss jBPM (editor visual)

• Ferramentas para Spring

• Ferramentas para Struts

• Adaptador otimizado para JBoss Application Server (JBoss Server View)

Page 37: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

JBDS/Tools (continuação)

• Exclusivo no JBDS (subscrição): Download único:

• Não precisa fazer integração com o Eclipse Certifica tanto a ferramenta quanto os componentes do

“runtime” JBoss Enterprise Application Platform (JBoss EAP):

• Utilize em desenvolvimento a mesma versão que utilizará em produção

Red Hat Enterprise Linux (RHEL 5) Acesso ao RHN

Page 38: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

“Stack” completo para desenvolvimento

• Rotular o JBoss Seam como um “framework web” é “desmerecê-lo”: O JBoss Seam é muito mais que um framework web

tradicional Pode ser melhor descrito como um “stack” completo para

desenvolvimento

• O JBoss Seam inclui: O próprio framework Bibliotecas de terceiros Build script (baseado no ant) Gerador de projetos (seam-gen) Integração com IDEs Classes de testes O JBoss Embedded Integração com outras tecnologias Mais de 25 exemplos

Page 39: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Desvendando o mito do "vendor lock-in"

• Puro FUD (Medo, Incerteza e Dúvida)

• O JBoss Seam é open source (assim como todos os outros projetos JBoss) e é licenciado sobre LGPL

• Você NÃO é obrigado a utilizar o JBoss Application Server: O JBoss Seam é compativel com os maiores servidores de

aplicações do mercado, como: BEA Weblogic, IBM Websphere, Oracle OAS, SUN Glassfish

Roda inclusive no Apache Tomcat Se o suporte a EJB 3.0 não estiver disponível, podemos

utilizar o suporte do JBoss Seam para o gerenciamento de transações (JPA ou Hibernate):• Alternativamente, podemos executar o Tomcat com o

JBoss Embedded para um suporte a EJB 3.0

Page 40: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Desvendando o mito do "vendor lock-in"

• Escolhendo o JBoss Seam, NÃO estamos presos a uma tecnologia JBoss: Base/implementação de referência para a especificação de

Web Beans (JSR 299) Uma vez que a especificação de Web Beans (JSR 299)

estiver pronta, qualquer fornecedor pode prover sua própria implementação

• Devemos considerar a escolha do JBoss Seam baseados em méritos técnicos

Page 41: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Web Beans (JSR 299)

• O propósito da JSR 299 é unificar o modelo de componentes do JSF (managed bean component model) com o modelo de componentes do EJB 3.0, resultando em um modelo simplificado para o desenvolvimento de aplicações para web na plataforma Java EE 6.0: Profundamente influenciada pelo JBoss Seam e Google

Guice. (além de influências do Oracle ADF e Apache Shale)• Padronização do modelo de programação do JBoss Seam

na plataforma Java EE 6.0 Lider da especificação:

• Gavin King - Red Hat Middleware LLC Expert Group:

• Apache Software Foundation• Google Inc• Oracle• Red Hat Middleware LLC• Sun Microsystems Inc• Outras empresas e pessoas

Page 42: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Conclusão

• O JBoss Seam não é tímido ao resolver os problemas da plataforma Java EE, particularmente aqueles com o JSF

• O JBoss Seam promove o uso de arquiteturas simples, encorajando os desenvolvedores a removerem camadas desnecessárias e a utilizarem componentes contextuais

• O JBoss Seam elimina a complexidade e torna as já comprovadas tecnologias mais simples e acessíveis

Page 43: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Conclusão (continuação)

• Em um mundo inundado de frameworks, o JBoss Seam é um “unframework” Não força um modelo de programação:

• Desenvolvedor não precisa esquecer tudo o que sabe Em vez disso, o JBoss Seam unifica as APIs padrões da

plataforma Java, tornando-as mais acessíveis, funcionais e atrativas

Page 44: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Conclusão (continuação)

• E ainda provê novas funcionalidades na forma de extensões e integração de bibliotecas de terceiros, como:

• Bijeção• Conversations• BPM (jBPM)• Pageflows• Suporte integrado a ORM• RESTful URLs e “page actions”• JavaScript remoto• JBoss EL• iText PDF• JfreeChart• Validadores• Conversores

Page 45: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Conclusão (continuação)

• Gerenciamento de eventos (event-driven applications, observer/observable pattern)

• Interceptors• Spring• JBoss Rules• Groovy• Internacionalização (i18n) e Temas• File upload• Email• Cache de fragmentos de página• Captcha

Page 46: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Conclusão (continuação)

• Hot deploy• Gerenciamento de exceções (pages.xml)• Gerenciamento de workspace• Mecanismos de log e mensagens (@Logger,

@FacesMessages)• Debug (debug.seam)permite inspecionar qualquer

componente Seam diretamente do browser)• Integração com o JBoss Portal (JBoss Portlet Bridge - JSR

301)

Page 47: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Conclusão (continuação)

• O JBoss Seam salvou o Java EE

• Java EE antes/depois do JBoss Seam

Page 48: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Livros e Treinamentos

• Livros sobre o JBoss Seam: JBoss Seam: Simplicity and Power Beyond Java EE Seam Framework: Experience the Evolution of Java EE

(Outubro de 2008) Beginning JBoss Seam: From Novice to Professional Practical JBoss Seam Web 2.0 Projects JBoss SEAM (Alemão) Seam in Action (Agosto de 2008)

• Treinamento Oficial de JBoss Seam: JB170 – Introduction to JBoss Seam:

• 24 horas

Page 49: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Palavras Finais

• “Seam is the most exciting technology that has landed in Java's turf since its inception and the reasons why you should make Seam your framework of choice” - Dan Allen

• O sacrifício não é um pré-requisito para criar aplicações de sucesso

• Pare de pesquisar! Comece a desenvolver sua aplicação!

Page 50: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Exemplo (@Name, @In, CRUD)

Page 51: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Exemplo (@DataModel, @Factory)

Page 52: Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e ... · framework perfeito, do que realmente desenvolvendo aplicações ... que facilita o desenvolvimento de aplicações web

Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e JEE com JBoss Seam

João Paulo Viragine

Solutions [email protected]