Um dos maiores problemas para quem cria aplicativos web são as limitações impostas pelo browser. Com o tempo, tecnologias, linguagens, paradigmas e arquiteturas surgiram para tentar aproximar a experiência da Web ao Desktop. Flash, Flex, GWT, Silverlight, AJAX são apenas alguns nomes que o desenvolvedor precisa saber pelo menos para que serve.

Iniciativas como o Adobe Integrated Runtime (AIR) estão indo justamente ao contrário: a web está chegando ao desktop. Flash e Flex são boas opções, se completam e podem dar o poder tanto ao designer quanto ao programador. Mas o denominador comum em qualquer sistema operacional e browser, continua sendo JavaScript e HTML.

O Ajax Toolkit da Microsoft apresenta uma série de componentes usando o Microsoft Ajax Library, que apresentam uma série de facilidades ao desenvolvedor, quando associados a outros componentes do Asp.Net como a GridView. O Java Server Faces é o equivalente do mundo Java.

Mas existem outras opções além das fornecidas por Sun e Microsoft? Se o cliente quiser um sistema em PHP, JavaScript e HTML somente, o desenvolvedor é obrigado a fazer tudo do zero? Ou comprar componentes caros para que a apresentação e funcionalidade fiquem aceitáveis, dentro do prazo e custo? Mesmo quem usa .Net ou Java, pode se beneficiar, já que foram recomendadas pela Adobe:

Ext JS

Grids editáveis, árvores complexas, componentes de navegação, tudo criado em JavaScript e compatível com qualquer linguagem server-side, já que é possível popular através de XML. Veja um exemplo que faz uso do Google Gears. Ou veja esse leitor de feeds criado sem nenhum plug-in necessário, apenas JavaScript.

Bibliotecas como o Ext JS podem ser muito úteis em qualquer projeto, já que seu uso é simples, a documentação é farta.

Script.Aculo.Us

Outra biblioteca para criação de interfaces complexas, usando JavaScript e HTML. E o como já existem várias empresas utilizando, a coisa fica ainda melhor para os desenvolvedores. Exemplos de quem usa? Gucci, Apple, Basecamp e Feedburner. Integração é o sobrenome dessa biblioteca e isso fica claro na página que explica como usá-la com as mais diferentes tecnologias como .Net, Java, Perl, Ruby on Rails, PHP, Django, etc.

O website possui algumas falhas, mas os demos não deixam dúvida que é uma ótima escolha também.

Prototype

É uma framework para facilitar o desenvolvimento de aplicações e também usado por nomes como Basecamp e Feedburner. Compatível com o Script.Aculo.Us, eles se completam, já que o anterior concentra-se mais em fornecer opções de interface e o Prototype, bibliotecas de classe para usar orientação a objetos e livrar o programador de muita programação mundana, chata e provavelmente com muitos erros.

Ao usar o Prototype, AJAX torna-se algo trivial, sem as dores de cabeça em fazer tudo do zero. Um bom desenvolvedor sabe que solucionar problemas é mais importante do que gastar semanas recriando algo que já está pronto para uso.

A escolha de usar essas frameworks acima, depende sempre de estudo caso a caso. Não há O melhor e sim o mais indicas" class="" title="">dicado para o problema a ser enfrentado.

Update: Depois de ler os comentários, mais duas frameworks merecem menção nesse post.

Mootools (Dica do Lucas Cavalcante)

Depois de olhar os componentes da framework e objetos visuai do Mootools, não há como negar: trabalho profissional. Da forma como ele está, pode ser usado em qualquer projeto high profile onde uma interação natural seja mais necessária e escrever linhas e mais linhas de código repetitivo esteja fora dos seus planos.

Definitivamente recomendado. Os componentes estão muito bem acabados.

JQuery (Dica do Pedro Menezes, Fedola, Willgm, Darkflames)
Esse entrou por demanda popular e é outra framework que pode economizar semanas de desenvolvimento e dores de cabeça. A comunidade em torno dele criou dúzias de componentes e existe uma framework visual completa usando-o como base. Também vem sendo usado comercialmente e pode trabalhar em paralelo com outras frameworks.

Interface Elements (Dica do Darkflames)

Semelhante ao Mootools e ao Ext JS, usando o JQuery como base, o Interface Elements é uma coleção de objetos de interface prontos para usar em seus projetos. A compatibilidade multiplataforma também é garantida ao usar apenas JavaScript e XML. Fiz alguns testes e ela me parece muito boa em alguns componentes, outros, nem tanto. Mas com certeza, é mais uma opção no seu cinto de utilidades e não deve ficar de fora.

Se vocês souberem de outras frameworks, maduras o suficiente para serem usadas em projetos, deixe um comentário e esse post será atualizado. Se tiver dicas, reviews ou resenhas de tecnologias semelhantes que você queira compartilhar, os fórums estão abertos a todos os usuários cadastrados.

