SlideShare una empresa de Scribd logo
1 de 52
Descargar para leer sin conexión
Aprimorando
    sua App com
      Ext JS 4

Loiane Groner
Loiane Quem?
palestrante = {
  nome: ‘Loiane Groner’,
  trabalha: ‘Sr Software Engineer’,
  onde: ‘@Citibank - São Paulo’,
  usaExtDesde: 2009,
  twitter: ‘@loiane’,
  escreve: ‘http://loiane.com’,
  escreveEN: ‘http://loianegroner.com’
}
Mãos ao alto!

   Conhece JQuery?

   Conhece Ext JS?

Já trabalhou com Ext JS?
Mas o que
é esse tal
de Ext JS?
http://sencha.com
1milhão de desenvolvedores

RIA JS Framework

Melhores componentes UI
do mercado
Puro HTML/Javascript
Com Ext JS
             HOT!
Cross Browser
         Funciona até
          no IEca 6!




         Não precisa
              ficar
         esquentando
           a cabeça!
XML
  ou
JSON
Fácil
Integração
Pode integrar código!




     E outros....
Orientado a
      Objetos
Ext.define
('MyApp.CustomerPanel', {
    extend: 'Ext.panel.Panel',
    // etc.
});
Carregamento
     Dinâmico
Ext.Loader.setConfig({
    enabled: true
});

Ext.Loader.setPath('Ext.ux', '../ux');

Ext.require([
    'Ext.grid.*',
    'Ext.data.*',
    'Ext.ux.RowExpander',
]);
Data Package
   Field                Reader
Validation    Model
                        Writer
Association   Proxy

              Store
     Sorter            Grouper
              Filter
Model Fields

Ext.define('User', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'id', type: 'int'},
        {name: 'name', type: 'string'}
    ]
});
Model Validations

Ext.define('User', {
    extend: 'Ext.data.Model',
    fields: ['id', 'name', 'email', 'height'],
 
    validations: [
        {type: 'presence', field: 'id'},
        {type: 'length', field: 'name', min: 2},
        {type: 'format', field: 'email', matcher: /[a-z]@[a-z].com/}
    ]
});
Ext.define('User', {
    extend: 'Ext.data.Model',
    fields: ['id', 'name'],
                              Model
 
    hasMany: 'Posts'        Association
});
 
Ext.define('Post', {
    extend: 'Ext.data.Model',
    fields: ['id', 'user_id', 'title', 'body'],
 
    belongsTo: 'User',
    hasMany: 'Comments'
});
 
Ext.define('Comment', {
    extend: 'Ext.data.Model',
    fields: ['id', 'post_id', 'name', 'message'],
 
    belongsTo: 'Post'
});
{                        Nested Data: JSON
    id: 1
    name: 'Loiane',
    posts: [
        {
             id    : 12,
             title: 'New features in Ext JS 4',
             body : 'Ext JS 4 is the most...',
             comments: [
                 {
                      id: 123,
                      name: 'Someone',
                      message: 'Great Post!'
                 }
             ]
        }
    ]
}
Dados Associados
//loads User with ID 123 using User's Proxy
User.load(123, {
    success: function(user) {
        console.log("User: " + user.get('name'));
 
        user.posts().each(function(post) {
            console.log("Comments for post: " +
post.get('title'));
 
            post.comments().each(function(comment) {
                 console.log(comment.get('message'));
            });
        });
    }
});
Store
new Ext.data.Store({
    model: 'User',
    proxy: {
        type: 'ajax',
        url : 'users.json',
        reader: 'json'
    },
    autoLoad: true
});
new Ext.data.Store({
    model: 'User',
 
    sorters: ['name', 'id'],
    filters: {
        property: 'name',
        value   : 'Loiane'
    },
    groupers: {
        property : 'age',
        direction: 'ASC'
    }
});
Proxy

   AJAX           REST

Local Storage
 (Memory &      JSON-P
  HTML 5)
Componentes
Grid
Tree
Form + Validação
    Nativa
Data View
Toolbar +
 Buttons
Gerenciador
 de Layout
Acessibilidade
   (ARIA)
Desenhos
Charts
Temas
     CSS 3:
Sass + Compass
Arquitetura MVC
Model




View           Controller
Show me the code!
Código para
         Download


  http://github.com/
loiane/extjs4-tdc2011
Licença




US$ 595 por Dev
Livro:
 Ext JS 4: First Look

    RAW - Julho 2011
  Lançamento: final 2011
