Temas

terça-feira, 29 de março de 2011

Ext Direct–Um JSONRPC (parte 1)

extjs_splashVenho trabalhando com ExtJS esporádicamente no último ano e estou ainda aprendendo os truques e macetes desta bela biblioteca. A cada dia que passa eu descubro uma funcionalidade nova ou um jeito diferente de fazer as coisas que me deixa surpreso e, algumas vezes, fascinado com ela. Quero compartilhar com vocês uma dessas recentes “descobertas”, o Ext Direct.

Só para contextualizar aqui vão algumas das principais características do ExtJS:

    • É um framework JavaScript “cross-browser” para o desenvolvimento de RIAs;
    • Framework com mais de 4 anos, atualmente  está na versão 3.2.1 (versão 4.0 já esté em BETA )
    • Suporte à Firefox, Chrome, IE 6+, Safari e Opera;
    • Inúmeros componentes e widgets;
    • Grande facilidade na criação de extensões.

guerra_navegadoresVoltando ao Ext Direct, ao desenvolver minhas aplicações com ExtJS sempre utilizei JSON através do data stores para fazer a transmissão de dados do servidor para a aplicação, e para fazer o caminho inverso optava pelo cfcAjax (trabalho com Coldfusion) pela comodidade de ser uma biblioteca que já dominava. Mas eis que, ao iniciar um novo projeto, eu resolvo me aprofundar no tal Ext Direct e foi quando tive uma grata surpresa.

O Ext Direct é um pacote incluso a partir da versão 3.0 do ExtJS para comunicação entre a aplicação desenvolvida neste framework e o servidor, através de JSON. Algumas características:

    • Métodos remotos por metadata;
    • Configuração via JSON/XML;
    • Conversão de tipos;
    • Chamadas assíncronas;
    • Upload de arquivos;

Segundo o site do Sencha (conjunto de frameworks JS no qual está incluído o ExtJS), o Ext Direct está integrado com PHP, Ruby, Coldfusion, Java, .NET e Perl. Para a comunicação com o servidor é necessário criar apenas 3 componentes no servidor, são eles:

    1. Configuration: para especificar quais classes e métodos estarão visíveis à aplicação;
    2. API: para que seja gerado à partir do Configuration a descrição dos métodos;
    3. Router: para rotear as chamadas para as classes e métodos apropriados.

Pelo fato do Coldfusion ter a capacidade de fazer a instrospecção de seus métodos dinamicamente em tempo de execução, não precisei criar o arquivo de configuração em XML/JSON. Porém tive alguns problemas para usá-lo com o Railo (Servidor CFML open-source) mas nada que não seja possível resolver rapidamente (fica pra um próximo post).

Após a configuração do servidor, basta criar um provedor em sua aplicação e invocar os seus métodos remotos através de JavaScript, isso garante uma maior agilidade, segurança e rapidez no desenvolvimento da aplicação uma vez que o número de linhas para comunicação com o servidor fica muito reduzida.

Minha idéia é explicar aqui no blog como configurar e utilizar o Ext Direct, mas para o post não ficar muito longo vou ter que dividí-lo em partes, hoje ficamos por aqui mas em breve continuarei.

Nenhum comentário:

Postar um comentário