Notícias relacionadas

jragomes's picture

Usamos Scriptaculous numa aplicação PHP (usando framework Qcodo) e funcionou redondinho. Ainda foi possível adicionar um novo efeito sem muito esforço, graças a documentação e programação intuitiva.

Viver pouco como um rei ou viver muito como um Zé?
www.jragomes.com

Já estou esperando comentários do tipo que php não é profissional porque não é microsoft..

Bom artigo!

Rocky's picture

Eu sei que vou parecer chato, mas não gosta de usar bibliotecas, geralmente tenho grande problema em me adaptar a elas, frameworks então nem se fala, mas é bacana ver que existem boas alternativas, quanto mais alternativas mais rapido o uso da linguagem evoluie...

PedroMenezes's picture

Eu também não curtia usar frameworks. Experimentei a jQuery e não quero saber de outra. Códigos enormes se transformar em uma ou duas linhas. Fantástica!

PedroMenezes.com

magno's picture

Quando mais jovem, tentei implementar BMP, JPEG e MPEG-Layer3 a partir da especificação (só consegui o primeiro completamente, mas ganhei experiência). Também já tentei fazer um sistema completo a partir de OpenGL puro.

Apesar de perder controle de parte do seu código, elas te dão uma liberdade maior para pensar no que realmente importa em vez de ficar "inventando a roda", como disse o nosso amigo editor.

work-around's picture

só para lembrar que o framework da microsoft, o microsoft ajax library, pode ser utilizado com qualquer linguagem de programação incluindo o php, e não só com o .net

Felipe Ferreira
nhack.net

fedola's picture

Um outro q eu gosto bastante de usar com PHP é o JQuery.
Como é uma biblioteca JavaScript, tb dá pra usar com qq coisa... PHP, Asp, .Net, etc...

Henrique G's picture

Eu uso Prototype para meus componentes AJAX em JSF, é muito simples de usar e com muitos recursos. O único cuidado que tem que ter é na compatibilidade com algumas outras bibliotecas, pois ele sobrescreve alguns métodos em objetos padrão. Já tive problemas nesse sentido, mas ainda preferi abandonar a outra biblioteca do que o Prototype.

Meu Blog

rodiniz's picture

Quem gosta do ExtJs e usa Asp.net Ajax pode dar uma olhada nos meu controles aqui .Os Controles são Open Source e quem quiser participar do projeto é bem vindo...clique
aqui para ir para a página do projeto.

SamirMamude's picture

Aqui no trabalho também utilizo Prototype+Scriptaculous, agora estou focando na ExtJs.

SimpleCode

Não acredito que não comentaram a jQuery nesse post...

Simplesmente a melhor biblioteca de Js, depois dessa não usei nenhuma outra.

Quem usa jQuery?
http://docs.jquery.com/Sites_Using_jQuery

fmcypriano's picture

Estou estudando o Ext JS para fazer a interface do sistema aqui da empresa, com back-end em Java e a comunicação em JSON (menor que XML).

Hoje esta em JSF, vou aproveitar toda a regra de negócio que existe e alterar somente a interface.

O mais difícil pra mim no processo foi entender bem javascript.

---
Felipe Cypriano

lucascavalcante's picture

Eu gosto muito dessa aqui:

Mootools

---

D'oh!

DarKFlameS's picture

galera, tem a JQuery Tambem. que ja tem um plugin que a complementa, a interface elements

(inclusive, a jquery é a usada pelo CMS Drupal =)

segue ai os links
http://jquery.com/
http://interface.eyecon.ro/

hamacker's picture

Alguem aí já esta usando a framework opensource do Google ou do Yahoo.
Gostaria de saber se são boas e suficientes para serem usados em produção (com acesso a banco de dados, é claro).

Rocky's picture

Eu estou fazendo uns testes com o do google, ta um pouco fraca a documentação dele, ou fui eu que não achei.... mas parece bom... vamos ver se ele realmente merece a marca google...

SamirMamude's picture

Cara, ja fiz alguns testes com a YUI do Yahoo, a documentação é muito completa e também existe um blog somente sobre o framework, só não gosto dela visualmente.

SimpleCode

Paulim's picture

Quando faço algo para visualização em browser (e isso é bem raro), me preocupo com a carga de processamento que vai ser exigida no navegador por causa de scripts.

Acho que é porque tive uns problemas de compatibilidade uma vez, que me deram muita dor de cabeça, e isso me deixou "escaldado"...

Nada contra ajax e cia, até porque entendo que facilitam e abrem novas possibilidades de layout, usabilidade e talz. Mas pra mim, navegador é pra navegar. Isso é apenas minha opinião...

Nada do Google Web Toolkit? Creio que merece citação no artigo...

GMail e vários produtos do Google são feitos em cima dele.

Ricardo Bicalho's picture

Ele não entrou no artigo, porque é uma API onde se programa em Java para gerar JavaScript e HTML.

