SlideShare a Scribd company logo
1 of 42
Download to read offline
Apps RIA com Sencha GXT 3 e GWT
         Java EE - Lado B



         Loiane Groner
           http://loiane.com
                @loiane
Sobre Loiane

•Bacharel em Ciência da Computação
•Gerente de Projetos
•Autora técnica
•Blogueira técnica
•Evangelista Java e Sencha
RIA + Java?
Pode isso?
Não precisa
aprender JavaScript?
GWT
Frameworks Tradicionais

● MVC
○ Struts
○ Spring

● Component-based
○ JSF
○ Tapestry

● SOUI (AJAX)
○ Ext JS
○ DOJO
○ jQuery
Dificuldade de Frameworks tradicionais

● Várias Linguagens
○ Server
■ java, ruby, php, C#,...
■ templates (HTML,XML, markup...)
■ Glue languages (OGNL)
○ Client
■ JavaScript
■ HTML                      ● Setup do Projeto     Complicado
                            ○ Código Server-side
                            ○ Código Client side
● Server vs. Client
                            ○ Templates
○ Não compartilha código
                            ○ Arquivos Estáticos
○ Muitas configs
                            ○ JavaScripts
○ Muita conversão
O maior problema?



Todos tratam apps RIA como páginas web!
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
Anatomia de um Projeto 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
Código UI

● Widgets (objetos Java)
○ Seu código é criado através de herança ou
composição
● Customizável
● Configurável
● Parecido com Swing (:/)
● Pode extender
Compilador 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
Comunicação com Server

● 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
Desenvolvimento
● Run, Build, Debug e testes -> tudo em Java

● GWT tem o “Development Mode” -> pode debugar antes
do código ser transformado em JS
Desenvolvimento
● Codifica e Debuga usando a sua IDE favorita

● Google Plugin for Eclipse
party JavaScript library
  •
   JavaScript Native Interface (JSNI)
    JSNI can be used in many ways
       •   Implement a Java method directly in JavaScript
       •   Wrap type-safe Java method signatures around existing JavaScript
      Integração JavaScript codeJavaScript and vice-versa
        • Call from com código into Java code
       •   Throw exceptions across Java/JavaScript boundaries
       •   Read and write Java fields from JavaScript




nday, October 11, 2010
Internacionalização & Formatação

•Static and dynamic substitution
•Localized property files
•Date Formatting
•Number Formatting
sencha.com
Programa em Java

  Extensão GWT

Look and Feel Ext JS

Componentes Ext JS
Name Games

Google
 Web GWT     Gwit
Toolkit


 Ext    Ext
            X-Gwit GXT
GWT    GWT
Introdução ao Ext GWT
•Widgets
•Templates
•Layouts
•Loaders & Stores
•Drag and Drop
•Data Binding
•MVC
•Charts
•Accessibility
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
Data Widgets
● Row, cell, seleção Linha ou célula

● Suporte a teclado

● Ligado a Data Stores

● Renderização rápida
Forms
● Forms ricos
● Auto complete / assist combo box
● Validação nativa
● Labels à esquerda ou topo
● Supporte a Multi column
● Editor HTML
ToolBars and Menus
● Conjunto de toolbars, button bars, e menus
● Pode colocar qualquer widget nas toolbars e menu
Panel, Windows e Dialogs
● Pode mover e redimencionar
● Collapse / Expand
● Button bar
● Suporte modal
Templates
● Representa um fragmento HTML
● Customizar o display de dados
Ext GWT Layouts
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)
Drag and Drop

● Suporte Drag and Drop em todos os componentes
Data Binding
● Mapping de Atributos do Model em Campos
● Relacionamento de 2 vias
Charts - Gráficos
● Integração com Models e Stores
● Muita variedade de gráficos
Accessibility!
Acessibilidade com suporte a teclado e tema de alto contraste
Demo
https://github.com/loiane/
   sencha-­‐gxt3-­‐rpc-­‐grid
Obrigada!
http://loiane.com
    @loiane

More Related Content

What's hot

