# ASP.NET AJAX

ASP.NET AJAX, antes era chamado de Atlas, é um conjunto de extensões para o ASP.NET desenvolvido pela Microsoft para a implementação da funcionalidade Ajax. É lançado sob a Microsoft Public License (Ms-PL).

## Clientes que suportam o Ajax

ASP.NET AJAX é executado nos seguintes navegadores:
* Microsoft Internet Explorer (>= 6.0)
* Mozilla Firefox (>= 1.5)
* Opera (>= 9.0)
* Apple Safari (>= 2.0)
* Google Chrome (>= 5)

## ASP.NET AJAX Suite

Atualmente, o ASP.NET AJAX suite consiste dos seguintes componentes e pacotes:
* A Microsoft agora lançou a biblioteca Ajax 4.0, que oferece suporte a Aplicações Web Orientadas a Dados (Data Driven Web Applications).
* Microsoft Ajax Library (biblioteca) 3.5, que é uma biblioteca JavaScript que fornece as funcionalidades do cliente-side do ASP.NET AJAX framework. Integrado no ASP.NET 3.5, a biblioteca também está disponível como um download separado para usar em outros ambientes, como PHP.
* Um server framework – incluído em ASP.NET 3.5 – para a criação de controles de servidor ASP.NET habilitados para AJAX. Esses componentes também estão disponíveis para ASP.NET 2.0 em um pacote separado chamado ASP.NET AJAX 1.0 Extensions.
* ASP.NET 2.0 AJAX Templates, um pacote com um conjunto de modelos do Visual Studio para a construção de aplicações ASP.NET AJAX com ASP.NET 2.0 e o Visual Studio 2008.
* ASP.NET AJAX Preview, um pacote com novas funcionalidades que farão parte das futuras versões do framework.

## Biblioteca do Microsoft Ajax

A biblioteca do Microsoft Ajax (Microsoft Ajax Library) é uma biblioteca JavaScript que fornece os recursos para a parte do cliente do framework ASP.NET AJAX.
* Components – A biblioteca fornece uma infraestrutura para construir componentes JavaScript visuais ou não visuais. Um objeto JavaScript global de – Sys.Aplicação – é responsável por gerenciar o ciclo de vida dos componentes de cliente.
* JavaScript extensions – Um avançado sistema de tipo é introduzido para emular orientada a objeto construções como namespaces, classes e interfaces; e para realizar a reflexão sobre tipos de cliente.
* Abstraction API – operações Comuns no DOM (recuperar elementos, definição de estilos e outras manipulações) são automaticamente convertidos pela biblioteca no navegador chamadas específicas.
* Ajax – Um conjunto de componentes de cliente é fornecido para lidar com requisições Ajax e web-serviço de chamadas.
* Application Services – A biblioteca permite acessar os serviços de associação, autenticação, funções e perfil do ASP.NET do client-side.
Recentemente, novas funcionalidades têm sido anunciadas como parte do lançamento do ASP.NET AJAX 4.0:
* Template Engine – Permite a exibição de dados no client-side usando modelos HTML e uma notação de vinculação personalizada . Esta abordagem evita a execução da renderização de páginas do server-side.
* Declarative instantiation of client components – Permite o registro, a instanciação e a configuração de componentes do cliente usando o código de marcação, sem escrever nenhum código imperativo JavaScript.
* Live Bindings – Sincronizar "propriedades do elemento".

## O Controle UpdatePanel

O UpdatePanel é um controle de servidor ASP.NET que atualiza partes de uma página web sem recarregá-la. Através de um mecanismo chamado postback assíncrono, o HTML para a região da página envolvida pelo controle é enviado pelo servidor de forma assíncrona através de uma solicitação Ajax (Ajax request).
Os controles ASP.NET que foram especificados como conteúdo em um UpdatePanel são capazes de causar postbacks síncronos (tradicional) ou assíncronos, por meio de gatilhos (triggers).
Um trigger é um evento que vem de um controle ASP.NET que faz com que um UpdatePanel atualize seu conteúdo. Através de triggers, um postback assíncrono pode ser iniciado também por controles que são declarados fora da região da página ASP.NET encapsulada pelo controle UpdatePanel.
No código a seguir, apenas o conteúdo do controle de Atualização (Update) (o elemento span que exibe a data e hora atual) é reprocessado a cada vez que o botão é clicado.

## Web-services e JSON

ASP.NET AJAX framework traz recursos do JSONserialization para o ASP.NET web-services e permite a chamada de web-services a partir do client-side JavaScript, até mesmo de terceiros usando bibliotecas do JavaScript, como o jQuery.