http://extjs4book.com
contato = {
  email: ‘me@loiane.com’,
  blogPtBr: ‘loiane.com’,
  blogIngles: ‘loianegroner.com’,
  twitter: ‘@loiane’,
  github: ‘loiane’
}


Obrigada!

Más contenido relacionado

Destacado

DevInCachu 2012 LT: Ext Gwt 3: GXT 3
DevInCachu 2012 LT: Ext Gwt 3: GXT 3DevInCachu 2012 LT: Ext Gwt 3: GXT 3
DevInCachu 2012 LT: Ext Gwt 3: GXT 3
Loiane Groner
 
QConSP 2012: Sencha Touch 2: Mobile Multiplataforma
QConSP 2012: Sencha Touch 2: Mobile MultiplataformaQConSP 2012: Sencha Touch 2: Mobile Multiplataforma
QConSP 2012: Sencha Touch 2: Mobile Multiplataforma
Loiane Groner
 

Destacado (20)

JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3
JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3
JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3
 
JavaOne Brazil 2011: Jax-RS e Ext JS 4
JavaOne Brazil 2011: Jax-RS e Ext JS 4JavaOne Brazil 2011: Jax-RS e Ext JS 4
JavaOne Brazil 2011: Jax-RS e Ext JS 4
 
Ajax de primeira com ExtJS + JSON no seu projeto Spring
Ajax de primeira com ExtJS + JSON no seu projeto SpringAjax de primeira com ExtJS + JSON no seu projeto Spring
Ajax de primeira com ExtJS + JSON no seu projeto Spring
 
FrontInFloripa 2013: Sencha Touch 2 e Phonegap
FrontInFloripa 2013: Sencha Touch 2 e PhonegapFrontInFloripa 2013: Sencha Touch 2 e Phonegap
FrontInFloripa 2013: Sencha Touch 2 e Phonegap
 
Aprimorando sua Aplicação com Ext JS 4 - BrazilJS
Aprimorando sua Aplicação com Ext JS 4 - BrazilJSAprimorando sua Aplicação com Ext JS 4 - BrazilJS
Aprimorando sua Aplicação com Ext JS 4 - BrazilJS
 
JavaCE Conference - Ext GWT - GXT 3
JavaCE Conference - Ext GWT - GXT 3JavaCE Conference - Ext GWT - GXT 3
JavaCE Conference - Ext GWT - GXT 3
 
Cafe com Tom - ExtJS 4
Cafe com Tom - ExtJS 4Cafe com Tom - ExtJS 4
Cafe com Tom - ExtJS 4
 
JavaCE Conference 2012: ExtJS 4 + VRaptor
JavaCE Conference 2012: ExtJS 4 + VRaptorJavaCE Conference 2012: ExtJS 4 + VRaptor
JavaCE Conference 2012: ExtJS 4 + VRaptor
 
MNT2014: Mobile Hibrido com Phonegap
MNT2014: Mobile Hibrido com PhonegapMNT2014: Mobile Hibrido com Phonegap
MNT2014: Mobile Hibrido com Phonegap
 
Curso XML - IBM Academic Initiative
Curso XML - IBM Academic InitiativeCurso XML - IBM Academic Initiative
Curso XML - IBM Academic Initiative
 
Sencha Touch e PhoneGap: SouJava - IBM Maio 2013
Sencha Touch e PhoneGap: SouJava - IBM Maio 2013Sencha Touch e PhoneGap: SouJava - IBM Maio 2013
Sencha Touch e PhoneGap: SouJava - IBM Maio 2013
 
FAESA Computação Móvel: Introducao a Phonegap e Cordova
FAESA Computação Móvel: Introducao a Phonegap e CordovaFAESA Computação Móvel: Introducao a Phonegap e Cordova
FAESA Computação Móvel: Introducao a Phonegap e Cordova
 
DevInCachu 2012 LT: Ext Gwt 3: GXT 3
DevInCachu 2012 LT: Ext Gwt 3: GXT 3DevInCachu 2012 LT: Ext Gwt 3: GXT 3
DevInCachu 2012 LT: Ext Gwt 3: GXT 3
 
FrontInBahia 2014: 10 dicas de desempenho para apps mobile híbridas
FrontInBahia 2014: 10 dicas de desempenho para apps mobile híbridasFrontInBahia 2014: 10 dicas de desempenho para apps mobile híbridas
FrontInBahia 2014: 10 dicas de desempenho para apps mobile híbridas
 