Wordpress - Montagem de temas
Wordpress - Montagem de temasWordpress - Montagem de temas
Wordpress - Montagem de temasValter Rodrigues
 
JavaScript: uma visão geral da linguagem e seu ecossistema
JavaScript: uma visão geral da linguagem e seu ecossistemaJavaScript: uma visão geral da linguagem e seu ecossistema
JavaScript: uma visão geral da linguagem e seu ecossistemaFabio Agostinho Boris
 
Apresentação MongoDB
Apresentação MongoDBApresentação MongoDB
Apresentação MongoDBDavid de Lucca
 
Zend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutençãoZend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutençãoFlávio Lisboa
 
Repaint/Reflow/Dom/RenderTree - Renderizando uma página web
Repaint/Reflow/Dom/RenderTree - Renderizando uma página webRepaint/Reflow/Dom/RenderTree - Renderizando uma página web
Repaint/Reflow/Dom/RenderTree - Renderizando uma página webtdc-globalcode
 
Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018André Luiz Forchesatto
 

What's hot (12)

Framework web 3 - JSF + Spring boot
Framework web 3 - JSF + Spring bootFramework web 3 - JSF + Spring boot
Framework web 3 - JSF + Spring boot
 
O Poder do JavaScript
O Poder do JavaScriptO Poder do JavaScript
O Poder do JavaScript
 
Wordpress - Montagem de temas
Wordpress - Montagem de temasWordpress - Montagem de temas
Wordpress - Montagem de temas
 
JavaScript: uma visão geral da linguagem e seu ecossistema
JavaScript: uma visão geral da linguagem e seu ecossistemaJavaScript: uma visão geral da linguagem e seu ecossistema
JavaScript: uma visão geral da linguagem e seu ecossistema
 
Microservices
MicroservicesMicroservices
Microservices
 
Apresentação MongoDB
Apresentação MongoDBApresentação MongoDB
Apresentação MongoDB
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Zend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutençãoZend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutenção
 
Java web
Java webJava web
Java web
 
Repaint/Reflow/Dom/RenderTree - Renderizando uma página web
Repaint/Reflow/Dom/RenderTree - Renderizando uma página webRepaint/Reflow/Dom/RenderTree - Renderizando uma página web
Repaint/Reflow/Dom/RenderTree - Renderizando uma página web
 
Framework web 02 - 2016
Framework web 02 - 2016Framework web 02 - 2016
Framework web 02 - 2016
 
Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018
 

Viewers also liked

Curso de ExtJS 4 Aula 37: Fit Layout
Curso de ExtJS 4 Aula 37: Fit LayoutCurso de ExtJS 4 Aula 37: Fit Layout
Curso de ExtJS 4 Aula 37: Fit LayoutLoiane Groner
 
Curso de ExtJS 4 Aula 40: HBox Layout
Curso de ExtJS 4 Aula 40: HBox LayoutCurso de ExtJS 4 Aula 40: HBox Layout
Curso de ExtJS 4 Aula 40: HBox LayoutLoiane Groner
 
Curso de ExtJS 4 Aula 38: Card Layout
Curso de ExtJS 4 Aula 38: Card LayoutCurso de ExtJS 4 Aula 38: Card Layout
Curso de ExtJS 4 Aula 38: Card LayoutLoiane Groner
 
Curso de ExtJS 4 - Aula 34: Accordion Layout
Curso de ExtJS 4 - Aula 34: Accordion LayoutCurso de ExtJS 4 - Aula 34: Accordion Layout
Curso de ExtJS 4 - Aula 34: Accordion LayoutLoiane Groner
 
Curso de ExtJS 4 Aula 39: Column Layout
Curso de ExtJS 4 Aula 39: Column LayoutCurso de ExtJS 4 Aula 39: Column Layout
Curso de ExtJS 4 Aula 39: Column LayoutLoiane Groner
 
[Curso de ExtJS 4] Aula 44: Apps MVC
[Curso de ExtJS 4] Aula 44: Apps MVC[Curso de ExtJS 4] Aula 44: Apps MVC
[Curso de ExtJS 4] Aula 44: Apps MVCLoiane Groner
 
