Olá pessoal. Já começamos o ano com muita coisa boa acontecendo. David acaba de lançar o Ruby on Rails 1.2 com muita novidade e uma delas é o RestFull, que torna mais fácil integrar aplicações Ruby on Rails com aplicações externas. Imagine em uma única url sua aplicação fornecer serviços como RSS, WebService e conteúdo dinâmico mudando somente a extensão. Esta é uma das funcionalidades que vai estremecer o desenvolvimento web.
Acaba de sair do forno também o Flex 2.0.1 com algumas melhorias significativas que com certeza vai fazer a diferença na hora de desenvolver aplicações RIA corporativas, abaixo segue as grandes mudanças:
- Suporte ao MAC OSX;
- SDK Ganhou um pacote a mais o mx.modules;
- CSS em tempo de execução;
- asDoc como parte do Flex Builder;
- Rendenização de textos;
- 290 Bugs corrigidos;
- Flex Builder baseado agora no Eclipse 3.2 e com maior performance;
- Suporte para o “Apollo”. Se não conhece ainda o Apollo procure conhecer, você irá entender de que forma aplicações web´s irão revolucionar as experiências e usabilidade dos usuários finais.
E como não posso ficar de fora dessas grandes mudanças e sempre focado em colaborar com a comunidade Brasileira, resolvi atacar de generators. É…generators mesmo. Você deve estar se perguntando o que é isso, come com pão francês? Ou com bolachinha salgada? É mais que isso!
Um dos conceitos de desenvolvimento Ruby on Rails é automatizar tarefas repetitivas. Desta forma, existem vários plugins e geradores de códigos que vão te ajudar no dia a dia. Em sua estrutura interna, o Rails possui um generator chamado Scaffold, e a idéia básica é que a partir de uma tabela existente no banco de dados, com o simples comando script/generate scaffold Tabela (singular), ele crie automaticamente uma tela com o form para cadastrar, editar, deletar e listar os dados desta tabela, assim automatizando as tarefas.
Eu sou um cara que gosto de automatizar tarefas repetitivas, e usufruindo deste tipo de recurso resolvi então criar o Flex e-Genial Scaffold. O FES é um generator que tem por objetivo automatizar tais tarefas para a criação de aplicações RIA, unindo Ruby on Rails com Flex 2, e, seguindo a mesma linha do Scaffold original do Rails, porém com a view em Flex. O projeto está hospedado no RubyForge sobe a licença MIT, assim você pode baixar usar, distribuir, vender e até dar de presente para seu tio favorito.
Neste artigo você irá aprender a instalar e a criar uma breve aplicação usando o FES. Você verá como é fácil ganhar tempo eliminando as tarefas corriqueiras.
O primeiro passo agora é instalar o flex_egenial_scaffold. Como já expliquei em outras matérias, o Ruby tem um recurso que simplesmente faz a diferença: é o GEM. Com ele é possível instalar plugins, generators, aplicações e bibliotecas que vão ajudar no dia dia. Presumo que você já tenha instalado o Ruby e o Rails, certo? Caso ainda não, procure aqui mesmo no site como deixar tudo preparado para criar aplicações com alguns passes de mágicas.
Ok. Então abra o terminal ou o cmd do windows e digite o seguinte comando.
Gem install flex_egenial_scaffold_generator
Aguarde alguns segundos até aparecer a mensagem a seguir:
Successfully installed flex_egenial_scaffold_generator-0.0.1
Ok. Agora o FES foi instalado com sucesso. Se tiver interesse em aprender como funciona o generator, no Windows a instalação do FES fica em:
C:\ruby\lib\ruby\gems\1.8\gems\flex_egenial_scaffold_generator-0.0.1
Agora estamos prontos para criar nossa primeira aplicação com uma simples tela que vai cadastrar, atualizar, deletar e listar os dados de uma tabela.
Antes de tudo, crie um banco de dados. Neste exemplo, vamos utilizar o MySQL. Crie um banco chamado “flexrailsdb” e em seguida adicione uma tabela chamada “Clientes” com os seguintes campos: id, nome, email1, email2, observacacao e numero_banco.
Então temos agora essa estrutura:
- Banco de dados: flexrailsdb
- Tabela 1: clientes
- Campos da tabela clientes:
- Id : Int
- Nome: Varchar
- Email1: Varchar
- Email2: Varchar
- Observação: Text
- Numero_banco: Varchar
Depois de criado o banco e sua estrutura, ainda com o cmd aberto vá até c:\, cd c:\. Ou, se você estiver no Linux, cd \home\seuUsuario.
Digite o seguinte comando:
Rails minhaAplicacao
Espere criar todo o esqueleto da aplicação. Em seguida digite:
cd minhaAplicacao
Edite o arquivo database.yml que está dentro de minhaAplicacao/config. Adicione os dados de comunicação com o banco.
- development:
- adapter: mysql
- database: flexrailsdb
- username: root
- password:
- host: localhost
No terminal, vamos fazer uma mágica. Digite:
Usuário Windows:
Ruby script/generate flex_egenial_scaffold cliente
Usuário Linux
script/generate flex_egenial_scaffold cliente
Observação: Rails trabalha com pluralização, então a idéia é sempre usar tabela no plural e model no singular, que foi o nosso caso. Tabela clientes (plural), model no singular.
O FES criou automaticamente o model, o controller e o fonte MXML da aplicação Clientes. Na seguinte estrutura de diretórios:
minhaAplicacao/app/controllers
- clientes_controller.rb
minhaAplicacao/app/models
- cliente.rb
E a aplicação Flex em minhaAplicacao/public/sis/clientes.
- _listaGrid.mxml
- clientes.mxml
Estes são os arquivos fundamentais da aplicação clientes.
Agora que já estamos com a estrutura da nossa aplicação, precisamos então compilar o fonte clientes.mxml para criar o bytecode clientes.swf que será o front-end da tela de clientes.
Primeiro vamos realizar duas pequenas “mudanças”!
Dentro da pasta minhaAplicacao/lib/tasks, existe um arquivo chamado comp.rake. É ele o responsável por chamar o compilador do Flex SDK e gerar o bytecode. Então edite este arquivo e altere o caminho:
home = "F:/FAMILIA_ADOBE/FLEX_SDK_2"
Este é o caminho onde esta instalado o seu Flex SDK. Se você não tem ainda o Flex SDK instalado, veja a matéria de como realizar esta instalação passo a passo .
É fundamental extrair os arquivos em uma pasta de fácil acesso e que não tenha espaços no nome. Sugestão: c:\flex_sdk. Use um “_” no lugar dos espaços, pois assim fica fácil para a tarefa comp encontrar o compilador Flex.
O próximo passo é editar o arquivo flex-config.xml que está dentro da pasta Caminho/de/onde/esta/a/instalação/do/Flex/SDK/frameworks.
Encontre a linha:
<!-- File containing cached system font licensing information
produced via
java -cp mxmlc.jar flex2.tools.FontsSnapshot (fontpath)
Will default to winFonts.ser on Windows XP and
macFonts.ser on Mac OS X, so is commented out by default.
<local-fonts-snapshot>localFonts.ser</local-fonts-snapshot> -->
Retire a seguinte linha de dentro dos comentários
Ficando assim:
<!-- File containing cached system font licensing information
produced via
java -cp mxmlc.jar flex2.tools.FontsSnapshot (fontpath)
Will default to winFonts.ser on Windows XP and
macFonts.ser on Mac OS X, so is commented out by default.
-->
<local-fonts-snapshot>localFonts.ser</local-fonts-snapshot>
Agora, como já temos configurado o caminho do Flex SDK e as fontes, é hora de compilar. Logo, ainda no terminal, digite:
rake comp:flex arq=clientes
- rake: É o programa responsável por executar uma tarefa;
- comp: É o nome da nossa tarefa;
- flex: É o namespace da tarefa;
- arq=: É o nome da tabela/arquivo/fonte/mxml criado.
Aguarde por alguns segundos até aparecer a mensagem a seguir:
Executando tarefa de compilacao flex_egenial_scaffold
Tarefa concluída!
Você irá perceber que, dentro da pasta minhaAplicacao/public/sis/clientes, existe um arquivo chamado clientes.swf que é o bytecode gerado pelo compilador flex.
Vamos testar! Levante o servidor da aplicação com o seguinte comando:
Usuários Windows:
Ruby script/server
Usuário Linux:
Script/server
Aguarde até aparecer a mensagem a seguir:
C:\minhaAplicacao>ruby script/server|
=> Booting WEBrick… |
=> Rails application started on http://0.0.0.0:3000 |
=> Ctrl-C to shutdown server; call with –help for options |
[2007-01-21 12:58:17] INFO WEBrick 1.3.1 |
[2007-01-21 12:58:17] INFO ruby 1.8.4 (2006-04-14) [i386-mswin32] |
[2007-01-21 12:58:17] INFO WEBrick::HTTPServer#start: pid=2220 port=3000 |
Abra o seu browser preferido e digite http://localhost:3000/sis/clientes/.
Você deverá ver a tela abaixo:
Caso não veja, repita os passos acima.
Agora você poderá cadastrar os dados. Para editar ou deletar um registro, clique na linha correspondente listada na grid.
Viu como é simples e fácil integrar e criar aplicações Ruby on Rails com Flex 2? Agora te convido a assistir esse screencast que criei onde tem um passo a passo de como criar uma aplicação Rails usando o RadRails com o Flex e-Genial Scaffold.
Experimente também adicionar mais um campo da tabela clientes e em seguida, rodar:
- Ruby script/generate flex_egenial_scaffold cliente
- rake comp:flex arq=clientes
Em seguida dê um refresh na página e veja o que acontece.
Mude a ordem das colunas da tabela clientes e rode novamente os passos acima. Veja como o FES se comporta.
Bom, eu espero que tenham gostado. Qualquer dúvida só me enviar um e-mail, grande abraço e até a próxima…