Apache Wicket derruba o padrão JSF

4,654 views

Published on

Apresentação mostra o Framework Web que coloca o padrão JSF no chão.

Wicket vs JSF
http://youtu.be/uHD5xLefTyg

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,654
On SlideShare
0
From Embeds
0
Number of Embeds
295
Actions
Shares
0
Downloads
1
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • Quem conhece?
    O que usam? Struts, JSF, outros?
    Contar da experiencia pessoal
    E dizer q era uma batalha diária contra clones... erros q se repetiam constantemente
    Campo nao encontrado, propriedade nao existe, NullPointerException
  • Maioria dos frameworks exigem código HTML misturado com outras tags
    Muitos oferecem uma série de taglibs, que são outros artefatos a serem estudados além da própria API e arquitetura do framework
    Strings são utilizadas para referenciar campos e métodos, causa dos problemas diários. Apenas IDEs avançadas com suporte, auxiliam parcialmente
    Quando precisa encontrar erro, tem que peneirar
  • Plataforma Java tem Grails, JRuby, GWT.
    Estes não estão na batalha.
    A briga está no uso da linguagem Java pra desenvolver pra Web
    Wicket é o Ewok do filme Star Wars
    E chamo de Lado Negro da força o padrão JCP
  • Wicket é baseado em componentes
    Diferencia no dia-a-dia e no processo de construção
    Criador Jonathan Locke
    Motivado por simplificar o processo,
    separar as responsabilidades (programador e designer)
    utilizar orientação a objetos de forma inteligente
  • Wicket Stuff é um repositório de componentes criados pela comunidade que não amadureceram o suficiente para ingressar no Wicket Extensions, ou utilizam códigos com licensa incompatível com a Apache License
  • Começar quickstart
    Criar um link que incrementa contador
    Mudar para um Form
    Pedir à platéia alguma sugestão
  • Organização dos arquivos é por convenção, mas pode ser alterada pelo programador
  • Wicket exige programadores proficientes em Orientação a Objetos na plataforma Java.
    Muitos frameworks exigem pouco conhecimento. Programadores fazem o feijão-com-arroz da linguagem Java.
    Inner classes não são comuns na maioria dos frameworks, mas fazem parte da linguagem e é recomendado no desenvolvimento com Wicket por agilizar a construção de páginas e componentes
  • Os 6 principais conceitos da arquitetura do Wicket
  • A briga do Wicket contra os clones
    Do padrão JCP
  • [2010-10-26] JSF Expert Group Disbanded With No Successor JSR
  • JSF is part of full stack application server, but gives nothing. You have a component model, and each vendor will provide the runtime API. But you will need a library like RichFaces, ICEFaces, PrimeFaces, MyFaces, etc.
    Take a good look. You will realize that, once you start using JSF, you are not standard anymore, you are bound to the JSF library vendor. Programming models are different, tags have different name. Switching/mixing JSF library is very hard or impossible. So what good is the JSF standard for? Why is RichFaces for JSF 2.0 taking so long and how many people are developing it? Will it be continued? JSF surely, but RichFaces, ICEFaces? Who can assure that?
  • Plataforma Java tem Grails, JRuby, GWT. A briga está no uso da linguagem Java pra desenvolver pra Web
    Wicket é o Ewok do filme Star Wars
    E chamo de Lado Negro da força o padrão JCP
  • <number>
  • Apache Wicket derruba o padrão JSF

    1. 1. XMLs TagLibs String Oriented Programming SOP
    2. 2. Apache Wicket Framework Web Component-based para salvar o seu projeto e as mentes da sua equipe
    3. 3. Apache Wicket ● Simples ● POJOs ala Swing ● Tudo é componente (páginas, painéis, botões, links) ● Sem XML ● Mínimo de Dependência de Ferramentas ● Binding simples com HTML
    4. 4. Apache Wicket ● Completo ● Console de debug p/ Ajax ● Cuida do botão “Voltar” ● Fortemente tipado / Fácil achar erros na compilação
    5. 5. Apache Wicket ● Não Intrusivo ● HTML limpo; livre de semânticas de programação ● Compatível com qualquer editor WYSIWYG – Web Designers – Fácil corrigir se fizerem merda besteira
    6. 6. Apache Wicket ● Eficiência e Escalável ● Cluster por Sticky Sessions ● Mas também permite por replicação de Session
    7. 7. Java + HTML <span wicket:id=”msg”>msg de sistema</span> + new Label(“msg”, “We Develop”); = <span>We Develop</span>
    8. 8. Módulos ● Core ● Extensions ● Dependency Injection (Spring / Guice) ● Date/Time ● Auth-roles ● Stuf Gmap2 gmap = new Gmap2(“map”); page.add(gmap); <div wicket:id=”map”> Google Maps </div>
    9. 9. Interessante ser, o Wicket parece Interessante ser, o Wicket parece Código Padawan deve mostrar
    10. 10. Convenção ● Arquivos HTML ● Juntos às classes correspondentes * ● wdev.wicket.Pagina ● src/wdev/wicket/Pagina.java ● src/wdev/wicket/Pagina.html * ResourceLocator: permite mudar modelo de localização dos arquivos
    11. 11. Orientado a ObjetosOrientado a Objetos Inner ClassesInner Classes AnonymousAnonymous StaticStatic Non-StaticNon-Static
    12. 12. Conceitos ● Aplicação ● Sessão ● Componentes ● Models ● Behaviours ● Converters
    13. 13. Hands on!
    14. 14. AJAXAJAX
    15. 15. Ajax ● Suporte nativo ● Suporte a Fallback ● JavaScripts prontos/embutidos ● Atualização incremental da página ● Inclusão dinâmica de CSS e JavaScript ● HeaderContributor ● Console para debug
    16. 16. Hands on!
    17. 17. Padrão JCPPadrão JCP Wicket vs ...
    18. 18. JCP define somente arquitetura padrão JCP define somente arquitetura padrão Não um produto final Não um produto final resultado disso … ?resultado disso … ?
    19. 19. Implementações ... vááááááárias implementações ICEFaces RichFaces Mojarra OpenFaces Oracle ADF Smiles MyFaces PrimeFaces PrettyFaces DojoFaces
    20. 20. Padrão JCP ● Problemas ● Incompatibilidade entre componentes de diferentes vendors ● Componentes interessantes não são padronizados ● Tem que estudar diversos componentes (de diferentes vendors) ● Documentação descentralizada ● Comunidade fragmentada ● Designers e programadores se misturam ● Protótipo não fica funcional ● ** Performance
    21. 21. Side-by-side <!-- HTML --> <html> <body> <form> <span>Some name</span> <input type="text" /> <input type="submit" /> </form> </body> </html>
    22. 22. Side-by-side <!-- JSF --> <html> <body> <h:form> <h:outputText value="#{bean.name}" disabled="#{empty bean}" /> <h:inputText value="#{bean.property}" /> <h:commandButton value="OK" action="#{bean.method}" /> </h:form> </body> </html>
    23. 23. Side-by-side <!-- FACELETS --> <html> <body> <form jsfc="h:form"> <span jsfc="h:outputText" value="#{bean.name}" disabled="#{empty bean}" /> <input type="text" jsfc="h:inputText" value="#{bean.property}" /> <input type="submit" jsfc="h:commandButton" value="OK" action="#{bean.doSomething}" /> </form> </body> </html>
    24. 24. Side-by-side <!-- WICKET --> <html> <body> <form wicket:id="form"> <span wicket:id="name">Some name</span> <input type="text" wicket:id="input" /> <input type="submit" /> </form> </body> </html>
    25. 25. Não se sinta ofendido
    26. 26. Padrão JCP ● Vantagens ● Ser um padrão ● Longa vida – Cursos e treinamentos com baixa manutenção – Livros – Conhecimento “geral” ● Fornecedores ● Empresas com rotatividade de funcionários
    27. 27. Mais informações ● Wicket ● wicket.apache.org ● Wicket em Português ● groups.google.com/group/wicket-ptbr ● Peter Thomas (@ptrthomas) ● Blog: ptrthomas.wordpress.com ● Criador do JTrac
    28. 28. Derruba o padrão JCP Apache Wicket
    29. 29. Obrigado Bruno Borges @brunoborges

    ×