Curso de ExtJS 4 Aula 36: Border Layout
Curso de ExtJS 4 Aula 36: Border LayoutCurso de ExtJS 4 Aula 36: Border Layout
Curso de ExtJS 4 Aula 36: Border LayoutLoiane Groner
 
Curso ExtJS 4 - Aula 30: Toolbar e DockedLayout
Curso ExtJS 4 - Aula 30: Toolbar e DockedLayoutCurso ExtJS 4 - Aula 30: Toolbar e DockedLayout
Curso ExtJS 4 - Aula 30: Toolbar e DockedLayoutLoiane Groner
 
Curso ExtJS 4 - Aula 28: Buttons
Curso ExtJS 4 - Aula 28: ButtonsCurso ExtJS 4 - Aula 28: Buttons
Curso ExtJS 4 - Aula 28: ButtonsLoiane Groner
 
Curso ExtJS 4 - Aula 21 - Data Package: Proxy Writer: CRUD Completo
Curso ExtJS 4 - Aula 21 - Data Package: Proxy Writer: CRUD CompletoCurso ExtJS 4 - Aula 21 - Data Package: Proxy Writer: CRUD Completo
Curso ExtJS 4 - Aula 21 - Data Package: Proxy Writer: CRUD CompletoLoiane Groner
 
Curso ExtJS 4 - Aula 12 - Data Package: Model: Validations
Curso ExtJS 4 - Aula 12 - Data Package: Model: ValidationsCurso ExtJS 4 - Aula 12 - Data Package: Model: Validations
Curso ExtJS 4 - Aula 12 - Data Package: Model: ValidationsLoiane Groner
 
Curso ExtJS 4 - Aula 06 - Herança Simples
Curso ExtJS 4 - Aula 06 - Herança SimplesCurso ExtJS 4 - Aula 06 - Herança Simples
Curso ExtJS 4 - Aula 06 - Herança SimplesLoiane Groner
 
Curso ExtJS 4 - Aula 32: Auto Layout
Curso ExtJS 4 - Aula 32: Auto LayoutCurso ExtJS 4 - Aula 32: Auto Layout
Curso ExtJS 4 - Aula 32: Auto LayoutLoiane Groner
 
Testando Aplicações ExtJS 4 com Siesta
Testando Aplicações ExtJS 4 com SiestaTestando Aplicações ExtJS 4 com Siesta
Testando Aplicações ExtJS 4 com SiestaLoiane Groner
 
Curso ExtJS 4 - Aula 07 - Mixins
Curso ExtJS 4 - Aula 07 - MixinsCurso ExtJS 4 - Aula 07 - Mixins
Curso ExtJS 4 - Aula 07 - MixinsLoiane Groner
 
Curso ExtJS 4 - Aula 19 - Data Package: Ajax Proxy
Curso ExtJS 4 - Aula 19 - Data Package: Ajax ProxyCurso ExtJS 4 - Aula 19 - Data Package: Ajax Proxy
Curso ExtJS 4 - Aula 19 - Data Package: Ajax ProxyLoiane Groner
 
Curso ExtJS 4 - Aula 31: Introducao a Layouts
Curso ExtJS 4 - Aula 31: Introducao a LayoutsCurso ExtJS 4 - Aula 31: Introducao a Layouts
Curso ExtJS 4 - Aula 31: Introducao a LayoutsLoiane Groner
 
Curso ExtJS 4 - Aula 24: Data Package: Recursos Store: Sorter e Filter
Curso ExtJS 4 - Aula 24: Data Package: Recursos Store: Sorter e FilterCurso ExtJS 4 - Aula 24: Data Package: Recursos Store: Sorter e Filter
Curso ExtJS 4 - Aula 24: Data Package: Recursos Store: Sorter e FilterLoiane Groner
 
Curso ExtJS 4 - Aula 26: Panel
Curso ExtJS 4 - Aula 26: PanelCurso ExtJS 4 - Aula 26: Panel
Curso ExtJS 4 - Aula 26: PanelLoiane Groner
 
