Vantagens escondidas do AJAX/Atlas

 

Em artigo anterior, já manifestei a opinião que simpatizo com a criação de interfaces com usuário baseadas em tecnologia SmartClient, como o ClickOnce do .NET Framework. Esse tipo de interface traz vantagens de produtividade no desenvolvimento, economia de largura de banda, possibilidade de trabalhar off-line, tudo com um resultado final muito interativo e bem acabado. Contudo, me parece que a onda em torno do AJAX, uma tecnologia Web, é irresistível. Vamos então falar de AJAX.

AJAX quer dizer Asyncronous JavaScript and XML. A idéia principal do AJAX é permitir que uma página Web se comunique com o servidor sem recarregar a página inteira, facilitando assim a criação de interfaces com o usuário mais “espertas”. No entanto, acho que o AJAX acabará trazendo outros benefícios além dessa capacidade de atualizações assíncronas das páginas.

 

A biblioteca ASP.NET do .NET Framework tem um modelo de trabalho bem interessante: os componentes, e não o seu aplicativo, são responsáveis por tratar a entrada, manter estado e gerar saída. Os componentes podem gerar qualquer tipo de saída, tanto HTML como JavaScript, com ou sem chamadas “AJAX”.

Apesar de ser um modelo de trabalho muito interessante, esse tipo de componente, também chamado de “Server Control” na documentação do Visual Studio, é particularmente difícil de escrever. Isso é especialmente verdade se for desejada uma boa integração com o Visual Studio em tempo de desenvolvimento. Por causa disso e talvez também por inércia, a adoção desse tipo de componente é relativamente lenta. Ainda vejo muita gente usando apenas os componentes padrões do Visual Studio, que são meio limitados.

 

Já há algum tempo, a Microsoft anunciou suporte à AJAX, inicialmente através de algumas extensões de última hora ao ASP.NET 2.0. Esse suporte é meio chato de utilizar, mas pelo menos a Microsoft pode dizer que o ASP.NET 2.0 suporta AJAX.

A onda em torno do AJAX trouxe um novo interesse aos “Server Controls”, a princípio para aproveitar as vantagens do AJAX, mas também para estender o conjunto de componentes original do Visual Studio de maneira geral.

Esse interesse é evidente tanto dentro como fora da Microsoft. Em 2005 a Microsoft anunciou uma iniciativa completa para desenvolvimento de aplicativos AJAX através do projeto Atlas (atlas.asp.net). O Atlas é um framework para a criação de controles e aplicativos e inclui código tanto no cliente como no servidor. No início de 2006, a Microsoft anunciou que está desenvolvendo um pacote de componentes para funcionar sob Atlas chamado Atlas Control Toolkit (atlas.asp.net/atlastoolkit). Esse pacote será gratuito e incluirá código fonte.

E o que fazem esses componentes? Alguns deles efetivamente chamam o servidor sem atualizar a página toda, no bom estilo AJAX, como por exemplo, um componente que aglutina vários “Comboboxes” em cascata, por exemplo, para o usuário selecionar o país e a seguir aparecer a lista de estados desse mesmo país.

 

Evidentemente é necessário chamar o servidor para pegar a lista de estados do país selecionado no primeiro ComboBox. No entanto, vários desses componentes como o TextBox Watermark ou o ConfirmButtonExtender são simplesmente controles com script no cliente, sem chamar nada no servidor. Ou seja, o AJAX está trazendo um grande interesse à criação de componentes que usam script de cliente, quer esses componentes chamem ou não o servidor.

Do lado de fora da Microsoft, também evidente o interesse por parte dos criadores de componentes em suportar AJAX/Atlas, pois é uma maneira de vender novas licenças, além de upgrades para a base instalada. Em sites de venda de componentes como o www.componentsource.com é claro o destaque dos componentes que suportam Atlas, mesmo nos casos em que os componentes não sejam realmente “AJAX”.