sexta-feira, 26 de agosto de 2011

ASP.NET AJAX

AJAX é uma plataforma independente, a tecnologia ECMAScript-compatível para a comunicação entre o código em execução no cliente e código em execução no servidor.

ASP.NET inclui um conjunto de controles de servidor para trabalhar com AJAX e um conjunto de arquivos do lado do cliente JavaScript chamado de Microsoft AJAX Library.

O ScriptManager (ou ScriptManagerProxy) o controle é necessário em todas as páginas que trabalham com as extensões AJAX para ASP.NET. Ele gerencia os arquivos JavaScript enviado para o cliente ea comunicação entre o servidor eo cliente.

O controle UpdatePanel permite definir uma área dentro de sua página que pode PostBack para o servidor e receber atualizações independente do resto da página.

O controle UpdateProgress é usado para fornecer um aviso ao usuário que a página foi iniciada uma chamada de volta para o servidor.

Timer control é é usado para enviar periodicamente um pedido de página parcial (usando um UpdatePanel) para o servidor em intervalos programados.

Working with the ASP.NET AJAX Library

Como você viu, você pode criar sua própria JavaScript e incorporá-lo em um page.However ASP.NET, JavaScript pode ser um desafio para o programa, especialmente se você está acostumado a desenvolver em um mundo orientado a objeto, tendo um sistema de tipos forte , trabalhando com um framework, ou ter de tratamento de erros e depuração de apoio. O Microsoft AJAX Library ajuda a resolver essas questões, dando apoio para esses itens na forma de uma biblioteca invólucro para o JavaScript linguagem.

Esta seção fornece uma visão geral do Microsoft AJAX Library. Em seguida, ele aborda como você pode aproveitar esta biblioteca para criar controles AJAX-enabled de servidor , componentes do cliente, e comportamentos que podem ser anexados a controles cliente.

O Microsoft AJAX Library é escrito em JavaScript. É um conjunto de arquivos que são a saída para o navegador para fornecer uma base de recursos em que você pode construir. Esses arquivos são automaticamente saída pelo ScriptManager na página. O ScriptManager determina quais arquivos são necessários e gere a sua inclusão na saída. Você não conseguir o apoio da Biblioteca Microsoft AJAX sem um ScriptManager em sua página ou por meio da inclusão explícita desses arquivos.

O Microsoft AJAX Library destina-se a fazer o seu JavaScript mais robusto, mais fácil de escrever, e mais reutilizável. A seguir estão as principais características e benefícios da biblioteca:

- Suporte Orientação a objeto . A biblioteca permite definir namespaces; construir classes que contêm os campos, propriedades e métodos; criar manipuladores de eventos; implementar a herança e interfaces; use tipos de dados e enumerações; e suporte a reflexão.

- Classes básicas. A biblioteca inclui um namespace global que fornece extensões para os tipos base JavaScript incluindo String, Número, Data, Boolean, Array e Objeto. Ele também adiciona a classe Type para a linguagem para registrar namespaces, classes, e muito mais.

- Um framework (ou conjunto de namespaces). O Microsoft AJAX Library inclui uma raiz namespace chamado Sys que contém classes e outros namespaces que fazem a programação de aplicações AJAX mais fácil. Pense no namespace Sys como um do lado do cliente equivalente ao do sistema na Microsoft. NET Framework (embora obviamente não tão rico). Outros namespaces incluem Sys.Net, Sys.Services, Sys.UI, Sys.WebForms e Sys.Serialization.

-Compatibilidade do navegador. JavaScript é uma linguagem dirigida a padrões. No entanto, existem múltiplas peculiaridades das implementações daquela linguagem entre navegadores, assim como há para HTML. A Microsoft AJAX biblioteca leva isso em conta e tem suporte embutido para compatibilidade com o browser Internet Explorer, Firefox e Safari.

- Depuração e tratamento de erros. O Microsoft AJAX Library inclui debugging extensões para fazer depuração mais fácil. Na verdade, existem duas versões da biblioteca: uma versão release e uma versão de depuração. Além disso, a biblioteca inclui um objeto de erro estendido que fornece mais informações de erro. Ele também inclui suporte rastreamento com Sys.Debug.trace.

- Apoio a globalização. O Microsoft AJAX Library suporta a construção global, scripts de cliente localizada para trabalhar entre linguagem e cultura. Sua única base de código JavaScript pode, então, fornecer suporte UI localizada sem postagem de volta para o servidor. Isto é conseguido através métodos de formato de datas e números que trabalham com as configurações de idioma e cultura no navegador.

Aplicações AJAX


As Aplicações WEB Tradicionais

Para entender corretamente o que é o AJAX é preciso ter a compreensão dos desafios que ele se propõe a resolver.

Para isso é fundamental ter uma visão das limitações impostas pelo ambiente WEB anteriormente ao AJAX.

Aplicações web tradicionais centralizavam todo seu código em torno de uma arquitetura de cliente-servidor e um cliente-magro. Todo o processamento é realizado no servidor, e o cliente apenas utiliza uma tela estática, neste caso em HTML (HiperText Markup Language) .

Os navegadores Web foram projetados para ser o lado cliente, que utilizam normalmente o protocolo HTTP (HiperText Transfer Protocol) para enviar uma requisição e recebem do servidor uma resposta. Não há possibilidade de o servidor tomar a iniciativa para se comunicar com o cliente.

