Microsoft Ajax e Web Standards
Na primeira prova de conceito vou publicar aqui minha implementação de dois patterns ajax do doFactory: Ajax Pattern: Level 1 e Level 2.
A solução está organizada da seguinte maneira:
Projeto: Presentation.MicrosoftAjax
Divido em:
App_Data para o banco de dados.
Business para regra de negócio.
DataAccess para acesso a dados.
Presentation para interface.
A Presentation foi dividida em:
Behavior para os arquivos javascript.
Controler para receber as chamadas ajax.
View para exibição e inserção de dados.
Para esta solução é necessário (no mínimo):
.Net Framework 3.5
Visual Web Developer 2008
SQL Server 2005 Express
Desenvolvendo a View
O primeiro ponto positivo que percebi ao utilizar o padrão apresentado pelo doFactory foi que a necessidade de se utilizar Server Controls foi bem menor. Na View criada o único controle com a diretiva runat=server necessário foi um <form> e o outro controle necessário foi o <ScriptManager>.
Em termos de quantidade de código para a apresentação a quantidade foi praticamente a mesma. Porém, com total controle sobre o HTML gerado.
Desenvolvendo o Behavior
Na aplicação desenvolvida utilizando os controles ASP.net para Ajax, não houve necessidade de implementação de javascript. Isto é bastante útil e torna o desenvolvimento bem mais ágil.
Já no desenvolvimento sem controles ASP.net foi necessária a criação de um arquivo javascript com todo o fluxo e tratamento das funcionalidades da página. Utilizando a biblioteca Microsoft Ajax é possível recuperar controles e realizar transações assíncronas sem a necessidade de profundo conhecimento de javascript, porém, ainda assim, exigindo maior tempo de desenvolvimento.
Desenvolvendo o Controler.
O controler assume o papel do code-behind da página. É ele que vai ser responsável por receber a chamada ajax, processar os dados e retornar o xml de resposta.
O único trabalho adicional é formatar o xml de resposta.
O Resultado.
Visualmente, como era de se esperar, o resultado foi o mesmo. Porém, analisando o trace gerado nota-se que a diferença de conteúdo gerado pelo desenvolvimento Asp.net Ajax tradicional foi aproximadamente 22% maior. Apenas esse resultado mostra que o carregamento da página seria também linearmente maior, conforme gráfico.
Há ainda outro ponto a ser observado: A quantidade de controles gerados. No desenvolvimento ASP.net tradicional a quantidade de controles gerados foi de 37 controles, contra 10 no desenvolvimento conforme os patterns.
Conclusão
Numa aplicação simples com apenas um processo de cadastramento, já foi possível notar melhorias na qualidade do código gerado e da performance da aplicação.
Considerando que a própria Microsoft faz ressalva ao uso de controles, principalmente, controles aninhados, desenvolver utilizando o mínimo de Server Controls torna-se fundamental em aplicações onde haja gargalo na renderização de páginas.
Portanto, a utilização do pattern apresentado pelo doFactory torna-se uma excelente alternativa, onde é tanto possível ter um aumento na performance da página, quanto no controle do código gerado.
Download
Código completo: Download
Considerações
A prova de conceito desenvolvida foi limitada ao processo de cadastramento de um cliente na base de dados. Não foi aplicada nenhuma validação nos campos ou no processamento no servidor.
No desenvolvimento de uma aplicação complexa, o tempo de desenvolvimento seria consideravelmente maior.
O desenvolvimento com ASP.net e Ajax tradicional apresentado também poderia passar por mudanças para melhoria de performance, porém, também afetaria o tempo de desenvolvimento.