RIA Services: um elo perdido?

A chegada do padrão MVC para o ASP.Net tem sido bastante comentada entre arquitetos. Temos recebido questões sobre quando usá-lo, etc., mas não é deste lançamento que gostaria de falar hoje – deixo estas questões interessantes para uma próxima ocasião.

O que é mais relevante? Dos pré-lançamentos do MIX creio que o mais interessante para os arquitetos foi o do RIA Services . Vou tentar explicá-lo em poucas linhas e me digam se não tenho razão.

Toda aplicação de negócios têm um conjunto de interfaces comuns: cadastros CRUD, telas com relacionamentos pai-filho, grids paginados para a apresentação de dados filtrados, e muitos outros. Não são telas simples: validação de sintaxe e semântica dos campos, eventos de preenchimento de comboboxes, tratamento de erros, navegação e outros detalhes tornam esta tarefa intensiva em mão-de-obra e, portanto, onerosa. Isto se torna ainda pior quando temos que lidar com aplicações em n-camadas, como é o caso de um ASP.Net, com ou sem Ajax, ou de um Silverlight na web. Outro aspecto doloroso desta arquitetura é a necessidade de desenhar serviços correspondentes na camada de serviço, que apóiem a apresentação de dados sem muita verbosidade (idas e vindas de mensagens para uma interação do usuário).

Sempre que lidei com este problema acabamos construindo templates para os principais tipos de telas e serviços, tentando gerar código automático, no mínimo para as telas CRUD. Mas existe um padrão aqui: do lado cliente, uma camada de ligação entre a apresentação e a lógica de negócio que faz bem mais que um mero proxy; do lado servidor, um conjunto de façades que expõe externamente o domínio da aplicação e chamando a lógica de negócio propriamente dita.

Bem... O RIA Services pretende preencher este vão que liga interfaces e seus mecanismos de databiding com a chamada da regra de negócio e conseqüente acesso a dados. Veja figuras abaixo copiadas do blog do Brad Adams e da documentação do RIA Services.

 

 image

 

 

Este era um elo ainda perdido no .Net Framework. Bom saber que está a caminho.

 

(

   Para quem quiser ver mais:

  • este link tem uma boa documentação de um walkthrough;
  • os links Part 1, Part 2, Part 3 apresentam (em inglês) um rápido How To;
  • Aqui está o blog do Brad Adams que aponta para o código e a apresentação do RIA Services no MIX09;

)

Abraços