WebBr 2013: Apps Mobile Multiplataforma e OpenSource com Sencha Touch e Phon...
WebBr 2013: Apps Mobile Multiplataforma e OpenSource com  Sencha Touch e Phon...WebBr 2013: Apps Mobile Multiplataforma e OpenSource com  Sencha Touch e Phon...
WebBr 2013: Apps Mobile Multiplataforma e OpenSource com Sencha Touch e Phon...
 
Justjava 2012: REST Com Jax-RS e ExtJS 4
Justjava 2012: REST Com Jax-RS e ExtJS 4Justjava 2012: REST Com Jax-RS e ExtJS 4
Justjava 2012: REST Com Jax-RS e ExtJS 4
 
QConSP 2012: Sencha Touch 2: Mobile Multiplataforma
QConSP 2012: Sencha Touch 2: Mobile MultiplataformaQConSP 2012: Sencha Touch 2: Mobile Multiplataforma
QConSP 2012: Sencha Touch 2: Mobile Multiplataforma
 
DevInCachu 2012: Desenvolvendo Aplicacoes RIA com ExtJS 4 e Sencha Touch 2
DevInCachu 2012: Desenvolvendo Aplicacoes RIA com ExtJS 4 e Sencha Touch 2DevInCachu 2012: Desenvolvendo Aplicacoes RIA com ExtJS 4 e Sencha Touch 2
DevInCachu 2012: Desenvolvendo Aplicacoes RIA com ExtJS 4 e Sencha Touch 2
 
Linguagil 2012: Desenvolvendo Aplicações RIA com Ext JS 4 e Touch 2
Linguagil 2012: Desenvolvendo Aplicações RIA com  Ext JS 4 e Touch 2Linguagil 2012: Desenvolvendo Aplicações RIA com  Ext JS 4 e Touch 2
Linguagil 2012: Desenvolvendo Aplicações RIA com Ext JS 4 e Touch 2
 
Conexao Java 2012: Desenvolvendo RIA com Java e Ext GWT (GXT)
Conexao Java 2012: Desenvolvendo RIA com Java e Ext GWT (GXT) Conexao Java 2012: Desenvolvendo RIA com Java e Ext GWT (GXT)
Conexao Java 2012: Desenvolvendo RIA com Java e Ext GWT (GXT)
 

Similar a TDC 2011 - Ext JS 4