Curso de ExtJS 4 - Aula 35: Absolute Layout
Curso de ExtJS 4 - Aula 35: Absolute LayoutCurso de ExtJS 4 - Aula 35: Absolute Layout
Curso de ExtJS 4 - Aula 35: Absolute LayoutLoiane Groner
 

Viewers also liked (20)

Curso de ExtJS 4 Aula 37: Fit Layout
Curso de ExtJS 4 Aula 37: Fit LayoutCurso de ExtJS 4 Aula 37: Fit Layout
Curso de ExtJS 4 Aula 37: Fit Layout
 
Curso de ExtJS 4 Aula 40: HBox Layout
Curso de ExtJS 4 Aula 40: HBox LayoutCurso de ExtJS 4 Aula 40: HBox Layout
Curso de ExtJS 4 Aula 40: HBox Layout
 
Curso de ExtJS 4 Aula 38: Card Layout
Curso de ExtJS 4 Aula 38: Card LayoutCurso de ExtJS 4 Aula 38: Card Layout
Curso de ExtJS 4 Aula 38: Card Layout
 
Curso de ExtJS 4 - Aula 34: Accordion Layout
Curso de ExtJS 4 - Aula 34: Accordion LayoutCurso de ExtJS 4 - Aula 34: Accordion Layout
Curso de ExtJS 4 - Aula 34: Accordion Layout
 
Curso de ExtJS 4 Aula 39: Column Layout
Curso de ExtJS 4 Aula 39: Column LayoutCurso de ExtJS 4 Aula 39: Column Layout
Curso de ExtJS 4 Aula 39: Column Layout
 
[Curso de ExtJS 4] Aula 44: Apps MVC
[Curso de ExtJS 4] Aula 44: Apps MVC[Curso de ExtJS 4] Aula 44: Apps MVC
[Curso de ExtJS 4] Aula 44: Apps MVC
 
Curso de ExtJS 4 Aula 36: Border Layout
Curso de ExtJS 4 Aula 36: Border LayoutCurso de ExtJS 4 Aula 36: Border Layout
Curso de ExtJS 4 Aula 36: Border Layout
 
Curso ExtJS 4 - Aula 30: Toolbar e DockedLayout
Curso ExtJS 4 - Aula 30: Toolbar e DockedLayoutCurso ExtJS 4 - Aula 30: Toolbar e DockedLayout
Curso ExtJS 4 - Aula 30: Toolbar e DockedLayout
 
Curso ExtJS 4 - Aula 28: Buttons
Curso ExtJS 4 - Aula 28: ButtonsCurso ExtJS 4 - Aula 28: Buttons
Curso ExtJS 4 - Aula 28: Buttons
 
Curso ExtJS 4 - Aula 21 - Data Package: Proxy Writer: CRUD Completo
Curso ExtJS 4 - Aula 21 - Data Package: Proxy Writer: CRUD CompletoCurso ExtJS 4 - Aula 21 - Data Package: Proxy Writer: CRUD Completo
Curso ExtJS 4 - Aula 21 - Data Package: Proxy Writer: CRUD Completo
 
Curso ExtJS 4 - Aula 12 - Data Package: Model: Validations
Curso ExtJS 4 - Aula 12 - Data Package: Model: ValidationsCurso ExtJS 4 - Aula 12 - Data Package: Model: Validations
Curso ExtJS 4 - Aula 12 - Data Package: Model: Validations
 
Curso ExtJS 4 - Aula 06 - Herança Simples
Curso ExtJS 4 - Aula 06 - Herança SimplesCurso ExtJS 4 - Aula 06 - Herança Simples
Curso ExtJS 4 - Aula 06 - Herança Simples
 
Curso ExtJS 4 - Aula 32: Auto Layout
Curso ExtJS 4 - Aula 32: Auto LayoutCurso ExtJS 4 - Aula 32: Auto Layout
Curso ExtJS 4 - Aula 32: Auto Layout
 
Testando Aplicações ExtJS 4 com Siesta
Testando Aplicações ExtJS 4 com SiestaTestando Aplicações ExtJS 4 com Siesta
Testando Aplicações ExtJS 4 com Siesta
 
