SlideShare uma empresa Scribd logo
Apache Wicket
Nosso contexto Há uma enorme demanda por sistemas web Os ciclos de desenvolvimento ficaram curtos As entregas são frequentes
Por que Wicket? Wicket é um framework web permite o desenvolvimento  rápido  e  indolor  de aplicativos web
O sonho de todo programador programador é
Criar um aplicativo de sucesso
Para ficar bilionário como
Bill Gates
Influente como…
Steve Jobs
Reconhecido como…
Linus Torvald
E viver sossegado como…
Um bebê
Wicket pode fazer isso tudo?
NÃO!!!!
Suas idéias é que trazem o sucesso!
Wicket pode ajudá-lo  a torná-las reais
Mais um framework web?
Sobre os “outros” frameworks
Um pouco de história A maior parte dos frameworks web Java são baseados num modelo MVC chamado de “Modelo 2”.
O Modelo 2
Deficiências do modelo 2 Abstração  rasa  da natureza stateless do procotolo HTTP. Administração manual do estado da IU Excesso de artefatos Difícil aprendizado Baixa reutilização de código Impossibilidade de criar IU complexas
Arquitetura Típica do Modelo 2
Conseqüências Induz a criação de código procedural. Excesso de plumbing code Progresso lento Alto custo
Resultado final Processo propenso à erros  Dificuldade na evolução e manutenção Estresse Desespero Apátia
Foto do resultado final
Programador em fim de projeto
Você merece mais que isso!!!
Lembra do sonho?
Wicket pode te ajudar.
Como ele difere dos demais?
Uma palavra:
Simplicidade
De que forma?
Utilizando componentes
Sobre orientação à componentes A aplicação é construida a partir de componentes reutilizáveis Componentes possuem estado Componentes possuem comportamento
Componentes combinados criam soluções
História Criado por um Jonathan Locke, ex-membro da equipe de engenharia do Swing UI da Sun Versão 1.0 lançada em 2004 Em 2007 torna-se um projeto da Apache Software Foundation
Influências Echo Swing API
Vantagens Código-aberto Simples Orientado a componentes Separação de responsabilidades Gerenciamento transparente do estado Não requer configurações em XML Integração a outros frameworks (Spring, Hibernate)
Como Wicket faz tudo isso?
+ <HTML>
Na prática
Na prática public class  OlaMundo  extends  WebPage { public  OlaMundo() { add( new  Label(“ mensagem ”, “ Ola, mundo!!! ”)); } } <html> <body> <h1 wicked:id=“ message ”>TEXTO A SER SUBSTITUIDO </h1> </body> </html> <html> <body> <h1 wicked:id=“ message ”> Ola, mundo!!! </h1> </body> </html> + =
Conceitos Componente Modelos Templates Application Session
Componente Wicket Bloco fundamental da aplicação Responsável sua própria apresentação Responde eventos Componentes podem ser aninhados numa árvore Mantém os dados num objeto modelo Existem mais de 220 componentes no Wicket Core e no Wicket Extensions
Componentes Wicket
Componentes Wicket Cada instância possui um ID único O template deve conter um markup equivalente identificado pelo atributo wicket:id Java new  Label (“ telefone ”,”011-222-1111”); HTML <span  wicket:id =“ telefone” > XXX </span>
Componentes Wicket Podem estar associados ou não a um template HTML próprio.
Componentes Wicket Componentes com templates associados Page, Panel, Border, Fragment A classe e template do componente devem estar no mesmo pacote e ter o mesmo nome Exemplo: src/com/acme/comp/ Slider.java src/com/acme/comp/ Slider.html
Componentes Wicket Componentes sem templates associados Label, Button, DropDown, Link, Form e outros Seus templates encontram-se junto a uma superclasse
Conceitos Componente Modelos Templates Application Session
Modelos Implementam a interface  Imodel Encapsulam os objetos de domínio Ligam os componentes  aos objetos do domínio
Modelos Exemplos: add (new  Label (“ nome ”, “ João ”)); add (new  Label (“ nome ”, new  PropertyModel ( pessoa , “ nome ”))); <span  wicket:id =“ nome” > XYZ </span>
Conceitos Componente Modelos Templates Application Session
Templates Escritos em HTML Os webdesigner pode trabalhar com suas ferramentas favoritas As ligações com os componentes são feitas por meio do atributo wicket:id
Conceitos Componente Modelos Templates Application Session
Application Ponto de entrada da aplicação web Iniciação Configuração Configurada no web.xml Define página home
Conceitos Componente Modelos Templates Application Session
Session Mantém o estado da aplicação para um usuário Podem ser personalizadas Com sessões personalizadas pode-se conhecer o que pode ser armazenado nelas Sessões personalizadas são type-safe
Criando aplicações com Wicket
Criando aplicações com Wicket A forma mais rápida é utilizando um archetype maven $ mvn archetype:create  -DarchetypeGroupId=org.apache.wicket  -DarchetypeArtifactId=wicket-archetype-quickstart  -DarchetypeVersion=1.3.4  -DgroupId= com.acme -DartifactId= agenda $ cd  agenda $ mvn eclipse:eclipse
Criando aplicações com Wicket <html> <head> <title> Agenda </title> </head> <body> <h1>Endereços</h1> <table> <tr> <td><span> Adrián Dantas </span></td> <td><span> 880-2600 </span></td> <td><span> Analista </span></td> </tr> </table> </body> </html>
Criando aplicações com Wicket <html> <head> <title> Agenda </title> </head> <body> <h1>Endereços</h1> <table> <tr  wicket:id=&quot;registros&quot; > <td><span> Adrián Dantas </span></td> <td><span> 880-2600 </span></td> <td><span> Analista </span></td> </tr> </table> </body> </html>
Criando aplicações com Wicket <html> <head> <title> Agenda </title> </head> <body> <h1>Endereços</h1> <table> <tr  wicket:id=&quot;registros&quot; > <td><span   wicket:id=&quot;nome&quot; > Adrián Dantas </span></td> <td><span   wicket:id=”telefone&quot; > 880-2600 </span></td> <td><span   wicket:id=”profissao&quot; > Analista </span></td> </tr> </table> </body> </html>
Criando aplicações com Wicket package  com.acme.paginas; import  org.apache.wicket.PageParameters; import  org.apache.wicket.markup.html.WebPage; import  org.apache.wicket.markup.html.basic.Label; public class  ListaPage  extends  WebPage  { public  ListaPage (final  PageParameters parameters ) { // Configuracao dos componentes da pagina } }
Criando aplicações com Wicket public class  ListaPage  extends  WebPage { public  ListaPage( final  PageParameters parameters) { add(registrosListView =  new  ListView(&quot;registros&quot;, registrosList) { protected void  populateItem(ListItem item) { final  Registro registro =  (Registro) item.getModelObject(); item.add( new  Label(&quot;nome&quot;, registro.getNome())); item.add( new  Label(&quot;telefone&quot;, registro.getTelefone())); item.add( new  Label(&quot;profissao&quot;, registro.getProfissao())); } }); }
Resumo Wicket fornece um ambiente rápido de desenvolvimento de aplicações web Os desenvolvedores podem se concentrar na lógica de negócios Utiliza componentes em Java e HTML para apresentação É simples e divertido!
Referências Website http://wicket.apache.org/ Wiki http://cwiki.apache.org/WICKET/ IRC Nos servidores Freenode  ##wicket@irc.freenode.net
Perguntas
OBRIGADO!!!

Mais conteúdo relacionado

PDF
Material Design simples e rapido com AngularJS
PPTX
React Native - Plataformas Mobile
PPTX
Domain-Driven Design
PPTX
ASP.NET MVC Mini Curso
PDF
AngularJS Abraçando o MVC Client-Side
PPT
Gwt-Guice_TDC2009
PDF
Apache Wicket @ JustJava 2008
PDF
Wicket - Brincando com Objetos
Material Design simples e rapido com AngularJS
React Native - Plataformas Mobile
Domain-Driven Design
ASP.NET MVC Mini Curso
AngularJS Abraçando o MVC Client-Side
Gwt-Guice_TDC2009
Apache Wicket @ JustJava 2008
Wicket - Brincando com Objetos

Destaque (12)

PPT
Instalação Apache Tomcat
ODP
Apresentacao de Introdução ao Apache Maven
PPT
Revisao Geral
PDF
Apache solr: como, quando e onde
PDF
Gestão da informação com apache solr e drupal
PDF
Como escolher um framework web
PPT
AULA classificação facetada
PDF
Conhecendo Apache Cassandra @Movile
PDF
Linux - Servidor Web Apache
PDF
Spring framework core
PDF
Cassandra overview: Um Caso Prático
PDF
Sistemas de classificação bibliográfica [perspectivas da biblioteconomia cont...
Instalação Apache Tomcat
Apresentacao de Introdução ao Apache Maven
Revisao Geral
Apache solr: como, quando e onde
Gestão da informação com apache solr e drupal
Como escolher um framework web
AULA classificação facetada
Conhecendo Apache Cassandra @Movile
Linux - Servidor Web Apache
Spring framework core
Cassandra overview: Um Caso Prático
Sistemas de classificação bibliográfica [perspectivas da biblioteconomia cont...
Anúncio

Semelhante a Introdução Wicket (20)

PPT
Curso ASP.Net - Módulo 1
ODP
JSF e outras tecnologias Java Web - IMES.java
ODP
Apresentação Minas - Desenvolvendo Sites
PDF
Wicket 2008
ODP
Apps Web em Wicket e Scala no GlassFish Java EE 6
PPT
Desenvolvendo aplicações web com o framework cakephp
PPTX
Facelets
KEY
Criando e Usando Helpers
PPTX
Introdução de web
PDF
Spring MVC Framework
PDF
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
PPTX
Javascript
PPT
ReMobile - Nokia Web Runtime
PDF
Gwt parte 01
PPT
RYSYS Overview
PPTX
FIT - Framework for Integration Tests
PPTX
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
PPT
Java Web Dev Introdução
ODP
servlet-requisicoes
Curso ASP.Net - Módulo 1
JSF e outras tecnologias Java Web - IMES.java
Apresentação Minas - Desenvolvendo Sites
Wicket 2008
Apps Web em Wicket e Scala no GlassFish Java EE 6
Desenvolvendo aplicações web com o framework cakephp
Facelets
Criando e Usando Helpers
Introdução de web
Spring MVC Framework
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
Javascript
ReMobile - Nokia Web Runtime
Gwt parte 01
RYSYS Overview
FIT - Framework for Integration Tests
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Java Web Dev Introdução
servlet-requisicoes
Anúncio

Último (19)

PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Aula 18 - Manipulacao De Arquivos python
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Apple Pippin Uma breve introdução. - David Glotz
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
COBITxITIL-Entenda as diferença em uso governança TI
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Processos na gestão de transportes, TM100 Col18
Aula04-Academia Heri- Tecnologia Geral 2025
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Custos e liquidação no SAP Transportation Management, TM130 Col18
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...

Introdução Wicket