[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
Loiane Groner
 

Similar a TDC 2011 - Ext JS 4 (20)

Curso ExtJS 4 - Aula 01 - Introdução
Curso ExtJS 4 - Aula 01 - IntroduçãoCurso ExtJS 4 - Aula 01 - Introdução
Curso ExtJS 4 - Aula 01 - Introdução
 
Play Framework - FLISOL
Play Framework - FLISOLPlay Framework - FLISOL
Play Framework - FLISOL
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para Webdesigners
 
GraphQL - APIs mais robustas e flexíveis
GraphQL - APIs mais robustas e flexíveisGraphQL - APIs mais robustas e flexíveis
GraphQL - APIs mais robustas e flexíveis
 
MondoDB
MondoDBMondoDB
MondoDB
 
Apostila_JavaScript_pela_axademia_ardkgfv
Apostila_JavaScript_pela_axademia_ardkgfvApostila_JavaScript_pela_axademia_ardkgfv
Apostila_JavaScript_pela_axademia_ardkgfv
 
Wicket 2008
Wicket 2008Wicket 2008
Wicket 2008
 
[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
 
Ext JS 4 em 5 Minutos - QCONSP 2011
Ext JS 4 em 5 Minutos - QCONSP 2011Ext JS 4 em 5 Minutos - QCONSP 2011
Ext JS 4 em 5 Minutos - QCONSP 2011
 
Evento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de FrontEvento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de Front
 
MIRA - Um framework Javascript para construção de interfaces adaptativas em a...
MIRA - Um framework Javascript para construção de interfaces adaptativas em a...MIRA - Um framework Javascript para construção de interfaces adaptativas em a...
MIRA - Um framework Javascript para construção de interfaces adaptativas em a...
 
Introdução ao MongoDB
Introdução ao MongoDBIntrodução ao MongoDB
Introdução ao MongoDB
 
Meetup MUG-RS KingHost
Meetup MUG-RS KingHostMeetup MUG-RS KingHost
Meetup MUG-RS KingHost
 
Workshop Elasticsearch - Android Dev Conference 2016
Workshop Elasticsearch - Android Dev Conference 2016Workshop Elasticsearch - Android Dev Conference 2016
Workshop Elasticsearch - Android Dev Conference 2016
 
Backbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectadosBackbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectados
 
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
 
Novidades do Django 1.2
Novidades do Django 1.2Novidades do Django 1.2
Novidades do Django 1.2
 
Explorando a API Rest Jira Cloud
Explorando a API Rest Jira CloudExplorando a API Rest Jira Cloud
Explorando a API Rest Jira Cloud
 
04_Introducao_JavaScript.pdf
04_Introducao_JavaScript.pdf04_Introducao_JavaScript.pdf
04_Introducao_JavaScript.pdf
 
React js
React js React js
React js
 

Último

Último (8)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

TDC 2011 - Ext JS 4

  • 1. Aprimorando sua App com Ext JS 4 Loiane Groner
  • 2. Loiane Quem? palestrante = { nome: ‘Loiane Groner’, trabalha: ‘Sr Software Engineer’, onde: ‘@Citibank - São Paulo’, usaExtDesde: 2009, twitter: ‘@loiane’, escreve: ‘http://loiane.com’, escreveEN: ‘http://loianegroner.com’ }
  • 3. Mãos ao alto! Conhece JQuery? Conhece Ext JS? Já trabalhou com Ext JS?
  • 4. Mas o que é esse tal de Ext JS?
  • 6. 1milhão de desenvolvedores RIA JS Framework Melhores componentes UI do mercado
  • 8. Com Ext JS HOT!
  • 9.
  • 10. Cross Browser Funciona até no IEca 6! Não precisa ficar esquentando a cabeça!
  • 13. Pode integrar código! E outros....
  • 14. Orientado a Objetos Ext.define ('MyApp.CustomerPanel', { extend: 'Ext.panel.Panel', // etc. });
  • 15. Carregamento Dinâmico Ext.Loader.setConfig({ enabled: true }); Ext.Loader.setPath('Ext.ux', '../ux'); Ext.require([ 'Ext.grid.*', 'Ext.data.*', 'Ext.ux.RowExpander', ]);
  • 16. Data Package Field Reader Validation Model Writer Association Proxy Store Sorter Grouper Filter
  • 17. Model Fields Ext.define('User', { extend: 'Ext.data.Model', fields: [ {name: 'id', type: 'int'}, {name: 'name', type: 'string'} ] });
  • 18. Model Validations Ext.define('User', { extend: 'Ext.data.Model', fields: ['id', 'name', 'email', 'height'],   validations: [ {type: 'presence', field: 'id'}, {type: 'length', field: 'name', min: 2}, {type: 'format', field: 'email', matcher: /[a-z]@[a-z].com/} ] });
  • 19. Ext.define('User', { extend: 'Ext.data.Model', fields: ['id', 'name'], Model   hasMany: 'Posts' Association });   Ext.define('Post', { extend: 'Ext.data.Model', fields: ['id', 'user_id', 'title', 'body'],   belongsTo: 'User', hasMany: 'Comments' });   Ext.define('Comment', { extend: 'Ext.data.Model', fields: ['id', 'post_id', 'name', 'message'],   belongsTo: 'Post' });
  • 20. { Nested Data: JSON id: 1 name: 'Loiane', posts: [ { id : 12, title: 'New features in Ext JS 4', body : 'Ext JS 4 is the most...', comments: [ { id: 123, name: 'Someone', message: 'Great Post!' } ] } ] }
  • 21. Dados Associados //loads User with ID 123 using User's Proxy User.load(123, { success: function(user) { console.log("User: " + user.get('name'));   user.posts().each(function(post) { console.log("Comments for post: " + post.get('title'));   post.comments().each(function(comment) { console.log(comment.get('message')); }); }); } });
  • 22. Store new Ext.data.Store({ model: 'User', proxy: { type: 'ajax', url : 'users.json', reader: 'json' }, autoLoad: true });
  • 23. new Ext.data.Store({ model: 'User',   sorters: ['name', 'id'], filters: { property: 'name', value : 'Loiane' }, groupers: { property : 'age', direction: 'ASC' } });
  • 24. Proxy AJAX REST Local Storage (Memory & JSON-P HTML 5)
  • 26. Grid
  • 27. Tree
  • 32. Acessibilidade (ARIA)
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44. Temas CSS 3: Sass + Compass
  • 46. Model View Controller
  • 47. Show me the code!
  • 48. Código para Download http://github.com/ loiane/extjs4-tdc2011
  • 50. Livro: Ext JS 4: First Look RAW - Julho 2011 Lançamento: final 2011 http://extjs4book.com
  • 51.
  • 52. contato = { email: ‘me@loiane.com’, blogPtBr: ‘loiane.com’, blogIngles: ‘loianegroner.com’, twitter: ‘@loiane’, github: ‘loiane’ } Obrigada!