Você está na página 1de 6

WCF RIA Services

Um artigo explicativo sobre o WCF RIA Services, seus benefcios e como ele ajuda no desenvolvimento em camadas para aplicaes RIA( Ritch Internet Applications como Silverlight por exemplo )

No novidade, que a cada dia vemos inmeras aplicaes com interfaces avanadas e cada vez mais sofisticadas surgindo no mercado. Com o crescimento deste tipo de aplicao, que atende pelo nome de Rich Internet Application ou aplicaes de internet ricas( RIA ), surgem novas necessidades, tecnologias para construo e tambm novos desafios. E este desafio se d, pelo fato de no estarmos trabalhando da maneira tradicional, e passando a expor do lado do cliente recursos ricos e sofisticados para inmeros fins. O Silvelight da microsoft, vem ganhando espao e tem evoluido muito ultimamente. E isto, para fazer frente a tecnologias concorrentes como flash e o flex. E como amamos arquitetura, onde ela se encaixa em um cenrio deste? E o desenvolvimento em camadas? So perguntas que iremos responder neste post. Cenrio Tradicionar X Cenrio RIA O que temos no cenrio tradicional, um cenrio em que o nmero de requisies ao servidor grande. A cada ao do usurio seja uma pesquisa, alterao ou insero de dados, realizada uma interao com o servidor. Este fluxo continuo, de requisio e resposta inerente a este tio de cenrio, pois o mesmo est preparadao para isto. J no cenrio RIA, o fato de expor recursos ricos, avanados e uma interface alm de rica funcional como uma interface de um programa desktop, nos leva a ter que tomar determinados cuidados como evitar o excesso de requisies ao servidor para evitar um gargalo e perda de performance. So cuidados como este, que temos que ter na hora de montar uma arquitetura, para um sistema que roda em um cenrio RIA. RIA e os seus desfios Um problema comum ao se desenvolver aplicaes RIA e at mesmo um dos seus desfios era justamente desenvolver em camadas. Observer a imagen abaixo:

A imagen acima, ilustra um cenrio web tradicional. Em que tanto a lgica da apresentao, como a lgica da aplicao ficam no servidor, sendo de responsabilidade da lgica da apresentao renderizar o resultado requisitado pelo cliente, que quem interage com a mesma atravs de inmeras requisies, cujas quais, devem ser evitadas em um cenrio RIA. Observer a prxima figura:

Na figura acima, observamos o que diferencia um cenrio RIA de um cenrio tradicional, e vemos que a lgica da apresentao, no est mais do lado do servidor junto com a lgica da aplicao, e sim do lado cliente. E isto se deve, ao fato de garantir a performance e evitar gargalos no sistema. Esta inverso feita justamnete para manter o ambiente estvel e evitar srios problemas. O O WCF RIA Services, um middware de comunicao, ou seja, ele ir fazer a ponte entre a lgica da aplicao( no lado do servidor ) e a lgica da apresentao( no lado cliente ). Agindo assim como uma fronteira de confiana, atravz da qual, as camadas de apresentao e aplicao podero se comunicar e trabalhar. O WCF RIA Services, visa facilitar, ou seja, tornar mais suave o desenvolvimento em camadas para aplicaes RIA. Para isto ele expe servios, operaes e entidades para ser consumido no lado do cliente. Para entender melhor observe a figura abaixo:

A figura acima ilustra bem como o WCF RIA Services funciona. No lado esquerdo est o browser est a lgica da apresentao e a fronteira de confiana, ou seja, uma interface, um proxy em que a lgica da aplicao exportada atravz deste contrato. E atrz, no servidor, ficam as nossas bases de dados, comunicao com outros servios e at o domnnio da nossa aplicao. Domain Services X Domain Context Os Domain Services, so corao do WCF RIA Services. ele quem controla, a serializao de objetos para ambos os lados servidor e cliente. S precisamos escrever nosso cdigo uma nica vez e o mesmo, fica disponivl para os dois projetos em nossa soluo: o projeto servidor e Cliente. O Domain Context, com ele que o cliente trabalha, ou seja, ele um espelho perfeito do Domain Service, que roda no lado do servidor. Analise a figura abaixo:

No projeto servidor, fica o Domais Service. Que contem as entidades, operaes e servios com os quais nossa aplicao trabalha. E no projeto cliente, em que se encontra a soluo silverlight, fica o Domain Context, espelhando as operaes, servios e entidades contidas no Domaisn Service.

Para um entendimento maior, vamos analisar o projeto HRApp disponivel no codeplex para download aqui:

Em uma mesma soluo, esto os projetos servidor( ASP.NET ) e client( Silverlight ). Veja abaixo, a descrio deste projeto de exemplo. Seta Azul: Indica o projeto silvelight, que o projeto client. Seta amarela: Indica o projeto ASP.NET, que o projeto servidor. Seta Vermelha: Indica o arquivo que gerado automaticcamente, pelo WCF RIA Services. Este arquivo, gerado da exportao das funcionalidades do EDMX, que o modelo de dados e as funcionalidades que podem ser

adicionadas. Ou seja ele o resultado da exportao do Domain Service, uma vez sendo compilada a soluo se voc abrir a pasta GeneratedCode destro da mesma, estar um arquivo deste( extenso .g.cs ). Seta Verde: Indica um EDMX, arquivo do entity Framework, que contm o modelo de entidades, que tambm tem suas funcionalidades exportadas para o arquivo que gerado pelo WCF RIA Services. Entendendo melhor o processo, que quando voc compila o projeto, feita uma cpia para o projeto silverlight, do seu Domain Service, ou seja, automaticamente o mesmo espelhado no Domaind Context. Que contm absolutamente tudo, que existe no Domain Service, operaes e entidades. Olhe um trecho do cdigo do Domain Service e doDomain Context. Domain Service

Domain Context

As figuras acima mostram, justamente o que foi dito. O Domain Context reflete justamente o Domain Services. E ai ento pode-se trabalhar utilizando esta classe de proxy e navegar, chamar e utilizar todas funes e servios disponvels no Domaisn Services. Bom Pessoal, espero ter ajudado e passar um pouco do WCF RIA Services e como ele pode ser extremamente til no desenvolvimento em camadas para aplicaes RIA. Abraos e at a prxima.

Você também pode gostar