Todos as frameworks mencionadas, não precisam de nada exceto o bloco de notas e o browser.

É que houve uma citação ao Ajax Toolkit da Microsoft, mas já entendi o contexto da citação e os critérios do artigo. Faz sentido. =P

Ricardo Bicalho's picture

O Microsoft Ajax Library 3.5 é apenas JavaScript também, mas o foco do post são justamente as outras opções. O GWT vai entrar em um outro post.

Dennes's picture

Oi, Ricardo !

O Ajax Library 3.5 merecia um comentário no post pelo fato de não estar preso ao ASP.NET, de estar disponível para uso em qualquer ambiente, como foi citado pelo artigo, oferecer outras opções.

Uma comparaçãozinha dele com os outros que você citou seria interessante. Eu estou habituado com o MS Ajax, confesso nunca ter utilizado o Library sozinho. Ele se apresenta bem em comparação com os outros frameworks qeu você citou ?

[]'s

---------------------
CidadaoCarioca
BufaloInfo

Ricardo Bicalho's picture

Sim. Eu estou usando ele em um projeto em .Net 2.0. Como ele é uma atualização da biblioteca 1.0 e veio com a .Net Framework 3.5, para usar com as versões anteriores, pode-se usar como um download separado.

Em qualidade, ele não fica nada a dever aos outros frameworks e ainda vem com bibliotecas específicas para cada cultura. Em termos de framework, estamos bem servidos.

O problema são os controles do toolkit, que espero ter melhorado nessa atualização. Tentei usar alguns deles em um projeto de controle de projetos (versão 1.0) e achei a qualidade abaixo do ExtJS e do Mootools.

Dennes's picture

Oi, Ricardo !

Não conheço estes dois, mas acho que nem preciso conhecer para concordar. O Ajax toolkit tem uma qualidade não muito boa. Posso até dizer que melhorou muito no 2008, mas ainda assim, do meu ponto de vista, força demais o desenvolvedor a lidar com tags e javascript, o que é um trabalho incômodo para o desenvolvedor .NET.

Mas fiquei curioso sobre porque usar a Ajax library com o framework 2.0, já que existe ASP.NET Ajax para o framework 2...

[]'s

---------------------
CidadaoCarioca
BufaloInfo

Ricardo Bicalho's picture

O projeto atual irá rodar em cima da Framework 2.0, mas queremos usar a versão mais recente das bibliotecas Ajax. A solução foi baixar e usar o Ajax Library 3.5.

Ainda assim, estou considerando as outras opções. Dê uma navegada no ExtJS, Mootools e Scriptaculous. O toolkit parece trabalho de adolescente feito nas coxas em relação as opções open que eu vi lá.

Inclusive, esse projeto atual, pequeno, servirá de piloto para um projeto bem maior, com duração de mais de 1 ano de desenvolvimento. Já vimos que apesar de ter melhorado, os controles do VS 2008 não atendem. Podem ser ótimos para aprendizado e demonstrações, mas para o que nós precisamos, existem opções mais maduras.

Dennes's picture

Oi, Ricardo !

Os Frameworks 3.0 e 3.5 se integram com perfeição ao framework 2.0, é assim tão absolutamente necessário que não estejam instalados no servidor ? (mais uma curiosidade...)

"O toolkit parece trabalho de adolescente feito nas coxas em relação as opções open que eu vi lá."

Não duvido. Ele melhorou no 2008, mas eu tinha essa impressão dele em versões anteriores.

" Podem ser ótimos para aprendizado e demonstrações, mas para o que nós precisamos, existem opções mais maduras"

Como está o uso destas opções mais maduras junto ao Visual Studio ?

Se integram perfeitamente, como o toolkit, ou valeria a pena um projeto que criasse uma integração dessas opções com o visual studio, como por exemplo o simples "add extender" da smart tag do 2008 ?

[]'s

---------------------
CidadaoCarioca
BufaloInfo

rodiniz's picture

Dá uma olhada nos meu controles aqui Eles são controles para o asp.net Ajax com o poder do ExtJs ...

Dennes's picture

Oi, Rodrigo !

E como estão, prontos, caminhando, em que ponto ? Só curiosidade...

[]'s

---------------------
CidadaoCarioca
BufaloInfo

felipesabino's picture

Mootools é mtu bom mesmo

mas infelizmente quem quiser usar junto com o framework ajax do .net vai ter q esperar um pouco, já que algumas funcionalidade entram em conflito.

Rocky's picture

Minha impressão ou este post levou um Up?

Ricardo Bicalho's picture

Foi atualizado mais duas vezes.

Tem também a Dojo Toolkit, vale dar uma conferida.
http://dojotoolkit.org/

Opções de exibição de comentários

Selecione seu modo de exibição dos comentários favorito e clique "Salvar opções" para ativar suas mudanças.


Design Wenetus