42
Java EE - Lado B Loiane Groner http://loiane.com @loiane Apps RIA com Sencha GXT 3 e GWT

TDC2012: Apps RIA com Sencha GXT 3 e GWT

Embed Size (px)

DESCRIPTION

Quando falamos em RIA, logo lembramos de código JavaScript, JQuery, primefaces, richfaces, etc. Mas porque não podemos ter uma aplicação com componentes ricos codificando apenas com código Java? O GWT (Google Web Toolkit) é um framework que nos permite fazer isso, mas para deixar a aplicação bonita, ainda temos que ter um grande trabalho com CSS para estilizar a aplicação. O GXT (Ext GWT) é um framework open-source que veio para complementar o GWT. Assim podemos programar apenas em Java, sem se preocupar com nenhum código javascript, ou html ou css e ainda assim tem componentes bonitos e ricos com o look and feel do ExtJS. Na palestra vamos aprender um pouco mais sobre o GXT, seus recursos, prós e contras, além de ver uma aplicação de exemplo e um pouco de código!

Citation preview

Page 1: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Java EE - Lado B

Loiane Gronerhttp://loiane.com

@loiane

Apps RIA com Sencha GXT 3 e GWT

Page 2: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Sobre Loiane

•Bacharel em Ciência da Computação

•Gerente de Projetos

•Autora técnica

•Blogueira técnica

•Evangelista Java e Sencha

Page 3: TDC2012: Apps RIA com Sencha GXT 3 e GWT
Page 4: TDC2012: Apps RIA com Sencha GXT 3 e GWT

RIA + Java?Pode isso?

Page 5: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Não precisa aprender JavaScript?

Page 6: TDC2012: Apps RIA com Sencha GXT 3 e GWT

GWT

Page 7: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Frameworks Tradicionais

● MVC○ Struts○ Spring

● Component-based ○ JSF○ Tapestry

● SOUI (AJAX) ○ Ext JS○ DOJO ○ jQuery

Page 8: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Dificuldade de Frameworks tradicionais

● Várias Linguagens ○ Server■ java, ruby, php, C#,...■ templates (HTML,XML, markup...)■ Glue languages (OGNL)○ Client■ JavaScript ■ HTML

● Server vs. Client○ Não compartilha código○ Muitas configs○ Muita conversão

● Setup do Projeto Complicado○ Código Server-side○ Código Client side○ Templates○ Arquivos Estáticos○ JavaScripts

Page 9: TDC2012: Apps RIA com Sencha GXT 3 e GWT

O maior problema?

Todos tratam apps RIA como páginas web!

Page 10: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Como o GWT é diferente

● Código em Java (maioria)● 'compilado' para js/html● Não precisa○ páginas templates○ 'glue languages'○ scripting● Uso completo de ferramentas Java○ Eclipse debugger○ Code complete○ Continuous compilation● Código compartilhado entre client/server

Page 11: TDC2012: Apps RIA com Sencha GXT 3 e GWT

● Código Java○ client - compilado para js/html e executado no browser○ server - compilado para java e executado no lado server○ shared - compartilhado

● .gwt.xml - arquivo de configuração

● .html - que irá abrigar o seu código

● .css - para embelezar

Anatomia de um Projeto GWT

Page 12: TDC2012: Apps RIA com Sencha GXT 3 e GWT

● Widgets (objetos Java)○ Seu código é criado através de herança ou composição● Customizável● Configurável● Parecido com Swing (:/)● Pode extender

Código UI

Page 13: TDC2012: Apps RIA com Sencha GXT 3 e GWT
Page 14: TDC2012: Apps RIA com Sencha GXT 3 e GWT
Page 15: TDC2012: Apps RIA com Sencha GXT 3 e GWT

● Código Java -> Código JS otimizado -> cross browser

● Otimiza o código -> métodos in-lining, remove código morto, otimiza strings e mais

● Framentos de código JS para apps grandes e startup mais rápido

● JS é minimizado e obfuscado

Compilador GWT

Page 16: TDC2012: Apps RIA com Sencha GXT 3 e GWT