Curso ExtJS 4 - Aula 07 - Mixins
Curso ExtJS 4 - Aula 07 - MixinsCurso ExtJS 4 - Aula 07 - Mixins
Curso ExtJS 4 - Aula 07 - Mixins
 
Curso ExtJS 4 - Aula 19 - Data Package: Ajax Proxy
Curso ExtJS 4 - Aula 19 - Data Package: Ajax ProxyCurso ExtJS 4 - Aula 19 - Data Package: Ajax Proxy
Curso ExtJS 4 - Aula 19 - Data Package: Ajax Proxy
 
Curso ExtJS 4 - Aula 31: Introducao a Layouts
Curso ExtJS 4 - Aula 31: Introducao a LayoutsCurso ExtJS 4 - Aula 31: Introducao a Layouts
Curso ExtJS 4 - Aula 31: Introducao a Layouts
 
Curso ExtJS 4 - Aula 24: Data Package: Recursos Store: Sorter e Filter
Curso ExtJS 4 - Aula 24: Data Package: Recursos Store: Sorter e FilterCurso ExtJS 4 - Aula 24: Data Package: Recursos Store: Sorter e Filter
Curso ExtJS 4 - Aula 24: Data Package: Recursos Store: Sorter e Filter
 
Curso ExtJS 4 - Aula 26: Panel
Curso ExtJS 4 - Aula 26: PanelCurso ExtJS 4 - Aula 26: Panel
Curso ExtJS 4 - Aula 26: Panel
 
Curso de ExtJS 4 - Aula 35: Absolute Layout
Curso de ExtJS 4 - Aula 35: Absolute LayoutCurso de ExtJS 4 - Aula 35: Absolute Layout
Curso de ExtJS 4 - Aula 35: Absolute Layout
 

Similar to Apps RIA com Sencha GXT 3 e GWT

Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFEmmanuel Neri
 
Apache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSFApache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSFBruno Borges
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
 
GWT - de iniciante a especialista
GWT - de iniciante a especialistaGWT - de iniciante a especialista
GWT - de iniciante a especialistaDanilo Reinert
 
Visao geralti netshoes03
Visao geralti netshoes03Visao geralti netshoes03
Visao geralti netshoes03Ale Uehara
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Flávio Lisboa
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)Carlos Santos
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoEduardo Bohrer
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRElvis Rocha
 
Sapo Sessions - Web Mobile
Sapo Sessions - Web MobileSapo Sessions - Web Mobile
Sapo Sessions - Web MobileBruno Carreira
 
Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?Mozart Diniz
 
08 Java Script Introdução - Teoria
08 Java Script   Introdução  - Teoria08 Java Script   Introdução  - Teoria
08 Java Script Introdução - TeoriaCentro Paula Souza
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...tdc-globalcode
 
Desenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFXDesenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFXjesuinoPower
 

Similar to Apps RIA com Sencha GXT 3 e GWT (20)

Aula parte 1 de JSF 2.2
Aula parte 1 de JSF 2.2Aula parte 1 de JSF 2.2
Aula parte 1 de JSF 2.2
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSF
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Apache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSFApache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSF
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
GWT - de iniciante a especialista
GWT - de iniciante a especialistaGWT - de iniciante a especialista
GWT - de iniciante a especialista
 
Visao geralti netshoes03
Visao geralti netshoes03Visao geralti netshoes03
Visao geralti netshoes03
 
Visao geralti netshoes03
Visao geralti netshoes03Visao geralti netshoes03
Visao geralti netshoes03
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançado
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
 
Mc56 gwt
Mc56 gwtMc56 gwt
Mc56 gwt
 
Django
DjangoDjango
Django
 
Sapo Sessions - Web Mobile
Sapo Sessions - Web MobileSapo Sessions - Web Mobile
Sapo Sessions - Web Mobile
 
Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?
 
08 Java Script Introdução - Teoria
08 Java Script   Introdução  - Teoria08 Java Script   Introdução  - Teoria
08 Java Script Introdução - Teoria
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
 
Desenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFXDesenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFX
 

Apps RIA com Sencha GXT 3 e GWT

  • 1. Apps RIA com Sencha GXT 3 e GWT Java EE - Lado B Loiane Groner http://loiane.com @loiane
  • 2. Sobre Loiane •Bacharel em Ciência da Computação •Gerente de Projetos •Autora técnica •Blogueira técnica •Evangelista Java e Sencha
  • 3.
  • 6. GWT
  • 7. Frameworks Tradicionais ● MVC ○ Struts ○ Spring ● Component-based ○ JSF ○ Tapestry ● SOUI (AJAX) ○ Ext JS ○ DOJO ○ jQuery
  • 8. Dificuldade de Frameworks tradicionais ● Várias Linguagens ○ Server ■ java, ruby, php, C#,... ■ templates (HTML,XML, markup...) ■ Glue languages (OGNL) ○ Client ■ JavaScript ■ HTML ● Setup do Projeto Complicado ○ Código Server-side ○ Código Client side ● Server vs. Client ○ Templates ○ Não compartilha código ○ Arquivos Estáticos ○ Muitas configs ○ JavaScripts ○ Muita conversão
  • 9. O maior problema? Todos tratam apps RIA como páginas web!
  • 10. 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
  • 11. Anatomia de um Projeto 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
  • 12. Código UI ● Widgets (objetos Java) ○ Seu código é criado através de herança ou composição ● Customizável ● Configurável ● Parecido com Swing (:/) ● Pode extender
  • 13.
  • 14.
  • 15. Compilador 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
  • 16. Comunicação com Server ● 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
  • 17.
  • 18. Desenvolvimento ● Run, Build, Debug e testes -> tudo em Java ● GWT tem o “Development Mode” -> pode debugar antes do código ser transformado em JS
  • 19. Desenvolvimento ● Codifica e Debuga usando a sua IDE favorita ● Google Plugin for Eclipse
  • 20. party JavaScript library • JavaScript Native Interface (JSNI) JSNI can be used in many ways • Implement a Java method directly in JavaScript • Wrap type-safe Java method signatures around existing JavaScript Integração JavaScript codeJavaScript and vice-versa • Call from com código into Java code • Throw exceptions across Java/JavaScript boundaries • Read and write Java fields from JavaScript nday, October 11, 2010
  • 21. Internacionalização & Formatação •Static and dynamic substitution •Localized property files •Date Formatting •Number Formatting
  • 22.
  • 24. Programa em Java Extensão GWT Look and Feel Ext JS Componentes Ext JS
  • 25. Name Games Google Web GWT Gwit Toolkit Ext Ext X-Gwit GXT GWT GWT
  • 27. •Widgets •Templates •Layouts •Loaders & Stores •Drag and Drop •Data Binding •MVC •Charts •Accessibility
  • 28. 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
  • 29. Data Widgets ● Row, cell, seleção Linha ou célula ● Suporte a teclado ● Ligado a Data Stores ● Renderização rápida
  • 30. Forms ● Forms ricos ● Auto complete / assist combo box ● Validação nativa ● Labels à esquerda ou topo ● Supporte a Multi column ● Editor HTML
  • 31. ToolBars and Menus ● Conjunto de toolbars, button bars, e menus ● Pode colocar qualquer widget nas toolbars e menu
  • 32. Panel, Windows e Dialogs ● Pode mover e redimencionar ● Collapse / Expand ● Button bar ● Suporte modal
  • 33. Templates ● Representa um fragmento HTML ● Customizar o display de dados
  • 35. 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)
  • 36. Drag and Drop ● Suporte Drag and Drop em todos os componentes
  • 37. Data Binding ● Mapping de Atributos do Model em Campos ● Relacionamento de 2 vias
  • 38. Charts - Gráficos ● Integração com Models e Stores ● Muita variedade de gráficos
  • 39. Accessibility! Acessibilidade com suporte a teclado e tema de alto contraste
  • 40. Demo
  • 41. https://github.com/loiane/ sencha-­‐gxt3-­‐rpc-­‐grid