Frameworks para Rich Internet Applications

Olá a todos. Neste artigo gostaria de compartilhar minha experiência com frameworks Rich Internet Application (RIA), o que pode ajudar quem está querendo melhorar a User Interface (UI) de suas aplicações web mas não sabe muito bem qual framework escolher dentre a grande variade disponível. Todo conteúdo deste artigo é uma opinião pessoal, não quero que achem que sou o dono da verdade, apesar de defender a minha escolha com relação a frameworks RIA, cabe a cada um pesquisar bem as alternativas e escolher o que mais se adapta à sua realidade.

JQuery

Uma das minhas primeiras experiências com RIA foi utilizando Jquery e sua extensão Jquery UI que fornece diversos componentes RIA para as aplicações. Jquery é conhecida por ser simples, altamente extensível e por ter diversos recursos e plugins, além de uma comunidade forte e ativa. A Jquery UI possui bons componentes para deixar as aplicações mais bonitas e amigáveis, ela também possui um framework CSS muito consistente, o que facilita a criação de temas para seus componentes, porém ela não tem uma boa abrangência das necessidades de sistemas, como, por exemplo, a falta de uma Grid e de uma Toolbar, além de outros componentes é claro. Isso mostra que o framework ainda tem muito o que crescer, apesar disso ele está num ótimo caminho e tem se mostrado muito promissor.

Com a falta destes componentes é necessário procurar componentes fornecidos via plugins, o problema disso é que nem sempre é uma solução consistente, de fácil extensibilidade e customização, um exemplo disso é com relação a Grid, existem opções disponíveis, porém boa parte está em beta ou alpha, e para customizar o componente é necessário um belo estudo em toda estrutura que o desenvolvedor definiu. Existem proposals para que próximas releases da Jquery UI agreguem estes componentes, porém será que seu projeto pode esperar até estas releases?

A Jquery pode ser uma boa opção se a equipe possui tempo disponível para customizar os componentes ou se sua aplicação não necessita de grandes alterações no visual do tema e dos componentes externos adotados. O framework é de fácil aprendizado, portanto isso seria um bom diferencial quanto a outros frameworks Javascript.

ExtJS

ExtJS é um framework Javascript com uma gama enorme de widgets para aplicações web. Existem diversos temas prontos, alguns fornecidos pelo próprio site da ExtJS e outros facilmente encontrados pela internet, além da flexibilidade fornecida pelo framework, para a extensão dos widgets já prontos. Segundo o site da ExtJS, os widgets seguem estritamente os padrões web e os temas prontos fornecem um bom suporte a diversos browsers, como IE, Firefox e Opera, dentre outros. Acredito que a principal vantagem deste framework é a quantidade de componentes que ele possui, é extremamente raro existir a necessidade de se implementar um novo componente do zero.

Além desta gama de componentes, as funcionalidades da ExtJS também são bem completas. O framework fornece funcionalidades para utilização de AJAX, para manipulação de DOM, para extensão de componentes, para armazenar fontes de dados (datasources), templates para apresentação de dados, etc. É um framework realmente completo, o que é possível de se perceber no tamanho do pacote de download fornecido no site oficial.

Uma das principais desvantagens é a “burocracia” necessária para utilizar ou extender os componentes. A sintaxe da ExtJS é mais extensa do que a da Jquery, por exemplo, mas com um pouco de tempo utilizando o framework isso acaba não sendo mais uma barreira. Outra desvantagem é a comunidade. Apesar de ser possível obter respostas rápidas nos fóruns nacionais/internacionais, os experts tendem a parecer um pouco rudes com os novatos, mas com um pouco de insistência eles acabam dando uma boa ajuda na solução de bugs e dúvidas.

Acredito que a utilização da ExtJS depende muito do prazo definido para o projeto e do aprendizado da equipe. No começo o framework tende a ser um pouco complexo, principalmente para quem está acostumado com Jquery ou algum outro framework Javascript fácil de se trabalhar, mas após uma boa vivência com o framework ele torna-se um aliado poderoso para a UI.

Adobe Flex

Adobe Flex, odiado por uns, amado por outros. Para mim é o framework RIA mais robusto e de fácil aprendizagem com que já trabalhei. No início pode parecer um bicho de sete cabeças, mas com pouco tempo de estudo é possível já codificar as UIs e comunicar com a aplicação remota muito facilmente. Uma de suas principais características é a independência do backend, você pode ter PHP e com muita facilidade mudar para outra linguagem como Java ou Rails. Ele possui muitos componentes, todas as necessidades de um sistema RIA podem ser supridas com este framework. Outra vantagem é que por rodar no Flash Player o visual é consistente por todos os browsers, inclusive o IE.

Inicialmente eu não tive uma boa experiência com ele, talvez pela falta de vontade de aprender (sempre odiei Flash), ou pela forma com que estava trabalhando, mas posteriormente vi que ele dava conta do recado e que só precisava ser utilizado da forma correta. Você pode definir uma skin para a sua aplicação, utilizar algum framework como Swiz ou Cairgorn para melhorar a estrutura e facilitar em alguns pontos da UI, além de existir a possibilidade de, além de fazer uma versão para rodar no browser, fazer uma versão com Adobe AIR para rodar no computador, semelhantemente a uma aplicação desktop, como Delphi ou Java com Swing.

É a tecnologia que estou prefirindo para RIA, utilizando PHP como backend. Algumas barreiras sempre aparecem, porém o Live Docs da Adobe quase sempre soluciona os problemas, quando não soluciona, existem diversos grupos de discussão e fóruns.

Conclusão

As alternativas são muitas, além destes citados no artigo, ainda existe o OpenLaszlo, o JavaFX, fora os diversos frameworks Javascript, como o do Yahoo e etc. No meu caso o Adobe Flex supre as necessidades que encontro com relação a UI, além de me dar interoperabilidade, tanto na web como no desktop (com o Adobe AIR), flexibilidade na escolha do backend e uma boa comunidade para ajudar quando surge alguma dificuldade. Como disse no início do artigo, isso pode variar de pessoa para pessoa, cabe a cada um pesquisar e ver o que mais se adequa a sua realidade. E você leitor, tem alguma experiência com frameworks RIA? Deixe no campo de comentários sua opinião, todas opiniões são bem-vindas e pode auxiliar quem está a procura de um bom framework RIA.

3 thoughts on “Frameworks para Rich Internet Applications

  1. Muito legal o post. O único desses com o qual eu tive contato foi o jQuery. Já o Adobe Flex acho que vou demorar ainda para aprender, por que eu odeio flash.
    Uma vez trabalhei com o Google Web Toolkit (GWT) e gostei bastante dele. Recomendo.

  2. Muito educativo o post. Desde 1998 temos desenvolvido aplicações do Estado para web como o webtoolkit da Oracle. Muito trabalhoso, mas foi a única maneira de aproveitar os conhecimentos pl/sql dos programadores. Estamos agora a ver que framework poderiamos usar para melhorar o UI.

  3. Também trabalhei com o GWT, ele é realmente muito bom, ele trabalha com a linguagem Java para implementação da UI, tem vários componentes UI prontos e a comunicação com o backend é bem fácil também.

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>