Escolar Documentos
Profissional Documentos
Cultura Documentos
NELSON GUIMARÃES
RAPHAEL ZANON RODRIGUES
MARÍLIA
2007
1
NELSON GUIMARÃES
RAPHAEL ZANON RODRIGUES
MARÍLIA
2007
2
CDD: 004.6783
3
4
AGRADECIMENTOS
concluir este trabalho que marca o fim de mais uma fase de nossas vidas. é impossível agradecer
a todas as pessoas que nos acompanharam nesta jornada e que certamente estarão nos apoiando a
chegar ainda mais longe, mas temos a certeza de que se tivéssemos percorrido todo o caminho
sozinhos, certamente teria sido mais difícil, por isso, queremos agradecer a todas as pessoas que
sermos como somos hoje. Juntamente com eles, Gostaríamos de agradecer às nossas
companheiras que nos apoiaram e que desde já estão fazendo sacrifícios pelo nosso futuro
profissional e acadêmico.
incentivam desde o início do colégio até o fim da graduação e agradecemos ainda a nossos
amigos que nos entenderam e deram força nos momentos que hesitamos.
Por fim, queremos agradecer às mesmas pessoas que citei no início e que não foram
citadas aqui, e que ainda teremos muito tempo pra agradecer pessoalmente a cada um de vocês. A
AMARAL, Nelson Guimarães do; RODRIGUES, Raphael Zanon. Aplicações Web com Ajax.
2007. 73 f. Dissertação (Bacharelado em Administração com Habilitação em Análise de
Sistemas) – Centro Universitário Eurípides de Marília, Fundação de Ensino Eurípides Soares da
Rocha, Marília, 2007.
RESUMO
AMARAL, Nelson Guimarães do; RODRIGUES, Raphael Zanon. Aplicações Web com Ajax.
2007. 73 f. Dissertação (Bacharelado em Administração com Habilitação em Análise de
Sistemas) – Centro Universitário Eurípides de Marília, Fundação de Ensino Eurípides Soares da
Rocha, Marília, 2007.
ABSTRACT
With the increase of the utilization of web applications due to the popularization of the bandwidth
internet fallowing as a result of the need of advanced resources, as language and development
technique, this research present the development methodology of web application with AJAX,
such as, how it works, advantages and disadvantages. Boarding the characteristics of the main
technologies that are part of this development methodology, as example, HTML, JavaScript,
XML, CSS and DOM. Following is shown how this technologies are integrated resulting AJAX,
in other words it is the way how the data is showed to the user even before the full load of the
page, with the main methods and how to use them, besides the presentation of some frameworks
which assist the development and the concepts that compound the Web 2.0. Lastly, a case study
based on the technology .NET offered by Microsoft part of the Visual Studio 2005, framework
ASP.NET AJAX 2.0 and the database SQL Server 2005. This application is based on the
concepts showed during the research combined with the development environment which
supports the application development amongst ASP.NET AJAX, showing the facility to develop
applications using framework.
LISTA DE ILUSTRAÇÕES
LISTA DE LISTAGENS
LISTA DE ABREVIATURAS
SUMÁRIO
INTRODUÇÃO ............................................................................................................................ 11
1. CONCEITOS ............................................................................................................................ 12
1.1. NET ....................................................................................................................................... 12
1.1.1. Framework .......................................................................................................................... 17
1.2. ASP.NET ............................................................................................................................... 18
1.3. C# ........................................................................................................................................... 21
1.3.1. Orientação a Objetos .......................................................................................................... 22
1.4. JavaScript ............................................................................................................................... 23
1.5. CSS ……………………………………………………………............................................ 26
1.6. HTML ……………………………………………………………........................................ 28
1.7. DHTML ................................................................................................................................. 28
1.8. DOM ...................................................................................................................................... 29
1.9. XML ...................................................................................................................................... 31
1.10. WEB 2.0 .............................................................................................................................. 33
2. AJAX ........................................................................................................................................ 36
2.1. Conceitos ............................................................................................................................... 36
2.2. Aplicações ............................................................................................................................. 37
2.3. Estado da Arte ....................................................................................................................... 38
2.4. Tecnologias Utilizadas Pelo Ajax .......................................................................................... 39
2.5. Frameworks ........................................................................................................................... 40
2.6. XMLHttp ............................................................................................................................... 44
2.7. XMLHttpRequest .................................................................................................................. 45
2.8. Funcionamento ...................................................................................................................... 46
2.9. Exemplos ............................................................................................................................... 47
2.10. Limitações ........................................................................................................................... 51
REFERÊNCIAS ........................................................................................................................... 71
12
INTRODUÇÃO
AJAX, mostrando como elas funcionam e como elas se integram para atingir um melhor
O termo AJAX significa Asynchronous Javascript And XML, sendo utilizado para
especificar a utilização em conjunto de tecnologias que torna possível às aplicações Web serem
mais dinâmicas, evitando o reload total da página a cada informação requisitada pelo usuário,
No primeiro capítulo, temos como objetivo apresentar dos conceitos da plataforma .NET
e juntamente com o ASP.NET, mostrando seus conceitos e como a plataforma funciona, dando
suporte para o desenvolvimento de uma aplicação web. Neste mesmo capítulo, são apresentadas
as tecnologias que envolvem o AJAX e a forma com que elas interagem com as requisições
realizadas ao servidor da aplicação web, sendo apresentado também o conceito da Web 2.0 que se
baseia em aplicações mais dinâmicas, que permitem que os usuários não sejam apenas receptores
de aplicações que ele deve ser inserido, alguns frameworks que auxiliam no desenvolvimento, os
principais métodos seguidos de exemplos de como utilizá-los e as limitações que o AJAX possui.
Web que faz uso das tecnologias descritas anteriormente em conjunto com a metodologia de
auxiliam nas tarefas do desenvolvedor seguido de uma descrição dos resultados obtidos com o
desenvolvimento.
13
1. CONCEITOS
1.1. NET
uma significativa evolução nos pensamentos da empresa, sendo considerada uma melhoria
(2004, p.2), “A plataforma .NET é a fundação sobre a qual a próxima geração de softwares será
construída”. Para completar, o Turtschi et al (2004, p.2) diz que “A plataforma .NET é muito
mais de que uma linguagem, um kit de programação ou mesmo um sistema operacional. Ela
oferece novos e poderosos recursos”, não sendo possível usar eficientemente essas novas
tornar a plataforma .NET pronta para a empresa e amigável para o programador, tornando única
sistema operacional.
A plataforma .NET é executada sobre uma aplicação similar a uma maquina virtual
chamada de Common Language Runtime (CLR). Segundo Turtschi et al (2004, p.2), a CLR é
“Um ambiente de execução gerenciado que manipula alocação de memória, detecção de erro e
14
aplicações, para isso a CLR interage com uma coleção de bibliotecas unificadas formando o
framework.NET que possui numerosos serviços que servem para facilitar o desenvolvimento e a
utilizar uma grande variedade de diferentes linguagens de programação tais como: Fortran,
Pascal, C++, Perl, C#, Python, COBOL, Microsoft JScript, SmallTalk, Oz, Microsoft Visual
Basic, Delphi, Eiffel, Java, Ruby e outras. Com isso, qualquer código compilado para .NET pode
programador não escreve mais os códigos para um dispositivo ou um sistema específico, mas
agora, ele escreve os códigos para a plataforma .NET, eliminando assim o problema de
compatibilidade entre Dynamic Link Libraries (DLL), tão conhecido e enfrentado em outras
compiladores Just In Time (JIT), onde executa um código intermediário chamado de Microsoft
pela Common Language Specification (CLS). De acordo com o Turtschi et al (2004, p.10) “Como
todo código visando a plataforma .NET roda com o ambiente CLR, ele é chamado de código
gerenciado pelo CLR. Os metadados são um recurso mantido durante a compilação e consultado
em runtime pelo CLR permitindo que o mesmo saiba detalhes de como instanciar os objetos,
Segundo Turtschi et al (2004, p.12), “As aplicações .NET são distribuídas como
15
assemblies, que podem ser um único executável ou uma coleção de componentes.”. Ao criar uma
aplicação .NET em uma linguagem escolhida é gerado um arquivo chamado de Assembly que
nada mais é do que um padrão de bits, ou seja, a linguagem de máquina que se torna legível pela
substituição dos valores por símbolos de acordo com o tipo do projeto com informações da
versão, outros assemblies referenciados por este e suas respectivas versões, os tipos contidos no
programa, esse arquivo é novamente compilado por meio do CLR de acordo com o ambiente de
utilização do programa.
O fato de esta arquitetura utilizar a MSIL gera uma possibilidade pouco desejada entre
original a partir de um código compilado. Esta não é uma idéia agradável para as empresas que
existem ferramentas que ofuscam este código MSIL, trocando nomes de variáveis, métodos,
interfaces e outros para dificultar o trabalho de quem tentar uma engenharia reversa num código
compilado MSIL.
Como é possível ver na Figura 01, todas a linguagens da plataforma .NET são
16
compiladas gerando um código MSIL de acordo com a sua respectiva CLS. No próximo nível
estão os dois tipos principais de desenvolvimento de aplicação, sendo eles os Web Services e os
Windows Forms. Essas aplicações se comunicam usando o XML e o Simple Object Protocol
(SOAP) que obtém suas funcionalidades da Base Class Library e rodam no ambiente CLR. Ao
lado, é mostrado o Visual Studio.NET que não é necessário para o desenvolvimento de uma
aplicação .NET, porém, sua arquitetura o torna uma escolha ideal para o desenvolvimento de
memória mais conhecido como coleta de lixo. No desenvolvimento em C e outras linguagens que
não possuíam esse recurso, os desenvolvedores despendiam muito tempo procurando por falhas
de memória em seus códigos. Segundo Turtschi et al (2004, p.13), “a coleta de lixo é executada
quando sua aplicação está aparentemente fora de memória livre ou simplesmente quando ela é
chamada”, ou seja, quando a aplicação solicita mais memória e não existe mais memória
disponível, a coleta de lixo é chamada. Para que o coletor possa liberar espaço na memória, ele
sai verificando todos os objetos que a aplicação faz referências, logo após ele realoca esses
objetos na memória e atualiza as referências da aplicação para apontarem para a nova posição dos
objetos na memória. Depois de feito esse processo de realocação e atualização das referências, o
coletor de lixo move a posição o ponteiro da memória para logo após o último objeto
sucessor do ActiveX Data Objects (ADO) clássico. De acordo com Turtschi at al (2004), a
Microsoft está posicionado o ADO.NET para ser a principal ferramenta de acesso a dados do
.NET Framework, Turtschi et al (2004, p.256) diz ainda que “Isso irá garantir que a arquitetura
de acesso a dados será madura e robusta, já que todas as linguagens do Common Language
17
Runtime (CLR) estarão usando o ADO.NET como principal meio de comunicação com os
plataformas diferentes interagindo com o ADO.NET que realiza o acesso à base de dados.
Language (XML) o que proporciona um rico suporte para tais documentos. Os objetos do
ADO.NET são coerentes com a especificação do XML, o que torna possível abrir um documento
XML simples, alterar os dados e salvá-lo, sendo muito útil para a persistência. O ADO.NET
possui duas novas formas que trabalham juntas para servir os dados, são elas. A primeira é o
DataSet que segundo Turtschi et al (2004) pode ser considerado um banco de dados relacional
que fica alocado na memória do computador, porém, desconectado da base de dados e não sabe
de onde vieram os dados. O DataSet possui provisões para tarefas múltiplas, relações, chaves
primárias, visualizações, classificações entre outros. A segunda forma de servir os dados é com o
DataReader onde este é uma estrutura que possui um único sentido, não é atualizável e segue
apenas para a frente, sendo utilizado para realizar acessos de leitura a dados.
18
isso porque o DataSet não é conectado diretamente à fonte de dados, o que torna necessária a
utilização de um DataAdapter que representa a conexão com a base e é onde ficam guardados os
comandos para preencher o DataSet, como mostra a Figura 03. É nesse momento que entra o
DataReader, pois o DataAdapter utiliza um DataReader para ir até a base de dados e realizar a
1.1.1. Framework
que outro projeto de software pode ser organizado e desenvolvido. De acordo com Gonçalves
programas de suporte, bibliotecas de código, linguagens de script e outros softwares para ajudar a
19
1.2. ASP.NET
Protocol (HTTP) da Microsoft utilizado para transferências de dados pela internet, que evoluiu
durante os últimos anos, tornando-se segundo Shepherd (2006) uma das tecnologias mais
consistentes, estáveis e ricas com vários recursos disponibilizados para gerenciar as solicitações
Active Server Pages (ASP).”. Devido a uma mudança na maneira de desenvolver partindo do
ASP clássico que praticamente não tinha ferramentas próprias e ganhando um ambiente
codificação, podendo escrever páginas ASP.NET em qualquer uma das linguagens suportadas
pelo CLR e tendo um aumento significativo no desempenho, pois os códigos são compilados, o
desenvolvido pela Microsoft para seus sistemas operacionais de servidores que segundo Shepherd
(2006, p. 37), “o IIS intercepta a solicitação e busca o recurso identificado pelo URL” retornando
a resposta para o navegador que fez a solicitação. O IIS permite através de uma linguagem de
programação integrada na .NET Framework criar páginas dinâmicas, ou seja, sempre que uma
página é requisitada pelo navegador, ela será executada pelo servidor e a partir daí serão gerados
20
códigos em HTML com o resultado dos processos que será enviado para o navegador que o
Uma das melhorias para o desenvolvedor é na hora de alterar algum código ou o layout
da pagina. Antes do ASP.NET era necessário alterar dentro do código HTML existente, o que se
um de layout e outro com o código, sendo que existe uma linha que vincula os arquivos, isso se
chama Code Behind. O modelo code-behind vincula um arquivo somente de código ao arquivo
ASPX que contém marcas de apresentação. Portanto, o design pode ser feito sem nenhum
da aplicação, onde é gerado um arquivo em Assembly que contém todos os arquivos code-behind
compilados, por outro lado, a pagina ASPX é compilada em tempo de execução na primeira
solicitação em conjuntos de módulo, o que o torna vantajoso pois as próximas requisições serão
21
Como o ASP.NET foi projetado como uma estrutura aberta, muitos módulos e
componentes que constituem o ASP.NET podem ser estendidos, por exemplo, uma aplicação
para web desenvolvida em ASP.NET pode reutilizar código de qualquer outro projeto escrito
para a plataforma .NET, mesmo que em linguagem diferente. Uma página ASP.NET escrita em
VB.NET pode chamar componentes escritos em C# ou Web Services escritos em C++, por
executar, pelo menos na plataforma Windows. Existem alguns projetos que estão se esforçando
para permitir que aplicações ASP.NET possam ser executadas em outras plataformas, como por
1.3. C#
O CSharp (C# pronuncia-se "cê chárp" em português ou "cí charp" em inglês) é uma
linguagem de programação orientada a objetos criada pela Microsoft junto com a arquitetura
.NET, e que teve como base para o desenvolvimento do C# a linguagem C++ e Java. De acordo
com Turtschi et al (2004, p. 22) “A C# é uma linguagem moderna. Ela suporta o conceito de tipos
de dados, fluxo de instruções de controle, operadores, arrays, propriedades e exceções.”, ele ainda
diz que o C# é uma linguagem orientada a objetos e que suporta o conceito de classes e toda a
de lixo do CLR sendo, a partir deste vinculo que ele obtém suas classes e/ou funções para a
(NameSpaces são, ao "pé-da-letra", Espaços para Nome, ou seja, é possível atribuir um nome
para um elemento, criando assim o seu próprio elemento) que agrupam as classes com funções
considerada a linguagem principal dessa arquitetura, isso se deve ao fato dela ter algumas
vantagens como:
• Foi totalmente desenvolvida para rodar na nova plataforma da Microsoft, sendo assim,
demais;
• A maior parte das classes desse framework foi desenvolvida na linguagem C#;
A desalocação automática de memória pelo coletor de lixo além de várias de suas abstrações tais
como classes, interfaces, delegados e exceções são nada mais que a exposição explicita dos
criação e desenho da C# não foi exceção. Devido à natureza fechada do C# com uma instituição
semelhança com Java, o seu futuro como uma linguagem para uso generalizado e outros assuntos.
Ao contrário de linguagens proprietárias, tal como o Visual Basic, a Microsoft optou por
força a induzir mudanças e inovação na linguagem. Além disso, a Microsoft tornou bem claro
que a C#, tal como outras linguagens .NET, é uma parte importante da sua estratégia de software,
tanto para uso interno e para consumo externo. A Microsoft se encarrega ativamente do papel de
chamados de objetos. De acordo com Gonçalves (2006, p. 14), “Um objeto é uma entidade tida
por nós como sólida. Um computador, um carro, um cachorro, por exemplo, são objetos do
mundo físico.”, tais objetos possuem propriedades e métodos. Por meio das propriedades, é
24
possível modificar os objetos e a mesma propriedade pode ser aplicada a diferentes objetos. Os
métodos que manipulam os dados e é a partir da classe que os objetos são instanciados, ou seja,
necessários definem como um objeto de cada classe colabora para atingir os objetivos do sistema,
ou seja, cada classe encapsula o comportamento e estados possíveis de seus objetos por meio dos
métodos e atributos respectivamente, como também o relacionamento com outros objetos sendo
eles amarrados entre si. Segundo Deitel et al (2003, p.373), “embora os objetos possam saber
como se comunicar uns com os outros por meio de interfaces bem definidas, os objetos não tem
permissão para conhecer como os outros objetos são implementados”, tais detalhes referentes à
Smalltalk, Perl, Python, Ruby, Php, ColdFusion, C++, Object Pascal, Java, JavaScript,
ActionScript e C#.
1.4. JavaScript
desenvolvida por Brendan Eich da Netscape no ano de 1995 e se trata da primeira linguagem de
script da web a ser introduzida e é a mais popular por ser quase tão fácil como o HTML. A
acordo com a evolução da web que se tornava mais dinâmica e tinha a necessidade de ter maior
interação com o usuário como por exemplo a validação de formulários no lado cliente, tomar
decisões e realizar outras validações simples que não eram possíveis de serem feitos utilizando a
linguagem de marcação de texto simples como o HTML. As linguagens de script são mais
simples por possuir uma sintaxe fácil de aprender, além de permitirem combinar script com
leve, interpretada e com recursos de orientação a objetos”. Por ser uma linguagem interpretada o
navegador executa cada linha de script como as recebe, por isso é importante saber que o
JavaScript é sensível ao tipo de letra em sua sintaxe. Portanto, é necessário que seja obedecida a
forma de escrever os comandos, caso contrario o JavaScript interpretará, por exemplo, o que seria
um comando, como sendo o nome de uma variável. Esses pontos são o que diferem o JavaScript
O JavaScript não tem quase nenhuma semelhante com o Java a não ser pelo nome e a
sintaxe de ambas as linguagens que têm por base as linguagens C e C++. De acordo com
interprete”. O que os torna totalmente diferente no conceito e no uso, como por exemplo, a
tipagem dinâmica onde os tipos das variáveis não são definidos, é uma linguagem interpretada e
não compilada, oferece um bom suporte a expressões regulares e possui ótimas ferramentas
padrão para listagens, sendo as duas últimas, características das linguagens de script.
que rolam na tela, alterar as mensagens na linha de status do navegador, validar os conteúdos de
26
um formulário, fazer cálculos, exibir mensagens para o usuário, tanto como parte de um pagina
da web como em caixas de alertas, fazer animações de imagens ou criar imagens que mudam
quando você move o mouse sobre elas, detectar o navegador em utilização e exibir conteúdo
Manufacturers Association (ECMA) que é o responsável pela padronização de grande parte das
tecnologias que já utilizamos ou que ainda utilizaremos. O ECMA define apenas características
intrínsecas da linguagem e seu compilador (no caso do JavaScript, interpretador), tais como:
Assim como o HTML, o JavaScript exige um navegador da web para ser exibido e
incompatibilidade de navegador com o JavaScript são mais drásticos como: em vez de exibir seu
texto incorretamente o script absolutamente pode não executar, exibir uma mensagem de erro ou
O Common Gateway Interface (CGI) é uma especificação que permite aos programas
serem executados em um servidor da Web e não uma linguagem de programação, podendo ser
são muito utilizados na Web, muito provavelmente, se você já digitou uma informação num
formulário e pressionou o botão para enviá-las para um site da Web, elas foram enviadas para um
aplicativo de CGI.
Web, enquanto o CGI é executado no servidor, sendo esta, a principal desvantagem do CGI
27
frente ao JavaScript pois, como os dados devem ser enviados para o servidor e retornados ao
navegador Web, o tempo de resposta pode ser lento. Por outro lado, o CGI pode enviar um
arquivo para o servidor, funcionalidade que o JavaScript não suporta, ou seja, o JavaScript apenas
manipulas as informações, ele não armazena dados. O JavaScript trata suas estruturas básicas,
propriedades do navegador e os elementos de uma página HTML como objetos (entidades com
programáveis, operadores e expressões. Ele oferece também recursos interativos que faltam no
HTML e permite a criação de páginas interativas e dinâmicas, que são interpretadas localmente
1.5. CSS
Cascading Style Sheets (CSS) ou simplesmente folha de estilos, é uma página que
contém definições ou especificações de diferentes estilos que são utilizados para definir a
apresentação de documentos HTML ou XML. Com base em Gonçalves(2006), o CSS teve seu
De acordo com Flanagam (2004, p. 272) “A capacidade de criar script com estilos de
CSS permite alterar dinamicamente cores, fontes e assim por diante. Acima de tudo, permite
configurar e alterar a posição dos elementos e até ocultar e mostrar elementos”. O principal
vantagens como:
- Etiquetas para a utilização, podendo definir vários estilos para uma mesma etiqueta;
- Reutilização do código;
colocar elementos na página com maior precisão, distância entre as linhas do documento,
Porém, essa tecnologia deve ser utilizada com cuidado, pois como ela é relativamente
nova, tendo sido lançada oficialmente pelo World Wide Web Consortium (W3C) que é uma
entidade responsável pela definição da área gráfica da internet, o CSS1 é a primeira versão e foi
lançado oficialmente em 1996 e a segunda versão chamada de CSS2 foi lançada em 1998. Os
navegadores modernos garantem a sua utilização, mas alguns navegadores como versões
anteriores ao Netscape 4 ou Internet Explorer 3 por exemplo, não suportam a sua utilização ou
não implementam as mesmas funções de folhas de estilo, sendo assim, os documentos podem se
cliente realiza uma requisição via HTTP ao servidor web e este acessa a base dados em busca dos
dados requisitados, devolvendo para o navegador um código em HTML com o que o cliente
1.6. HTML
Hipertexto, foi criada em 1990 pelo cientista Tim Berners-Lee. A sua finalidade era apenas tornar
diversas universidades. Segundo Lemay (1998, p. 47), o HTML “se baseia na SGML (Standard
bem maior.”. Lemay (1998) cita ainda que para desenvolver páginas em HTML, não é necessário
conhecer mais do que uma das principais características da SGML que ela não descreve a
estrutura geral do conteúdo do documento e não a apresentação desse documento para o usuário.
O HTML devido a sua herança do SGML é uma linguagem de marcação utilizada para a
construção de páginas web que inicialmente limitava-se a apenas exibir informações contidas nos
documentos, tendo a idéia de que os documentos possuem elementos em comum como, por
exemplo, cabeçalhos, títulos, parágrafos, listas e tabelas. Devido ao fato de que os documentos
HTML eram apenas para exibir informação, eles são interpretados pelos navegadores, ou seja, os
de ter uma maior flexibilidade para manipular visualmente os conteúdos e, juntamente com a
1.7. DHTML
tornar os sites mais interativos para os usuários dando mais movimento, dinamismo e o HTML
30
simples fica conhecido como Dynamic HTML. O Dynamic HTML ou simplesmente DHTML é,
de acordo com Gonçalves (2006, p. 04) “a união das tecnologias HTML, JavaScript e a CSS
aliada ao Document Object Model (DOM), para permitir que uma página Web seja modificada
dinamicamente na própria máquina cliente, sem a necessidade de novos acessos aos servidor
Web” que permite que a pagina web seja modificada na máquina que fez a requisição não tendo a
O DHTML é uma nova tecnologia da web que deixa os elementos de uma página como
textos, imagens, posição dos elementos e estilos de páginas mais dinâmicos, ou seja, tudo pode
ser mudado dinamicamente. Segundo Lemay (1998), o Dynamic HTML foi projetado para
em uma página, ou seja, é graças ao DHTML que hoje é possível desfrutar de interatividades
semelhantes às encontradas em sistemas para desktop. Para tornar os sites mais interativos, o
DHTML utiliza scripts, embora seja possível a utilização de várias linguagens para escrever os
1.8. DOM
um documento HTML) e acessar e manipular os vários elementos (como marcas HTML e strings
De acordo com Gonçalves (2006, p.72), “O DOM é uma plataforma – e uma linguagem
31
programação DHTML sendo um modelo de objetos expostos pelo navegador que permite através
do Event Model (Modelo de Evento) acessar eventos do usuário e torná-los acessíveis por uma
O Event Model permite que o documento HTML reaja a ações (eventos) do usuário
como, por exemplo, pressionar uma tecla ou arrastar o ponteiro do mouse sobre um elemento.
Como os scripts que contém a programação para essas ações são executados no navegador do
usuário, existe um grande ganho de desempenho e velocidade com que são executadas as ações.
O DOM foi definido pela W3C em cinco categorias de acordo com Gonçalves (2006) que são
descritas a seguir:
DOM HTML – essa especificação é uma extensão do DOM Core, porém com a
capacidade de manipular todos os elementos de um documento HTML. Ele utiliza uma sintaxe de
CSS.
DOM Events – essa especificação adiciona eventos de controle ao DOM que variam
desde eventos de interface como cliques de mouse até eventos que são mais específicos,
DOM XML – essa especificação é uma extensão do DOM Core para ser utilizada com
O DOM vê o documento como uma estrutura de dados caracterizados por uma relação
32
de hierarquia entre os elementos que fazem parte dele montando uma estrutura semelhante a uma
árvore. Com base em Gonçalves (2006), é possível representar qualquer documento HTML ou
XML como uma árvore, sendo necessário apenas que este documento esteja bem formatado. A
figura 07 a seguir ilustra a representação em árvore de um documento HTML com suas tags
<HEAD> e <BODY>. Apenas o elemento <BODY> contem outros elementos que são <H1> e o
<P>. O elemento <H1> contém uma string ‘Texto’, já o elemento <P> contém a string
‘Paragrafo’.
1.9. XML
combinasse flexibilidade com a simplicidade da HTML. O principio do projeto era criar uma
linguagem que pudesse ser lida por software, e integrar-se com as demais linguagens.
33
atributos com o HTML”. O XML é considerado uma grande evolução das linguagens para a Web
que teve como base a General Markup Language (GML), desenvolvida pela IBM nos anos 70.
XML é uma linguagem que foi desenvolvida para superar as limitações do HTML, sendo
definida como o formato universal para dados estruturados na Web, consistindo em tabelas,
desenhos, parâmetros de configurações, entre outros, ou seja, a linguagem define as regras que
permitem escrever documentos de forma que sejam adequadamente visíveis ao computador, não
tratando da apresentação das informações, mas apenas do conteúdo a ser apresentado, tendo
vetoriais (imagem gerada a partir de descrições geométricas de formas, diferente das imagens
chamadas mapa de bits, que são geradas a partir de pontos minúsculos diferenciados por suas
cores) ou bancos de dados (são conjuntos de dados com uma estrutura regular que organizam
informação). Como se trata de um formato texto-puro, XML pode ser criado e editado em
qualquer dos mais recentes editores de textos. Conhecendo-se a sintaxe de XML, é possível
escrever documentos "na mão" tão válidos quanto os gerados por programas automatizados.
XML em seus produtos, como a Microsoft, Oracle, IBM, Google e Sun. É uma linguagem que
tende a alcançar um sucesso cada vez maior, não só no segmento de comércio eletrônico, como
dados de forma semi-estruturados que podem ser considerados como uma combinação de texto e
estrutura que no caso da XML é fornecida pelas tags que carregam o valor e outras informações
O termo Web 2.0 faz referência a uma nova fase da Web que dá ênfase a ferramentas e
plataformas que permitam ao usuário não ser apenas um receptor de informações, mas também
um produtor delas. Porém, este termo tem gerado muita discussão, pois alguns defendem que esta
atual fase da Web é uma evolução, o que não utilizaria o termo Web 2.0 e os que defendem que
esta nova fase é uma inovação e que por isso defendem o termo Web 2.0.
das regras para obter sucesso nesta nova plataforma. Entre outras, a regra mais
inteligência coletiva”.
Para a realização deste trabalho, foi seguida a linha de raciocínio de Tim O`Reilly, que
foi quem iniciou o pensamento da Web 2.0 que se diferencia do modelo anterior (Web 1.0) com
seus sites estáticos e com conteúdo pré-programado para aparecer pro usuário.
Atualmente alguns fatores contribuem para o avanço e melhorias da Web 2.0, tais como:
• Cooperação: não existência do controle dos dados dos sites por meio de pessoas
são realizados com grande freqüência e com uma grande quantidade de usuários.
• Experiência rica para o usuário: as páginas estão cada vez mais leves, rápidas e
interativas, ficando cada vez mais com seu formato próximo aos aplicativos para Desktop;
Além das características citadas acima, são necessários também alguns elementos
cruciais para que um site seja considerado integrante da família Web 2.0, sendo eles:
• Usuário: principal objetivo dos sites, sendo eles os responsáveis por criar, avaliar,
• Conteúdo: a preocupação nessa nova versão da Web não está mais em publicar o
conteúdo, mas sim em criar alternativas que ajudem a selecioná-lo, organizá-lo e distribuí-lo;
que ele possa definir qual a categoria de um determinado site (exemplo http://del.icio.us);
dispositivos;
36
Com essas características e elementos citados acima, os sites que fazem parte da família
Web 2.0, permitem aos seus desenvolvedores construir novos serviços em cima de serviços
plataforma para estes serviços. Para isso, os desenvolvedores devem seguir algumas tendências
como: layout simples, projeção do conteúdo e não da página, utilização de espaços em branco,
A Figura 08 fez um resumo do que é necessário para se ter um site dentro dos padrões da
utilizado pela Web 2.0 e a Filosofia na qual se baseiam os conceitos da Web 2.0. O`Reilly (2005)
diz ainda que “Pode-se ter certeza de que, se um site ou produto depende de publicidade para se
2. AJAX
termo AJAX foi lançado por Jesse James Garrett em um artigo on-line publicado em fevereiro de
consiste em utilizar tecnologias incorporadas que tem como as principais o JavaScript e o XML.
A utilização em conjunto dessas tecnologias, torna possível a criação de páginas que executam
códigos e os apresentam para o usuário sem a necessidade de recarregar a página por completo.
2.1. Conceitos
AJAX é o uso de tecnologias como Javascript e XML fazendo com que o navegador
carregue conteúdo do servidor sem recarregar a página atual, o que torna o navegador mais
tecnologia, são algumas tecnologias trabalhando juntas, onde cada uma faz a sua parte, não sendo
somente um novo modelo, é também uma iniciativa na construção de aplicações web mais
O modelo clássico de aplicação web trabalha de forma que a maioria das ações do
usuário na interface dispara uma solicitação para o servidor web, o servidor realiza o
processamento recuperando dados, realizando cálculos, conversando com outros sistemas e então
retorna a solicitação para o usuário. Enquanto o servidor está fazendo seu trabalho, o usuário está
esperando, e a cada etapa em uma tarefa, o usuário aguarda mais uma vez. Com base em
Gonçalves (2006), a idéia do AJAX é tornar esse processamento do servidor mais simples, ou
seja, se o usuário já está com a página carregada, ele carrega apenas os conteúdos solicitados,
38
conjunto de funções escritas em JavaScript que são chamadas sempre que uma informação
precisa ser pedida ou enviada ao servidor.”. Sendo assim, a maior vantagem das aplicações AJAX
é que elas rodam no próprio navegador então, para estar hábil a executar aplicações com AJAX, é
necessário apenas possuir algum dos navegadores modernos que já oferecem suporte às
tecnologias utilizadas pelo AJAX, sendo os mais populares o Mozilla Firefox, Internet Explorer,
2.2. Aplicações
que era implementado como única solução para a realização de requisições ao banco, submissão
de formulários, validações, enfim tudo que fosse necessário para não realizar um refresh da
· Quando ocorriam erros na página escondida, estes não eram rastreados com facilidade;
· Dificuldade de manutenção;
modificar alguma funcionalidade dela, pois poderiam ocorrer erros em outros locais;
request e receber responses com ilimitadas respostas, ou seja, a comunicação cliente-servidor fica
39
transparente, fazendo com que sem nenhuma dificuldade o desenvolvedor possa acessar métodos
- Validação em tempo real: São validações que não podem ser feitas no navegador do
cliente, pois dependem de informações que estão no servidor, como, por exemplo, verificar se um
- Auto Complete: permite que ao mesmo tempo em que o usuário for digitando, uma
lista de possíveis respostas é apresentada para que o usuário possa escolher alguma resposta.
solicitadas pelo usuário, ao invés de carregar todos os dados na tela novamente ou então
menus, barras de progresso, apresentando uma interface rica semelhante às aplicações desktop ou
implementar jogos sem necessidade de refresh. Um exemplo de interface rica pode ser
visualizado no site Flickr (http://flickr.com/), onde o usuário pode organizar uma coleção de fotos
com diversos recursos, como por exemplo, com utilização de drag n´ drop;
AJAX não é exatamente uma tecnologia, mas um termo que define uma nova
aplicações web onde, segundo Gonçalves (2006), o AJAX é composto pelas seguintes
tecnologias:
incrementais e rápidas na interface do utilizador sem ser preciso recarregar novamente toda a
página. Com isto, se obtém uma maior velocidade nas respostas às ações do usuário, pois não é
preciso recarregar informações que não serão atualizadas, assim podendo criar aplicações web
Como se pode ver na Figura 09, o AJAX é uma combinação de várias tecnologias que
foram apresentadas nos capítulos anteriores como JavaScript, CSS, DHTML e XML.
Além das tecnologias já apresentadas, o AJAX faz uso também de outras tecnologias
A Figura 09 expõe bem como são integradas as tecnologias para a utilização dos
recursos da metodologia AJAX onde são utilizados os conceitos de cada uma das tecnologias e
que irá agilizar, descomplicar e padronizar as aplicações Web. A grande vantagem dos
frameworks é que eles geram o código pronto de muitas operações básicas e com isso os
desenvolvedores de aplicações Web ficam com mais tempo disponível para implementar as
tarefas mais difíceis dos sites, pois das mais comuns, os frameworks já se encarregam.
utilização do objeto XMLHttpRequest. Com isso, é possível que boa parte da implementação
42
necessária para que os módulos interajam com o envio de solicitações entre o cliente e o servidor
Existem dezenas de frameworks para AJAX. Abaixo estão selecionados alguns dos
AJAXLIB
É uma classe escrita em JavaScript e que pode ser utilizada em conjunto com várias
linguagens, como PHP, PERL e JSP. É uma ferramenta simples e indicada para aplicações que
não requerem muitos recursos. Esse produto possui código aberto. (AJAXLIB, 2007)
ASP.NET AJAX
É um framework da Microsoft que vem integrado ao ASP.NET. Com uma biblioteca que
contém vários componentes prontos, ele permite facilmente incorporar no site funções de drag-
controle de painéis na página, blocos sempre visíveis mesmo com rolagem da página, controle de
etc. No site do produto, é possível ver todos os componentes disponíveis para o ASP.NET AJAX
DOJO
foco está no desempenho, por isso é recomendado se o uso de JavaScript for intenso. Possui uma
API complexa e sua documentação não é muito completa. É um dos frameworks mais antigos,
seu desenvolvimento foi iniciado em setembro de 2004 e hoje é considerado um dos produtos
mais maduros. Um recurso que diferencia o Dojo é seu suporte aos botões Voltar e Avançar,
possibilitando registrar um método de retorno de chamada que será acionado se o usuário clicar
no botão Voltar ou Avançar. Esse produto possui código aberto (DOJO, 2007).
43
DWR
O Direct Web Remoting (DWR) é um framework Java para rodar aplicações AJAX.
DWR é um dos mais conceituados frameworks AJAX disponíveis para a plataforma Java. Tudo
A estrutura do código fonte Java fica acessível ao cliente via JavaScript, não existindo
uma distinção entre lado cliente e servidor do ponto de vista do desenvolvedor. Tudo é feito de
ECHO2
HTML, não necessitando que o desenvolvedor saiba HTML ou JavaScript, apenas tenha
conhecimento em Java. O desenvolvimento fica muito parecido com o feito utilizando o Swing.
GWT
Com o Google Web Toolkit (GWT), é possível transformar uma aplicação feita em Java
em aplicações Web com AJAX integrado ao HTML, CSS e JavaScript. A aplicação já fica pronta
Além disso, o GWT oferece bibliotecas prontas para que qualquer um possa colocar os
recursos de AJAX facilmente em seu site sem precisar maiores conhecimentos de programação.
O GWT foi utilizado pela Google para desenvolver os sites Google Maps e Gmail. Pode ser
integrado com qualquer IDE Java. Existem versões do GWT para Linux e Windows (GWT,
2007).
44
MOCHIKIT
também é distribuída com a versão do framework do Python para Web, chamada de TurboGears.
O código do Mochikit é muito limpo e fácil de utilizar. Sua estrutura de log é muito boa
(MOCHIKIT, 2007).
PROTOTYPE
direto e bem desenvolvido, uma vez que foi desenvolvido para Ruby on Rails. O Prototype é um
dos framework mais utilizado. O que contribui para isso é a facilidade de uso de suas funções e
sua documentação bem detalhada. Seu código é todo escrito em JavaScript. Esse produto possui
SAJAX
lado do servidor. Possui implementações para PHP, ASP, ColdFusion, Perl, Python, Ruby entre
SYMFONY
XAJAX
XAJAX é uma biblioteca de funções em PHP para facilitar o uso de AJAX. São
bibliotecas desenvolvidas como software livre. Os Frameworks SAJAX e XAJAX possuem uma
diferença básica, enquanto no SAJAX o retorno é tratado em uma função JavaScript, no XAJAX
45
o retorno é feito em uma função do PHP, assim como os comandos e eventos adicionados são
funcionar muito bem nos três principais navegadores: Internet Explorer, Firefox e Opera
(XAJAX, 2007).
XOAD
característica principal ser orientado a objetos. Utiliza JSON e objetos PHP para fazer a
comunicação entre cliente e servidor. Possui uma documentação bem completa, descrevendo
todas as suas classes, métodos e variáveis. No site oficial, podem ser encontrados vários
exemplos de utilizam deste framework. Esse produto possui código aberto (XOAD, 2007).
Yahoo! UI
A biblioteca Yahoo! UI (YUI) foi desenvolvida pelo Yahoo! para desenvolvimento dos
seus sites e teve seu código aberto junto com uma gama de recursos excelentes para
desenvolvedores. O YUI é mais uma coleção distinta de "utilidades" do que uma biblioteca, com
cinco scripts principais que tratam de: animação, AJAX, manipulação DOM, drag-and-drop,
tratamento de eventos. Existem seis controles, chamados de: Calendar, Slider, Menu,
AutoComplete, TreeView, Container classes (com o qual é possível executar janelas no estilo de
widgets). Todos esses controles possuem exemplos no site do Yahoo para serem baixados. É um
framework voltado para aplicações menores, pois não possui muitos recursos (DEVELOPER,
2007).
2.6. XMLHttp
Segundo cita Gonçalves (2006), o XMLHttp foi desenvolvido pela Microsoft em 2001
46
como um objeto ActiveX (objetos de programação proprietários da Microsoft) lançado junto com
a biblioteca que suportava o XML para o navegador Internet Explorer, o objeto XMLHttp foi
incluído com a intenção de nada além de manipular objetos XML. Com a propriedade de
manipular objetos XML através de um objeto trabalhando em conjunto com o JavaScript, tornou-
não conseguiam utilizá-lo nativamente. Ao invés do Mozilla permitir acesso aos objetos ActiveX,
eles desenvolveram o seu próprio objeto que segundo Gonçalves (2006, p. 5) “ [...] reproduziram
nativo” possibilitando que esse objeto se tornasse portável para outros sistemas operacionais.
2.7. XMLHttpRequest
XMLHttpRequest é biblioteca permite que requisições HTTP sejam feitas via GET ou
POST sem que haja a necessidade de um refresh na página. E o resultado pode ser obtido como
trazer dados via método GET, são requisições feitas através da URL como, por exemplo:
inicialmente está o nome do programa a ser utilizado, seguida por um caractere de interrogação
“?”, o nome da variável, um sinal de igual que indica a atribuição de valor para a variável e o
As requisições via método POST são, de acordo com Gonçalves (2006, p.107), “[...]
47
muito similar ao pedido via GET, mas se diferencia pela quantidade de que podem ser
transmitidas por essa forma”, porém, utilizado para o envio de dados ao servidor. Um exemplo
pode notar existe o caractere especial & “e-comercial” que é o separador padrão para o envio de
apresentados nos exemplos a seguir. São eles: open, send, onreadstatechange, readState,
método setHeader define o nome da propriedade e o seu valor para o envio do cabeçalho do
cabeçalho, existem ainda o método getAllResponseHeaders que retorna não apenas uma
cabeçalho. Por fim, existe o método abort, que serve para interromper a requisição atual.
2.8. Funcionamento
página HTML, o navegador do cliente realiza uma chamada assíncrona por um objeto
XMLHttpRequest que pode retornar ao servidor web para buscar documentos XML. Após obter
este documento XML, se utiliza JavaScript para atualizar o DOM (modelo de objeto) da pagina.
Com isto o usuário obtém a atualização da página sem precisar recarregá-la totalmente.
48
2.9. Exemplos
(2006).
conforme é demonstrado na Listagem 01. Após o objeto ter sido instanciado, o próximo passo é
iniciar a comunicação com o servidor, sendo nesta fase que se é utilizado o método OPEN do
objeto criado permitindo abrir um documento, passar argumentos e receber uma resposta.
Analisando o código da Listagem 01, é possível perceber na segunda linha que a página
‘informacoes.xml’ está sendo aberta no segundo par6ametro por meio do método GET passado
no primeiro parâmetro da segunda linha, sendo esses dois parâmetros obrigatórios. É possível
também utilizar o método POST nesse momento, porém ele é mais utilizado quando existem
muitos parâmetros a serem passados à próxima página. É possível ainda, passar outros três
Nesse momento é acionado o método SEND que envia de fato os dados ativando a
aceitando apenas um único argumento, que é uma string para o envio. Caso não haja um envio, é
necessário que seja passado o valor null que é o mesmo que passar um valor em branco como
objXMLHttpRequest.send(NULL);
retorno das informações, que podem ser efetuados pelas propriedades responseText e
responseXML.
no modo de um texto, enquanto que a propriedade responseXML retorna um objeto DOM para
que posteriormente possam ser trabalhadas estas informações. Este retorno das informações pode
resposta = objXMLHttpRequest.responseXML;
Até o momento, foi apresentada a sequência padrão para a utilização do AJAX, porém,
como a comunicação é feita de forma assíncrona, ou seja, os dados não necessariamente são
carregados ao mesmo tempo em que a página web é apresentada, é necessário verificar em que
momento os dados requisitados estão prontos para serem mostrados na tela do usuário. Para essa
verificação, é utilizada a propriedade onreadstatechange que permite atribuir uma função que é
chamada de acordo com a mudança de estado do documento. Esta atribuição de função pode ser
objXMLHttpRequest.onreadstatechange = processadorMudancaEstado;
sempre que houver uma mudança no estado do documento que é verificada através da
0 – Não iniciado: O Objeto foi criado, mas o método Open() ainda não foi chamado;
1 – Carregando: O método open() foi chamado mas o pedido ainda não foi enviado;
Segundo Gonçalves (2006, p. 117), “Toda vez que a propriedade do readState muda de
valores, é possível verificar cada iteração que ocorre no documento, mas o valor mais utilizado é
o 4, quando o processo está completado, pois neste momento se pode saber se a comunicação foi
estadoObj = objXMLHttpRequest.readState;
Porém, se faz necessário ainda se assegurar que o resultado da resposta é 200, pois
mesmo recebendo um retorno de documento completado, não é possível ter a certeza que este
retorno é o esperado ou não, pois, a propriedade status informa, dentre outros códigos, o 404 e o
estadoServidor = objXMLHttpRequest.status;
Com os exemplos apresentados até o momento, já é possível abrir uma conexão com o
servidor, enviar parâmetros para processamento, receber o retorno das informações fornecidas
pelo servidor e saber qual o momento certo para mostrar o retorno para o usuário. O próximo
passo é mostrar as informações no navegador do usuário que está acessando a página. Esse
51
processo pode ser realizado por meio da propriedade innerHTML do JavaScript conforme pode
document.getElementById(‘div_conteudo’).innerHTML = objXMLHttpRequest.responseText;
Neste momento foram apresentados todos os elementos básicos, mas completos para
if (objXMLHttpRequest) {
objXMLHttpRequest.onreadystatechange = processadorMudancaEstado;
objXMLHttpRequest.open("GET", "/dados.html");
objXMLHttpRequest.setRequestHeader('Content-Type','text/xml');
objXMLHttpRequest.setRequestHeader('encoding','ISO-8859-1');
objXMLHttpRequest.send(null);
}
}
(…)
52
(…)
function processadorMudancaEstado () {
if (objXMLHttpRequest.readyState == 4) { // Completo
if (objXMLHttpRequest.status == 200) { // resposta do servidor OK
document.getElementById ( "div_conteudo"). innerHTML =
objXMLHttpRequest.responseText ;
} else {
alert( "Problema: " + objXMLHttpRequest.statusText );
}
}
}
}
2.10. Limitações
Do mesmo modo que o uso do AJAX tem muitos benefícios conforme citado
anteriormente, ele também tem algumas desvantagens. Um dos problemas no uso de AJAX que
pode ser facilmente verificado é a questão de a navegação do usuário não fica no histórico do
navegador, com isso, se o mesmo desejar usar o botão voltar do navegador, poderá não ter o
resultado esperado.
Existe ainda uma desvantagem no uso do AJAX que está diretamente ligada na
utilização do JavaScript.
53
Outra questão que pode gerar confusões é de o usuário não estar preparado ou
familiarizado com AJAX, ou seja, estar esperando por uma reação do navegador enquanto
acontece outra. No caso de uma mudança de página, o usuário pode estar esperando que toda a
página faça o refresh e, com o AJAX, somente o conteúdo necessário altera. Desta forma, pode
acontecer de o usuário não perceber que o conteúdo já alterou e ficar aguardando muito para
Para que esse tipo de situação não aconteça, é necessário fazer alguma ação para que o
usuário perceba que algo mudou, como por exemplo, no caso do Gmail do Google, onde para
cada mudança de página, ele apresenta a mensagem “Carregando...”. Isto faz com que o usuário
3. ESTUDO DE CASO
fornecida pelas extensões AJAX 1.0 da Microsoft ao ASP.NET 2.0. Esta aplicação faz acesso ao
banco de dados SQL Server é utilizada a IDE de desenvolvimento Visual Studio 2005 juntamente
com a biblioteca ASP.NET AJAX 2.0, para a visualização será utilizado o navegador Firefox.
componentes de bibliotecas das classes .NET que oferecem suporte do lado do servidor e os
arquivos JavaScript que dão suporte do lado do cliente do ASP.NET 2.0 AJAX Extencions 1.0 que
para desenvolvimento, um projeto de Web Site a nova aba AJAX Extencions que contém
componentes utilizados para o desenvolvimento de aplicações com AJAX. Este estudo de caso
mostrará a facilidade que um framework fornece para adicionar algumas funcionalidades AJAX
Para iniciar com a aplicação, deve-se abrir o Visual Studio e selecionar um novo projeto
escolhendo New Web Site. Na caixa de diálogo, deve ser escolhida a opção ASP.NET AJAX
Construindo a interface
Abaixo pode ser vista a Listagem 09 que contém todo o código correspondente à
definidas do documento CSS mais adiante. A Figura 10 mostra como é a apresentação da página
disposto anteriormente, dentro do Visual Studio, na janela onde fica definida a estrutura do
projeto, a Solution Explorer deve-se clickar com o botão direito e selecionar a opção Add
ASP.NET Folder e o subitem Theme. Será criada uma pasta com o nome Theme que servirá para
definir um padrão, deve ser modificada para “Padrao” e nesta pasta deverá ser configurado o
padrão para a aplicação. Para adicionar uma folha de estilos, deve ser adicionado um novo Web
Site e ser renomeado para “Estilos.css”. Dentro de Estilos.css deve ser adicionado o código que
body, select {
background-color:White;
font-family: Verdana, Arial, Helvetica, Sans-Serif;
font-size: 9pt;
}
select {
border: solid 1px #00460A;
}
59
table.dados {
border: solid 1px #00460A;
border-collapse: collapse; width: 100%;
}
table.dados tr th
. table.dados tr td {
border: solid 1px #00460A; padding: 3px;
}
table.dados tr th {
border: solid 1px #00460A; color: White;
}
table.dados tr.alt. td {
background-color: #B7D5AB;
}
Mesmo depois de criado o arquivo CSS com o código acima, se a aplicação for
executada, os padrões definidos no CSS não serão apresentados. Isso ocorre porque a folha de
estilos ainda não foi vinculada com a página Default.aspx, para que esses padrões sejam
utilizados pela aplicação, deve ser inserido dentro da diretiva @Page da página Default.aspx o
atributo StylessheetTheme que é o atributo responsável pelo vínculo da folha de estilos CSS com
A Figura 11 mostra como vai ficar a página dinâmica Default.aspx depois de aplicada a
dados do banco de dados os objetos incluídos na página. Para isso, serão utilizados os assistentes
disponibilizados pelo Visual Studio, não havendo a necessidade de escrever uma única linha de
código.
AutoPostBack. Feito isso, para abrir o assistente para conectar no banco de dado, deve-se clicar
em Choose Data Source que aparecerá a janela Configuration Wizard. Na lista Select a data
source, escolhendo a opção New data source, aparecerá a tela Choose a Data Source Type. Deve-
61
Será apresentada a tela Choose Your Data Source Connection, deve-se clickar em New
Para essa aplicação foi desenvolvido o banco de dados “Usuarios” no SQL Server 2005
com apenas duas tabelas, sendo uma para armazenamento dos grupos de usuários e a outra para o
As informações para a conexão com o banco de dados devem ser informadas e acertadas
até que apareça a mensagem Teste connection succeeded ao clickar no botão Test Connection.
Após isso aparecerá uma mensagem perguntando se aceita salvar a string de conexão no arquivo
Web.config, é necessário confirmar e clickar em Next. A tela de Configure the Select Statement,
deve-se escolher a opção Specify a custom SQL statement os stored procedure e clickar em Next.
A próxima tela que irá aparecer é a Define Custom Statements or Stored Procedures, a opção
SQL Statement deve estar marcada e no campo destinado deve-se digitar a instrução SQL que
está definida na Listagem 12 que retorna os grupos e seus códigos. Depois, deve-se clickar em
Test Query para testar a consulta que deve apresentar um Grid com as colunas id_grupo e
descrição. Feito isso, deve-se clickar em Finish para terminar a configuração da fonte de dados
62
A tela Choose a Data Source será mostrada novamente, porém, a lista Select a data
source estará preenchida com a fonte de dados SqlDataSourceGrupos. Na lista Select a data
Field to display in the DropDownList, o campo descricao deve ser selecionado e na lista Select a
data Field for the value of the DropDownList deve-se escolher o campo código. Feito isso, deve-
Para testar se tudo foi configurado da maneira correta, basta executar a aplicação e
código da Listagem 13, que é uma instrução que retorna os Usuários pertencentes ao Grupo
selecionado.
SELECT id_usuario, nome FROM usuario WHERE id_grupo = @id_grupo
será utilizado para informar o código do grupo que está sendo realizada a busca. Por existir este
parâmetro a ser passado, será apresentada a janela Define Parameters onde deve ser selecionado
o parâmetro id_grupo para se definir que o valor do parâmetro deve se obtido por meio do valor
opção DropDownListGrupos em ControlID. Feito isso, deve-se clickar em Next e depois em Test
Query para testar a consulta parametrizada. A janela Parameter Values Editor deve ser
apresentada para que seja informado um valor para o parâmetro na coluna Value para realizar um
teste de consulta que deve apresentar um Grid com as colunas id_usuario e nome.
63
tela Define Custom Statements or Stored Procedures deve-se informar o código da Listagem 14
que corresponde a uma busca que retorna o Codigo, Nome, Rua, Numero, Cidade, Estado, Email,
Usuario. Porém, esta consulta possui dois parâmetros que são @id_usuario e @id_grupo que
Como essa consulta possui parâmetros, novamente a janela Define Parameters será
apresentada para serem definidos os parâmetros. Para o parâmetro id_grupo, deve ser defino a
Até o momento foram utilizados apenas os assistentes do Visual Studio para inserção
das funcionalidades, não sendo necessário escrever uma linha de código para isso.
Serão adicionadas algumas linhas de código para que a LabelUsuario seja atualizada do
lado do servidor com o nome do usuário escolhido. Nos códigos da página Default.aspx, é
necessário acrescentar a propriedade Text ao rótulo com o valor definido do lado do servidor tal
64
deve ser adicionado o código da Listagem 16 para que exista a atualização do dado vinculado ao
rótulo.
ASP.NET AJAX.
O ScriptManager é uma das principais partes do ASP.NET AJAX 2.0 Extensions 1.0,
sendo responsável por gerenciar os recursos do AJAX na página ASP.NET, tais como baixar o
JavaScript da biblioteca AJAX e coordenar as atualizações parciais nas páginas que são
habilitadas com o uso do UpdatePanel, sendo muito importante que o ScriptManager seja
colocado na página ASPX antes de qualquer outro controle que necessite dele como o
UpdatePanel que provoca um retorno ao servidor web (postback) que são automaticamente
desse painel.
atualização parcial da página que melhora a experiência do usuário por motivos como a
ScriptManager que fica na aba AJAX Extencions do ToolBox para a parte inicial da página. Feito
isso, o componente UpdatePanel deve ser utilizado para delimitar a região de atualização parcial
da página. Na aplicação web Default.aspx, foram utilizados dois UpdatePanel, sendo o primeiro
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
ambos os UpdatePanel as propriedades ChildrenAsTrigger para False o que não permitirá que
66
seja realizado um retorno ao servidor web pelo controle que está dentro dele, alterar a
propriedade UpdateMode para o valor Conditional que indica que o controle deve ser atualizado
escolhido e após selecionar um dos usuários listados, a GridViewUsuarios irá exibir os dados
sem essa funcionalidade, o usuário pode não perceber que a informação já foi carregada e ficar
aguardando a página recarregar por completo, como ele está acostumado. Para evitar esse tipo de
situação, é possível apresentar uma mensagem informativa ao usuário toda vez que houver uma
de atualização parcial da página. Este controle pode sempre ser utilizado em conjunto com um
UpdatePanel para informar ao usuário sobre as atualizações parciais. Para utilização na aplicação
web, o UpdateProgress mostrará ao usuário uma mensagem informativa quando provocada uma
progresso sobre o formulário HTML de filtragem dos usuários por grupo que pode ser definido
atraso em milissegundos de cada controle deve ser alteradas de “500” para “0”, fazendo com que
a mensagem de progresso seja mostrada imediatamente quando uma chamada assíncrona for
realizada ao servidor para atualizar o painel associado, de forma que o código deve ficar como o
da Listagem 18.
<asp:UpdateProgress
ID="UpdateProgressUsuariosGrupo"
runat="server"
AssociatedUpdatePanelID="UpdatePanelUsuariosGrupo"
DisplayAfter="0">
<ProgressTemplate>
<div class="mensagemProgresso">
Carregando os Usuarios do Grupo...
</div>
</ProgressTemplate>
</asp:UpdateProgress>
<asp:UpdateProgress
ID="UpdateProgressUsuario"
runat="server"
AssociatedUpdatePanelID="UpdatePanelUsuario"
DisplayAfter="0">
<ProgressTemplate>
<div class="mensagemProgresso">
Carregando os dados do Usuario...
</div>
</ProgressTemplate>
</asp:UpdateProgress>
feita ao servidor e a aplicação aguarda para receber estas informações para atualizar apenas a
progresso que a aplicação está aguardando uma resposta do servidor para carregar a parte da
página referente à requisição que, no caso, são os dados do Usuário para serem carregados na
tela.
Com este exemplo de aplicação Web, foi possível perceber que a utilização do AJAX
em uma aplicação Web a torna mais rica, interativa e rápida. A utilização do framework da
Microsoft para o desenvolvimento AJAX permite criar interfaces mais ricas. Outro ponto que
pode ser notado é a agilidade que a utilização do Visual Studio juntamente com o framework
trabalhoso de desenvolver.
70
A complexidade escondida pela utilização do framework ASP.NET AJAX pode ser vista
nos exemplos citados anteriormente onde, cada objeto deve ser instanciado na aplicação e
atribuído seus valores. Com a utilização do framework, isso fica mais fácil, pois, que faz o
como acesso a arquivos XML, controles do lado do servidor e manipulação de dados remotos,
funciona corretamente com os principais navegadores da atualidade, como: Internet Explorer 5.0
ou superior, Firefox 1.0 ou superior, Apple Safari 1.2 ou superior, Opera 8.0 ou superior e o
CONSIDERAÇÕES FINAIS
As aplicações web utilizam cada vez mais de recursos visuais e mesmo com essa
preocupação e a popularização da internet banda larga, muitas dessas aplicações não tem se
preocupado com a forma que o usuário irá enxergar as informações apresentadas, e por isso,
acabam trazendo informações desnecessárias aumentando o tráfego na rede, o que não é muito
agradável ao usuário.
desenvolvimento AJAX, oferecendo informações sobre o que ela é, como ela funciona, onde
utilizá-la e suas limitações com alguns exemplos de empresas que a utilizam o conceito da Web
que envolvem esta metodologia de desenvolvimento como, por exemplo, HTML, JavaScript,
Foi apresentado por último um estudo de caso que teve por objetivo, além de mostrar
como implementar uma aplicação web, mostrar também uma framework que auxilia e facilita o
desenvolvimento de uma aplicação web utilizando o AJAX e por último foram dispostos os
Como foi possível verificar por todo o trabalho, o AJAX não é uma tecnologia de
desenvolvimento, mas sim, uma metodologia. Isso porque, as tecnologias que englobam esta
metodologia já são utilizadas há bastante tempo, porém, o nome AJAX foi lançado apenas em
fevereiro de 2005 por Jesse James Garrett na mesma época que Tim O’Reilly lançava o conceito
da Web 2.0, sendo mais dinâmica e voltada para o usuário visando a inteligência coletiva.
72
REFERÊNCIAS
ASLESON Ryan; SCHUTTA, Nathaniel T. Fundamentos do Ajax. Rio de janeiro: Alta Books,
2002.
BUENO, Luiz Henrique; SCHAAF, Sergio. Aplicações Web com Visual Studio .NET,
DEITEL, Harvey M.; DEITEL, Paul J. Java Como Programar . Porto Alegre: Bookman, 2003.
2007.
TURTSCHI, Adrian; WERRY, Jason; HACK, Greg. C#.Net - Guia do Desenvolvedor Web.
XOAD. 2007. Disponível em: < http://www.xoad.org>. Acesso em: out. 2007.
YAHOO Mail. 2007. Disponível em: <http://mail.yahoo.com.br>. Acesso em: out. 2007.