SlideShare uma empresa Scribd logo
Sencha ExtJS
Eduardo Mendes (edumendes@gmail.com)
Introdução
2
Eduardo Mendes (edumendes@gmail.com)
Ext JS
3
Implementação de aplicações ricas para
a plataforma Web
Framework JavaScript da Sencha
Possui outras versões, como o Sencha
Touch
Baseado em componentes
Grande comunidade de desenvolvedores
Eduardo Mendes (edumendes@gmail.com)4
Eduardo Mendes (edumendes@gmail.com)5
Cross-Browser
JavaScript
Eduardo Mendes (edumendes@gmail.com)6
É um Framework FrontEnd
Deve ser utilizado com outras tecnologias para realizar a parte ServerSide
Pode integrar com outros frameworks JS
Até a versão 3 precisa de um adapter,
mas agora não é mais necessário
PHP
RAILS
SPRING
STRUTS 2
PYTHON
As informações entre servidor e ExtJS
são trocadas por JSON e XML
Eduardo Mendes (edumendes@gmail.com)
Orientado
a Objetos
7
Ext.define(Nome, configuracoes, callback);
Eduardo Mendes (edumendes@gmail.com)
Carregamento
Dinâmico
8
Ext.Loader.setConfig({
enabled: true
});
!
Ext.Loader.setPath(‘Ext.ux’, ‘../ux’);
!
Ext.require(…);
Eduardo Mendes (edumendes@gmail.com)
Package
Data
9
Ext.Loader.setConfig({
enabled: true
});
!
Ext.Loader.setPath(‘Ext.ux’, ‘../ux’);
!
Ext.require(…);
Eduardo Mendes (edumendes@gmail.com)
Model
Fields
10
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [
{ name: ‘id’, type: 'int'},
{name: 'name', type: 'string'}
]
});
Eduardo Mendes (edumendes@gmail.com)
Model
Association
11
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [‘id’,’name’],
hasMany: 'Posts'
});
!
Ext.define('Post', {
extend: 'Ext.data.Model',
fields: [‘id’,’user_id’, ‘title’, ‘body’],
belongsTo: 'User'
});
Eduardo Mendes (edumendes@gmail.com)
Arquitetura MVC
12
Eduardo Mendes (edumendes@gmail.com)
Vasta Documentação
13
Eduardo Mendes (edumendes@gmail.com)
Utilizando o ExtJS
14
Eduardo Mendes (edumendes@gmail.com)15
Faça o download do ExtJS no site da Sencha
Eduardo Mendes (edumendes@gmail.com)16
Descompacte e renomeie
Eduardo Mendes (edumendes@gmail.com)17
Estrutura
docs: contém a documentação completa (que você precisa para
implantá-lo em um servidor local para ser capaz de executá-lo)
!
exemplos: Este contém exemplos de como usar os componentes Ext JS
!
packages: contém os módulos Ext JS, empacotados
!
resources: contém o CSS e imagens utilizados pelos temas Ext
!
src: código fonte completo
!
welcome: contém imagens utilizadas pelo index.html
!
builds: arquivos adicionais
!
Eduardo Mendes (edumendes@gmail.com)18
Ouvindo o evento ready
Ext.onReady(function(){
<code>
});
DOM
"I'm ready"
O código só executará depois que
o DOM estiver "pronto"
Eduardo Mendes (edumendes@gmail.com)19
Utilizando ExtJS
dowload ExtJS
carregue-o em seu documento HTML
<script src=“extjs-all.js”></script>
carregue o CSS do ExtJS
<link rel="stylesheet" type="text/css" href="resources/css/ext-all.css" />
1
2
3
Eduardo Mendes (edumendes@gmail.com)20
Exemplo completo
<html>
<head>
!
!
!
!
</head>
<body></body>
!
!
!
!
!
</html>
<link rel="stylesheet"
type="text/css"
href="../extjs/resources/css/ext-all.css" />
<script>
Ext.onReady(function() {
Ext.MessageBox.alert('Hello','Hello, World!');
});
</script>
<script src="../extjs/ext-all.js"></script>
Eduardo Mendes (edumendes@gmail.com)
Internacionalização
21
Eduardo Mendes (edumendes@gmail.com)22
Internacionalização
Eduardo Mendes (edumendes@gmail.com)
Criando um Painel Simples
23
Eduardo Mendes (edumendes@gmail.com)
widget.panel
24
Criando um Painel Simples
Eduardo Mendes (edumendes@gmail.com)25
Criando um Painel Simples
<body>
<div id="painelPrincipal"></div>
</body>
Ext.onReady(function () {
!
!
!
!
!
!
!
!
!
});
renderTo: 'painelPrincipal',
!
title: 'Painel ExtJS 4',
width: 400,
height: 300,
frame: true,
!
html: "<div id='contentID'></div>"
Ext.create('widget.panel', {
!
!
!
!
!
!
!
});
Eduardo Mendes (edumendes@gmail.com)
Integrando com jQuery
26
Eduardo Mendes (edumendes@gmail.com)27
Criando um Painel Simples + jQuery
Ext.onReady(function () {
Ext.create('widget.panel', {
renderTo: 'painelPrincipal',
!
title: 'Painel ExtJS 4',
width: 400,
height: 300,
frame: true,
!
html: "<div id='contentID'></div>"
});
$("#contentID").load("conteudo.html");
});
Eduardo Mendes (edumendes@gmail.com)28
Carregando o conteúdo com jQuery
Eduardo Mendes (edumendes@gmail.com)
Definindo classes
29
Eduardo Mendes (edumendes@gmail.com)
Definir classes
02 maneiras
30
Ext.define(Nome, configuracoes, callback);
Ext.ClassManager(Nome, configuracoes, callback);
Eduardo Mendes (edumendes@gmail.com)31
Classe Usuario
Eduardo Mendes (edumendes@gmail.com)
32
Definindo uma classe
Ext.onReady(function () {
!
!
!
!
!
!
!
!
!
!
!
!
});
Ext.define('Usuario', {
!
!
!
!
!
!
!
!
!
!
});
nome: '',
senha: '',
login: function() {
console.log("Logando na aplicacao...");
},
logout: function() {
console.log("Saindo d aplicação...")
}
},
function() {
console.log("Callback acionado");
}
Eduardo Mendes (edumendes@gmail.com)33
Sobrescrever
Existe um construtor padrão no ExtJS
constructor: function(options){
Ext.apply(this, options || {});
}
Eduardo Mendes (edumendes@gmail.com)
34
Sobrescrevendo o construtor
Ext.onReady(function () {
Ext.define('Usuario', {
nome: '',
senha: '',
!
!
!
login: function() {
console.log("Logando na aplicacao...");
},
logout: function() {
console.log("Saindo d aplicação...")
}
},
…
});
constructor: function(options) {
Ext.apply(this, options || {});
},
Eduardo Mendes (edumendes@gmail.com)
Instanciar um objeto
02 maneiras
35
Ext.create(Nome, opcoes);
Ext.ClassManager.instantiate(Nome, opcoes);
Eduardo Mendes (edumendes@gmail.com)
Instanciar um objeto
Usuario
36
var usuario = Ext.create('Usuario');
Eduardo Mendes (edumendes@gmail.com)37
Passando parâmetros
var usuario = Ext.create(‘Usuario’, {
nome: ‘Eduardo’,
senha: ‘123456’
});
Eduardo Mendes (edumendes@gmail.com)38
Código final
Ext.onReady(function () {
Ext.define('Usuario', {
nome: '',
senha: '',
!
constructor: function (options) {
Ext.apply(this, options || {});
!
console.log("Construtor chamado");
},
login: function () {
console.log("Logando na aplicacao...");
},
logout: function () {
console.log("Saindo d aplicação...")
}
},
function () {
console.log("Callback acionado");
}
);
!
var usuario = Ext.create('Usuario', {
nome: 'Eduardo',
senha: '123456'
});
console.log(usuario);
});
Eduardo Mendes (edumendes@gmail.com)39
Refatorando
Ext.define('Usuario', {
nome: '',
senha: '',
!
constructor: function (options) {
Ext.apply(this, options || {});
!
console.log("Construtor chamado");
},
login: function () {
console.log("Logando na aplicacao...");
},
logout: function () {
console.log("Saindo d aplicação...")
}
},
function () {
console.log("Callback acionado");
}
);
!
Ext.onReady(function () {
var usuario = Ext.create('Usuario', {
nome: 'Eduardo',
senha: '123456'
});
console.log(usuario);
});
Eduardo Mendes (edumendes@gmail.com)
Herança
40
Eduardo Mendes (edumendes@gmail.com)41
Herança
A finalidade de utilizar herança com
ExtJS é personalizar os componentes
existentes para as necessidades de um
sistema específico
Escolha um componente e
configure suas propriedades e
comportamentos
Eduardo Mendes (edumendes@gmail.com)42
Herdando dos componentes ExtJS
A opção extend
permite que se possa
herdar e personalizar
um componente ExtJS
Ext.define('MyButton', {
}
);
Ext.onReady(function () {
Ext.create("MyButton", {
!
!
});
});
O 1.º passo é utilizar
o código de definição
de uma classe
extend:
É necessário informar
o nome completo da classe
que se quer herdar
O valor informado deve
ser uma String
text: ‘Olá ExtJs',
renderTo: Ext.getBody()
'Ext.button.Button'
Eduardo Mendes (edumendes@gmail.com)43
Eduardo Mendes (edumendes@gmail.com)44
Herdando dos componentes ExtJS
Ext.define('MyButton', {
}
);
Ext.onReady(function () {
Ext.create("MyButton", {
!
!
});
});
extend:
text: ‘Olá ExtJs',
renderTo: Ext.getBody()
'Ext.button.Button'
Vamos adicionar
à definição da classe
a característica
e o comportamento
Eduardo Mendes (edumendes@gmail.com)45
Herdando dos componentes ExtJS
Ext.define('MyButton', {
extend: ‘Ext.button.Button'
text: ‘Olá ExtJs',
renderTo: Ext.getBody()
!
}
);
Ext.onReady(function () {
Ext.create("MyButton");
});
Essa opção
ainda permite
que haja sobrescrita
de valores
Como fazer para
evitar isso?
Eduardo Mendes (edumendes@gmail.com)
Adicionando
propriedades finais
46
initComponent: function(){}
this.callParent();
gancho para personalizar
a inicialização de um
componente
faz uma chamada
ao construtor
da superclasse imediata
Eduardo Mendes (edumendes@gmail.com)47
Propriedades finais
Ext.define('MyButton', {
extend: 'Ext.button.Button',
initComponent: function() {
this.text = "Outra frase";
this.callParent();
}
}
);
Ext.onReady(function () {
Ext.create("MyButton");
});
Eduardo Mendes (edumendes@gmail.com)48
Propriedades finais
Ext.define('MyButton', {
extend: 'Ext.button.Button',
initComponent: function() {
this.text = "Outra frase";
this.callParent();
}
}
);
Ext.onReady(function () {
Ext.create("MyButton", {
text: 'Olá ExtJS',
renderTo: Ext.getBody()
});
});
Eduardo Mendes (edumendes@gmail.com)49
Reaproveitando o componente
<body>
<section id="opcao1"></section>
<section id="opcao2"></section>
<section id="opcao3"></section>
</body>
Eduardo Mendes (edumendes@gmail.com)50
Reaproveitando o componente
Ext.onReady(function () {
Ext.create("MyButton", {
renderTo: 'opcao1'
});
!
Ext.create("MyButton", {
renderTo: 'opcao2'
});
!
Ext.create("MyButton", {
renderTo: 'opcao3'
});
!
});
<body>
<section id="opcao1"></section>
<section id="opcao2"></section>
<section id="opcao3"></section>
</body>
Eduardo Mendes (edumendes@gmail.com)
Mixins
51
Eduardo Mendes (edumendes@gmail.com)52
Mixins
Definem um conjunto de
comportamentos e configurações
reutilizáveis que podem ser mixadas
a uma classe
o 1.º passo é criar uma classe
para ser o mixin
Eduardo Mendes (edumendes@gmail.com)53
Mixins
Um mixin pode ter
qualquer número
de métodos
Uma classe pode
utilizar qualquer n.º
de mixins
Eduardo Mendes (edumendes@gmail.com)54
Mixins Locavel e Vendivel
Ext.define(
!
);
‘Exemplo.mixin.Locavel’, {
}
alugar: function() {
console.log('Imovel está disponível para aluguel!');
Ext.define(
!
);
‘Exemplo.mixin.Vendivel’, {
}
vender: function() {
console.log('Imovel está disponível para venda!');
Eduardo Mendes (edumendes@gmail.com)55
Mixins Locavel e Vendivel
Ext.define('Exemplo.mixin.Locavel', {
alugar: function() {
console.log('Imovel está disponível para aluguel!');
}
});
!
Ext.define('Exemplo.mixin.Vendivel', {
vender: function() {
console.log('Imovel está disponível para comprar!');
}
});
Ext.define('Exemplo.imovel.Apartamento', {
!
!
!
});
!
mixins: {
!
!
}
!
!
alugarApartamento: ‘Exemplo.mixin.Locavel’,
!
!
!
!
venderApartamento: ‘Exemplo.mixin.Vendivel’
as chaves podem
possuir qualquer valor
Eduardo Mendes (edumendes@gmail.com)56
Mixins Locavel e Vendivel
Ext.define('Exemplo.imovel.Apartamento', {
mixins: {
alugarApartamento: 'Exemplo.mixin.Locavel',
venderApartamento: 'Exemplo.mixin.Vendivel'
}
});
Ext.onReady(function () {
!
var meuAp = Ext.create('Exemplo.imovel.Apartamento');
meuAp.alugar();
meuAp.vender();
!
});
Eduardo Mendes (edumendes@gmail.com)
Config (getters, setters)
57
Eduardo Mendes (edumendes@gmail.com)58
Config
Cria métodos acessores e
modificadores de forma automática,
mais utilitários
getter
setter
reset
apply
Eduardo Mendes (edumendes@gmail.com)59
Config
Ext.onReady(function () {
Ext.define('Usuario', {
nome: '',
senha: '',
});
});
Eduardo Mendes (edumendes@gmail.com)60
Config
Ext.define('Usuario', {
config: {
nome: '',
senha: ‘',
}
});
getNome
setNome
resetNome
getSenha
setSenha
resetSenha
Eduardo Mendes (edumendes@gmail.com)
MessageBox
alert, confirm, prompt
61
Eduardo Mendes (edumendes@gmail.com)62
Botão e MessageBox
Eduardo Mendes (edumendes@gmail.com)63
Acionando um MessageBox a partir do botão
Ext.onReady(function() {
Ext.create('Ext.Button', {
text: 'Saudar a Turma',
renderTo: 'botao-saudar',
handler: function() {
Ext.MessageBox.alert('Saudacao','Ola, Turma!');
}
});
});
informa em o id do
elemento onde será renderizado
informa a ação que
será realizada ao clicar no botão
<p id="botao-saudar"></p>
Eduardo Mendes (edumendes@gmail.com)
Saudar Turma
64
Eduardo Mendes (edumendes@gmail.com)65
MessageBox + Callback
O 3.º parâmetro é um callback que é executado quando o botão OK é chamado
Ext.onReady(function() {
Ext.create('Ext.Button', {
text: 'Saudar a Turma',
renderTo: 'botao-saudar',
handler: function() {
Ext.MessageBox.alert('Saudacao','Ola, Turma!');
}
});
});
Eduardo Mendes (edumendes@gmail.com)66
MessageBox + Callback
O 3.º parâmetro é um callback que é executado quando o botão OK é chamado
Ext.onReady(function() {
Ext.create('Ext.Button', {
text: 'Saudar a Turma',
renderTo: 'botao-saudar',
handler: function() {
Ext.MessageBox.alert('Saudacao','Ola, Turma!’,
function() {
console.log("A turma foi saudada");
}
);
}
});
});
Eduardo Mendes (edumendes@gmail.com)
Callback
67
Eduardo Mendes (edumendes@gmail.com)68
MessageBox + confirm
A mensagem de confirmação
Ext.create('Ext.Button', {
text: 'Confirmar Aula',
renderTo: 'botao-confirmar',
handler: function() {
Ext.MessageBox.confirm(
‘Confirmacao',
'Confirmar a aula?’,
function(btn) {
console.log("A aula foi confirmada? R: " + btn);
}
);
}
});
Eduardo Mendes (edumendes@gmail.com)
Confirmação
69
Eduardo Mendes (edumendes@gmail.com)70
MessageBox
A mensagem de confirmacao
Ext.create('Ext.Button', {
text: 'Confirmar Aula',
renderTo: 'botao-confirmar',
handler: function() {
Ext.MessageBox.confirm(
‘Confirmacao',
'Confirmar a aula?’,
function(btn) {
console.log("A aula foi confirmada? R: " + btn);
}
);
}
});
Eduardo Mendes (edumendes@gmail.com)71
MessageBox + confirm + acao
!
Ext.MessageBox.confirm(
‘Confirmacao',
'Confirmar a aula?’,
function(btn) {
console.log("A aula foi confirmada? R: " + btn);
if (btn == "yes") {
Ext.MessageBox.alert('Confirmada','Ola, …’);
}
}
);
Eduardo Mendes (edumendes@gmail.com)
Alerta da aula
72
Eduardo Mendes (edumendes@gmail.com)73
MessageBox + Prompt
O botão de prompt
Ext.create('Ext.Button', {
text: 'Prompt',
renderTo: 'botao-prompt',
handler: function() {
Ext.MessageBox.prompt(
'Prompt',
'Qual o horario da aula?',
function(btn, text) {
console.log("O horario da aula eh: " + text);
}
);
}
});
Eduardo Mendes (edumendes@gmail.com)
Prompt
74
Eduardo Mendes (edumendes@gmail.com)75
MessageBox + Prompt + multiline
O botão de prompt
Ext.create('Ext.Button', {
text: 'Prompt',
renderTo: 'botao-prompt',
handler: function() {
Ext.MessageBox.prompt(
'Prompt',
'Qual o horario da aula?',
function(btn, text) {
console.log("O horario da aula eh: " + text);
}
);
}
});
Eduardo Mendes (edumendes@gmail.com)76
MessageBox + Prompt + multiline
O botão de prompt
Ext.create('Ext.Button', {
text: 'Prompt-area',
renderTo: 'botao-prompt-area',
handler: function() {
Ext.MessageBox.prompt(
'Prompt',
‘Qual sera o conteudo da aula?',
function(btn, text) {
console.log("O conteudo da aula eh: " + text);
},
this,
true
);
}
});
Eduardo Mendes (edumendes@gmail.com)
Conteudo da Aula
77
Eduardo Mendes (edumendes@gmail.com)
Panel
78
Eduardo Mendes (edumendes@gmail.com)79
Panel
Várias classes no ExtJS são subclasses de Panel como:
!
Menu
!
Form
!
Grid
!
Window
Eduardo Mendes (edumendes@gmail.com)80
Panel
Eduardo Mendes (edumendes@gmail.com)
Configurações
81
html
items
buttons
dockedItems
layout
tools
title
bars
Eduardo Mendes (edumendes@gmail.com)82
Panel
Código básico
Ext.onReady(function() {
Ext.create('Ext.panel.Panel', {
title: 'Ola',
width: 200,
html: '<p>Turma!</p>',
renderTo: Ext.getBody()
});
});
Eduardo Mendes (edumendes@gmail.com)83
Panel
Código básico
Ext.onReady(function() {
Ext.create('Ext.panel.Panel', {
title: 'Ola',
width: 200,
height: 300,
html: '<p>Turma!</p>',
renderTo: Ext.getBody()
});
});
Eduardo Mendes (edumendes@gmail.com)
Configurações
84
html
items
buttons
dockedItems
layout
tools
title
bars
Eduardo Mendes (edumendes@gmail.com)85
Panel + items
Ext.onReady(function() {
Ext.create('Ext.panel.Panel', {
bodyPadding: 20,
width: 300,
title: 'Filters',
items: [{
xtype: 'datefield',
fieldLabel: 'Data inicial'
}, {
xtype: 'datefield',
fieldLabel: 'Data final'
}],
renderTo: Ext.getBody()
});
});
Eduardo Mendes (edumendes@gmail.com)86
Panel + items + grid
Ext.onReady(function() {
Ext.create('Ext.panel.Panel', {
bodyPadding: 20,
width: 300,
title: 'Filters',
items: [{
xtype: 'datefield',
fieldLabel: 'Data inicial'
}, {
xtype: 'datefield',
fieldLabel: 'Data final'
}],
renderTo: Ext.getBody()
});
});
Eduardo Mendes (edumendes@gmail.com)
Configurações
87
html
items
buttons
dockedItems
layout
tools
title
bars
Eduardo Mendes (edumendes@gmail.com)88
Panel + dockedItems
Ext.create('Ext.panel.Panel', {
bodyPadding: 20,
title: 'Filters',
width: 300,
items: [{
xtype: 'datefield',
fieldLabel: 'Data inicial'
}, {
xtype: 'datefield',
fieldLabel: 'Data final'
}],
dockedItems: [{
xtype: 'toolbar',
dock: 'bottom',
items: [{
text: 'Encaixado na base'
}]
}],
renderTo: Ext.getBody()
});

Mais conteúdo relacionado

PDF
AngularJS - Rotas
PDF
Angular JS - Fundamentos
PDF
JavaScript - Introdução com Orientação a Objetos
PDF
PDF
Charting & Data Visualization in Ext JS 4
PDF
Desenvolvimento web com PHP parte 4
PDF
Engenharia de Requisitos
PDF
TDD - Prática com RSpec
AngularJS - Rotas
Angular JS - Fundamentos
JavaScript - Introdução com Orientação a Objetos
Charting & Data Visualization in Ext JS 4
Desenvolvimento web com PHP parte 4
Engenharia de Requisitos
TDD - Prática com RSpec

Destaque (20)

PDF
Java Web 4 - Servlets e JSP 2
PDF
Acesso a banco de dados com JDBC
PDF
PDF
Testes de Software parte 2
PDF
The Power of Collaboration to Build Your Own Startup
PDF
RSpec com doubles
PDF
Desenvolvimento web com PHP parte 3
PDF
Desenvolvimento Web com PHP parte 7
PDF
Introdução à Linguagem Ruby - Fundamentos - Parte 2
PDF
Html Aula 1 - parte 2
PDF
TDD Projeto e Estrategias
PDF
Introdução ao TDD
PDF
Evolucao de software - parte 2
PDF
Evolucao de software - parte 1
PDF
Rails - parte 1
PDF
Teste de Software - parte 1
PDF
Turbinando o desenvolvimento com Eclipse
DOCX
Academia do Arquiteto Globalcode
PDF
Java Web 2 - Ferramentas e configuração
Java Web 4 - Servlets e JSP 2
Acesso a banco de dados com JDBC
Testes de Software parte 2
The Power of Collaboration to Build Your Own Startup
RSpec com doubles
Desenvolvimento web com PHP parte 3
Desenvolvimento Web com PHP parte 7
Introdução à Linguagem Ruby - Fundamentos - Parte 2
Html Aula 1 - parte 2
TDD Projeto e Estrategias
Introdução ao TDD
Evolucao de software - parte 2
Evolucao de software - parte 1
Rails - parte 1
Teste de Software - parte 1
Turbinando o desenvolvimento com Eclipse
Academia do Arquiteto Globalcode
Java Web 2 - Ferramentas e configuração
Anúncio

Semelhante a ExtJS-4 (20)

PDF
Curso ExtJS 4 - Aula 01 - Introdução
PPTX
Curso de Introdução ao Android Básico
PDF
Apostila_JavaScript_pela_axademia_ardkgfv
PPTX
IoTizando com JavaScript
ODP
Tw Course Ajax 2007 Ap05
PPTX
Introdução de web
PDF
TDC 2011 - Ext JS 4
PDF
Wicket 2008
PPTX
jQuery e ASP.Net mvc2
PPTX
Treinamento ASP.NET 2014
PPTX
Introdução ao CSS - Desenvolvimento web
PPTX
Pdm -final
PDF
Precisamos falar sobre MERN stack
PDF
PPTX
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
PDF
Fundamentos de JDBC
PDF
JSF 2.0: Uma Evolução nas Interfaces Web com Java
PDF
JavaScript e JQuery para Webdesigners
PPSX
Introdução aos Padrões Web e Tecnologias para o Ambiente Digital - Aula 02 - ...
PDF
Android Core Aula 6 - Desenvolvimento de aplicações Android
Curso ExtJS 4 - Aula 01 - Introdução
Curso de Introdução ao Android Básico
Apostila_JavaScript_pela_axademia_ardkgfv
IoTizando com JavaScript
Tw Course Ajax 2007 Ap05
Introdução de web
TDC 2011 - Ext JS 4
Wicket 2008
jQuery e ASP.Net mvc2
Treinamento ASP.NET 2014
Introdução ao CSS - Desenvolvimento web
Pdm -final
Precisamos falar sobre MERN stack
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Fundamentos de JDBC
JSF 2.0: Uma Evolução nas Interfaces Web com Java
JavaScript e JQuery para Webdesigners
Introdução aos Padrões Web e Tecnologias para o Ambiente Digital - Aula 02 - ...
Android Core Aula 6 - Desenvolvimento de aplicações Android
Anúncio

Mais de Eduardo Mendes (20)

PDF
Singleton - Padrão de Projeto
PDF
Layout Fluido
PDF
Web Design Responsivo
PDF
Html - Aula 4
PDF
Html - Aula 3
PDF
Introdução à Internet, Http e HTML
PDF
Jquery 2
PDF
Estimativas de Esforço - Engenharia de Software
PDF
Java web 6 JSP Expression Language Taglib parte 2
PDF
Validações no Ruby on Rails
PDF
Padrão Iterator
PDF
Padroes Template-Method (Método Gabarito)
PDF
Padrão Command
PDF
Padrão Fachada
PDF
Padrão Adapter
PDF
Web Design Responsivo
PDF
PHP básico para iniciantes
PDF
PHP e MySQL para iniciantes
PDF
Introdução a Padrões de Projeto
PDF
Strategy - Padrões de Projeto
Singleton - Padrão de Projeto
Layout Fluido
Web Design Responsivo
Html - Aula 4
Html - Aula 3
Introdução à Internet, Http e HTML
Jquery 2
Estimativas de Esforço - Engenharia de Software
Java web 6 JSP Expression Language Taglib parte 2
Validações no Ruby on Rails
Padrão Iterator
Padroes Template-Method (Método Gabarito)
Padrão Command
Padrão Fachada
Padrão Adapter
Web Design Responsivo
PHP básico para iniciantes
PHP e MySQL para iniciantes
Introdução a Padrões de Projeto
Strategy - Padrões de Projeto

Último (20)

PPTX
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Curso de Java 9 - (Threads) Multitarefas.pptx
PPTX
Aula sobre desenvolvimento de aplicativos
PPTX
Émile Durkheim slide elaborado muito bom
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Aula sobre banco de dados com firebase db
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PPTX
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
Custos e liquidação no SAP Transportation Management, TM130 Col18
Curso de Java 9 - (Threads) Multitarefas.pptx
Aula sobre desenvolvimento de aplicativos
Émile Durkheim slide elaborado muito bom
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Aula sobre banco de dados com firebase db
Apple Pippin Uma breve introdução. - David Glotz
Processos na gestão de transportes, TM100 Col18
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
COBITxITIL-Entenda as diferença em uso governança TI

ExtJS-4