A figura 1 demonstra o fluxo de comunicação entre o navegador e o servidor.

Figura 1


As principais características deste tipo de processamento são:

  • o processamento ocorre integralmente no lado do servidor
  • o modelo de dados do usuário precisa ser gravado no servidor, na sessão do usuário
  • as páginas são reexibidas por inteiro, mesmo nos casos de pequenas alterações em seu conteúdo
  • Em função do protocolo HTTP não é possível a comunicação partir do servidor
  • a comunicação é síncrona, ou seja, uma requisição só pode ser iniciada quando a anterior tiver sido concluída

Estas características das aplicações Web tradicionais produzem desvantagens seja para o lado cliente (navegador), seja para o lado do servidor. O usuário fica impossibilitado de realizar qualquer ação até que a requisição seja integralmente processada. O servidor precisa processar toda a página a cada requisição. Finalmente o tráfego de rede é intensificado com grande volume de informações repetitivas.

Embora as aplicações Web tenham demonstrado vantagens, tais como acesso fácil, custos reduzidos, facilidade de atualização e menores requisitos de hardware e software, as aplicações desktop se destacavam pela grande capacidade de interação com os usuários.


O que é o AJAX

Durante muito tempo as GUIs – Interfaces Gráficas do Usuário – dominaram a informática. Os profissionais da Web estavam sempre tentando convencer o mundo de que, para a maioria dos programas, uma interface Web era o bastante. Mas os usuários estavam acostumados a certas características, como campos que são completados automaticamente, ou o arrastar e soltar, que eram impossíveis na Web.

O AJAX, na realidade, estava à disposição dos desenvolvedores desde 1998. Entretanto, fazia-se necessário um olhar mais atento para se descobrir suas funcionalidades. O termo “AJAX” consiste de um acrônimo de Asynchronous JavaScript And XML (JavaScript e XML assíncronos).

Curiosamente sua existência se deve a uma dessas famosas violações dos padrões que a Microsoft costuma realizar com seus produtos.

Foi a introdução de uma biblioteca que permitia fazer consultas usando protocolo HTTP de maneira autônoma e assíncrona, utilizando os recursos da linguagem JavaScript para trazer informações de diversas páginas, de maneira independente, além de fazer que um determinado código permanecesse em execução respondendo a eventos, que criou a possibilidade do navegador trazer informações que estavam no servidor, sem a necessidade recarregar toda a página.

O próximo passo para a montagem do “quebra-cabeça” seria a possibilidade de alterar o conteúdo de uma página em tempo real, de forma simples e estruturada. Neste contexto, o DOM (Document Object Model), permitia a consulta e edição ao conteúdo de uma página, através da visão hierárquica de seus componentes.

Para contribuir ainda mais com a construção de uma solução apropriada, os programadores começaram a utilizar o XML para promover a interoperabilidade entre servidores remotos que possuíam características tecnológicas distintas.

Basicamente, uma vez carregada a página Web, temos em mãos todas as possibilidades de programação de uma GUI tradicional. E tudo isso sem a necessidade de plugins nem instalações. Toda essa tecnologia estava em nossos computadores, esperando para ser usada.

Dessa forma, estava aberta a possibilidade de levar para o ambiente WEB as mesmas funcionalidades de já existiam nas aplicações desktop.

O AJAX, portanto, não é um framework, nem uma API, nem uma tecnologia isolada. Na verdade, o AJAX é um conjunto de quatro tecnologias que se complementam visando tornar os aplicativos Web mais responsivos, aproximando-os das características de um ambiente desktop.

As tecnologias utilizadas na construção de aplicativo AJAX são:

JavaScript

É uma linguagem de script, sendo considerada atualmente a principal linguagem de programação “client-side” em navegadores Web. Possui recursos de orientação a objetos, baseada em protótipos, com variáveis dinâmicas e fracamente tipadas.

Cascade Style Sheets (CSS)

É uma linguagem de estilo utilizada para definir a apresentação de documentos escritos em formato de marcação de texto, como HTML ou XML. A CSS possibilita uma separação entre conteúdo e apresentação

Document Object Model (DOM)

É uma especificação da W3C (World Wide Web Consortium) , independente e plataforma e linguagem, utilizada para organizar um documento de forma hierárquica, que permite consultar e alterar dinamicamente sua estrutura, conteúdo e estilo.

Objeto XMLHttpResponse

É uma ferramenta de uso geral que permite ao navegador recuperar dados do servidor como uma atividade de segundo plano (background).



A integração dessas tecnologias ocorre na forma esquematizada na figura 2.

Figura 2

O JavaScript assume papel central, responsabilizando-se pela lógica e pela integração das tecnologias subjacentes.

Através do DOM é possível acessar e modificar qualquer componente da página em tempo real.

A CSS facilita a padronização e a modificação da aparência de um aplicativo Web.

Por fim, o objeto XMLHttpResponse fornece toda a estrutura para a implantação de programação assíncrona e orientada a eventos.

A utilização do AJAX altera o papel tradicional do navegador Web, projetado originalmente para ser um cliente “burro”, transformando-o em “aplicativo cliente” e delegando-lhe parte da lógica que estava integralmente confinada nos servidores.

A figura 3 demonstra o novo fluxo de comunicação entre o navegador e o servidor.




Dessa forma, o AJAX vem transformando pouco a pouco todas a páginas Web e a maioria dos currículos dos profissionais de desenvolvimento de softwares.