Visão Geral
Nos dias de hoje é comum visitarmos sites e aplicações construídas com recursos de interface visual bem trabalhados, sem posts visíveis HTTP (refreshs) e com conceitos de usabilidade inovadores. Esse tipo de recurso traz ao usuário final uma experiência de uso muito mais agradável sobre sua aplicação.
Em meio a esse novo cenário de aplicações para internet surge o termo RIA (Rich Internet Applications), assunto que abordarei com a profundidade adequada durante essa nova série de posts. Essa série, entitulada RIA, terá como foco o desenvolvimento de aplicativos RIA utilizando Silverlight.
Vamos iniciar a série com uma visão geral sobre RIA e Silverlight.
O que é RIA?
A sigla RIA vem do termo Rich Internet Applications. Esse tipo de aplicação é a nova tendência para aplicativos web. Considero RIA como uma tendência por ainda ser conceito pouco difundido. Porém acredito que exista uma grande probabilidade de se solidificar devido as suas inovações.
Esse conceito de aplicativo permite ao usuário uma navegação e utilização muito mais confortável do que os aplicativos web convencionais. Os recursos visuais podem ser explorados com muito mais facilidade. Pode-se criar animações e efeitos audio-visuais com qualidade e baixo “peso”, ideal para aplicativos de internet. Mas as principais vantagens não são essas. Na perspecção de sistemas em aplicativos web (aplicativos que não são apenas sites) ganha-se muito em recursos de usabilidade e poder no que diz respeito a relativa mudança na arquitetura.
Os aplicativos web tradicionais funcionam da seguinte forma:

Explicação de arquitetura cliente-servidor em web.
- Toda vez que uma página é requisitada ao servidor, ocorre um processamento e uma resposta em HTML é enviada para o navegador (cliente). Essa resposta é renderizada e uma página é visualizada pelo usuário.
- A cada nova interação do usuário com o sistema uma nova requisição é enviada ao servidor seguida por uma nova resposta. O navegador renderiza a página novamente. Esse refresh incomoda muito o usuário durante a utilização da aplicação.
- Com o surgimento do AJAX, tornou-se possível a renderização parcial da página, o que diminui o tamanho das requisições e respostas, tornando os aplicativos muito mais rápidos. O uso do AJAX também evita o refresh e a necessidade de renderização da página inteira, o que torna a aplicação muito mais confortável para o usuário.
A arquitetura RIA funciona de maneira um pouco diferenciada, principalmente no que diz respeito a tecnologia Silverlight. Os detalhes de funcionamento da tecnologia estão descritos no próximo tópico desse post.
O conceito de RIA já existe a alguns anos, porém tornou-se conhecido no mercado brasileiro apenas no ano de 2009. Isso ocorreu pelas limitações de conexão de internet. Para trabalhar confortavelmente com aplicações RIA, necessita-se de melhores conexões de internet, coisa que se tornou realidade no Brasil apenas nos últimos anos.
Existem diversas tecnoligias para desenvolvimento de aplicações RIA. Dentre as principais estão: Adobe Flex + Flash e Microsoft Silverlight.
Como a Accendis é uma empresa especializada em tecnologia Microsoft, utilizaremos como tecnologia base de nossos artigos o Silverlight.
Conhecendo o Microsoft Silverlight
Conforme comentei no tópico anterior o Silverlight é a tecnologia da Microsoft para criação de aplicações RIA. O Silverlight deriva do WPF (Windows Presentation Foundation) e pode ser considerado uma versão mais compacta e leve para rodar na máquina do cliente sem a necessidade da instalação do Microsoft .NET Framework.
Para o funcionamento do Silverlight é necessária a instalação de um plugin, assim como é costumeiro se fazer com o Adobe Flash. A Microsoft disponibilizou esse plugin para ser instalado nos mais variados navegadores, dentre eles: Internet Explorer, Mozilla Firefox, Safari e outros.
A arquitetura básica de funcionamento de um aplicativo Silverlight é um pouco diferente dos aplicativos web convencionais conforme ilustrado pela figura abaixo:

Ilustração do funcionamento de um aplicativo Silverlight
- Quando o usuário acessa o endereço do aplicativo web uma requisição é realizada e um processamento acontece no servidor, assim como acontece nos aplicativos web convencionais. Da mesma forma o servidor gera uma resposta em HTML que é recebida e renderizada em formato de página pelo navegador.
- Em meio ao conteúdo da página está a referência para um objeto Silverlight, o que pode ser comparado as referências realizadas para animações criadas em Adobe Flash.
- O navegador verifica se o plugin do Silverlight está instalado. Em caso negativo solicita o download e instalação para o usuário.
- Se o Silverlight já está instalado na máquina do cliente o navegador inicia o download do aplicativo Silverlight que será exibido como parte do contéudo da página acessada.
- O aplicativo baixado roda no contexto do cliente, e todos os eventos e ações da aplicação são processados no cliente. O servidor recebe novas requisições apenas quando são necessárias consultas a banco de dados ou objetos que se encontram nele. Dessa forma o processamento das funcionalidades de interface ocorre na máquina do cliente.
A primeira impressão que todo o desenvolvedor web tem ao analisar essa arquitetura é que o Silverlight terá acesso completo aos recursos da máquina cliente. Isso ajudaria a solucionar diversos problemas encontrados no desenvolvimento de aplicativos web, mas também traria uma exposição de segurança muito grande. Dessa forma o Silverlight tem acesso bem limitado aos recursos da máquina cliente, semelhante às restrições em aplicações que utlizam o Adobe Flash.
Quais ferramentas utilizar para desenvolver?
As ferramentas mais importantes no desenvolvimento de aplicativos Silverlight 3 são o Expression Blend 3 e o próprio Visual Studio 2008. O primeiro é mais apropriado para a criação do design, animações e telas da aplicação, enquanto o Visual Studio é mais apropriado para a implementação dos eventos e funcionalidades.
No próximo post que estará no ar dentro de poucos dias explicarei os procedimentos necessários para a preparação do ambiente de desenvolvimento Silverlight.
Quais as linguagens utilizadas?
Como o Silverlight é uma versão compacta do WPF (Windows Presentation Foundation) que faz parte do Microsoft .NET Framework as linguagens de desenvolvimento são as mesmas. A linguagem utilizada para a criação do design, efeitos e animações das telas é uma linguagem de markup conhecida como XMAL (lê-se zamel). Assim como no ASP.NET, os arquivos de codebehind podem ser criados nas linguagens suportadas pelo Microsoft .NET Framework: C# e VB.NET.
Hoje já existem bons livros e materiais falando sobre o assunto e tratando o conceito de RIA de forma bastante profissional.
A tecnologia ainda não tem popularidade para ser comparada ao ASP.NET, porém acompanha as tendências e evoluções da web e com certeza será de conhecimento fundamental para os desenvolvedores dos próximos anos.
Para aqueles que tiverem interesse em saber um pouco mais sobre a implementação de RIA com Silverlight a melhor fonte é o site oficial: www.silverlight.net.
Nos próximos dias darei continuidade a essa série com um post sobre configuração de ambiente de desenvolvimento Silverlight.
Um grande abraço a todos.
Aubry Maciel (http://twitter.com/aubrymaciel)
Equipe Accendis




no comment untill now