● Remote Procedure Calls -> chamadas server passando objetos Java

● Com RPC não precisa lidar com serialização e deserialização de objetos Java

● Suporta XML e/ou JSON

Comunicação com Server

Page 17: TDC2012: Apps RIA com Sencha GXT 3 e GWT
Page 18: TDC2012: Apps RIA com Sencha GXT 3 e GWT

● Run, Build, Debug e testes -> tudo em Java

● GWT tem o “Development Mode” -> pode debugar antes do código ser transformado em JS

Desenvolvimento

Page 19: TDC2012: Apps RIA com Sencha GXT 3 e GWT

● Codifica e Debuga usando a sua IDE favorita

● Google Plugin for Eclipse

Desenvolvimento

Page 20: TDC2012: Apps RIA com Sencha GXT 3 e GWT

JavaScript Native Interface (JSNI)

Integração com código JavaScript

• Allows full integration with existing handwritten JavaScript or with a third-

party JavaScript library

• JSNI can be used in many ways• Implement a Java method directly in JavaScript

• Wrap type-safe Java method signatures around existing JavaScript

• Call from JavaScript code into Java code and vice-versa

• Throw exceptions across Java/JavaScript boundaries

• Read and write Java fields from JavaScript

JavaScript Native Interface (JSNI)

Monday, October 11, 2010

Page 21: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Internacionalização & Formatação

•Static and dynamic substitution •Localized property files•Date Formatting•Number Formatting

Page 22: TDC2012: Apps RIA com Sencha GXT 3 e GWT
Page 23: TDC2012: Apps RIA com Sencha GXT 3 e GWT

sencha.com

Page 24: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Programa em Java

Extensão GWT

Look and Feel Ext JS

Componentes Ext JS

Page 25: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Google Web

ToolkitGWT Gwit

Ext GWT

Ext GWT X-Gwit GXT

Name Games

Page 26: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Introdução ao Ext GWT

Page 27: TDC2012: Apps RIA com Sencha GXT 3 e GWT

•Widgets •Templates •Layouts•Loaders & Stores •Drag and Drop •Data Binding •MVC•Charts •Accessibility

Page 28: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Ext GWT Widgets● Alta performance

● Pode customizar tema

● Data widgets○ Tree e TreeGrid○ Lists e Grids

● Forms

● Menu, menu bars e toolbars

● Panels, windows e dialogs

Page 29: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Data Widgets● Row, cell, seleção Linha ou célula

● Suporte a teclado

● Ligado a Data Stores

● Renderização rápida

Page 30: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Forms● Forms ricos● Auto complete / assist combo box● Validação nativa ● Labels à esquerda ou topo● Supporte a Multi column● Editor HTML

Page 31: TDC2012: Apps RIA com Sencha GXT 3 e GWT

ToolBars and Menus● Conjunto de toolbars, button bars, e menus● Pode colocar qualquer widget nas toolbars e menu

Page 32: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Panel, Windows e Dialogs● Pode mover e redimencionar ● Collapse / Expand● Button bar● Suporte modal

Page 33: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Templates

● Representa um fragmento HTML● Customizar o display de dados

Page 34: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Ext GWT Layouts

Page 35: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Loaders & Stores

● Models - objetos de domínio (POJO)

● DataLoader - carrega dados com ajudar do Proxy e Reader● DataReader - faz o parser dos dados

● DataProxy - responsável por carregar dados do server

● Stores & Records - stores são a versão cache dos Models no lado client enquanto que as Records são cada instância dos Models (pode editar)

Page 36: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Drag and Drop

● Suporte Drag and Drop em todos os componentes

Page 37: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Data Binding● Mapping de Atributos do Model em Campos● Relacionamento de 2 vias

Page 38: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Charts - Gráficos● Integração com Models e Stores● Muita variedade de gráficos

Page 39: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Accessibility!Acessibilidade com suporte a teclado e tema de alto contraste

Page 40: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Demo

Page 42: TDC2012: Apps RIA com Sencha GXT 3 e GWT

Obrigada!

http://loiane.com@loiane