quinta-feira, 13 de dezembro de 2007

Bye Bye Blogspot - Trocando de Blog......


Olá pessoal, felizmente, estou com meu domínio próprio e a partir de agora vocês poderão me acompanhar neste endereço:


http://blog.digows.com

Perdi um tempo, mais deixei ele com um visual bacana! bem Web2.0 +)
Abraços e não se esqueçam de atualizar seus feeds..\o/

quinta-feira, 29 de novembro de 2007

Trocando objetos Flex com PHP via AMFPHP 1.9

Olá Pessoal,

Uma vez eu procurei, e demorei para encontrar, como fere o coracão ver certas pessoas
trocando atributos entre o Flex e o PHP, acho legar mostrar como serializar e deserializar
objetos Flex (AS3) para PHP via AMFPHP

**Este pequeno tutorial, parte do princípio que você já conhece o AMFPHP e Flex
Você ainda não conhece? um link que mostra como fazer essa integracão:

http://www.sephiroth.it/tutorials/flashPHP/flex_remoteobject/

Bom então vamos lá....

Primeiramente, crie uma classe do tipo VO/DTO no PHP que será usado para a
serializacao e
deserializacão, sendo transportado entre as camadas.
No caso um exemplo bem simples, o VO CargoVO

CargoVO.php

<> CargoVO
{
var $idCargo
var $dsCargo;

//Local do VO Espelho no Flex.
var
$_explicitType = "CargoVO";
}

?>


Como você já tem seu VO no php, vamos criar um VO espelho no Flex:

CargoVO.as

package
view.vo
{

//Local do VO Espelho no PHP.
[RemoteClass(alias="CargoVO")]

[Bindable]
public
class CargoVO
{
public
var idCargo:int;
public var dsCargo:String;

public function CargoVO()
{
this
.idCargo = new Number();
this.dsCargo = new
String();
}
}
}

Feito isso, é só apenas trabalhar com instâncias desses VO's...

Por exemplo, na pasta de Services do AMFPHP, você cria um ServiceCargo e manipula métodos de

negócio, persistência, validacão e etc... Exemplo do ServiceCargo:

<
require_once '/vo/CargoVO.php';

class ServiceCargo
{
function salvar(CargoVO $p_cargo)
{
//Métodos de acesso ao negócio
return("Salvo com Sucesso!".$p_cargo->dsCargo);
}

function obterLista()
{
//Métodos de acesso ao negócio.
}


function excluir(CargoVO $p_cargo)
{
//Métodos de acesso ao negócio.
}

function atualizar(CargoVO $p_cargo)
{
//Métodos de acesso ao negócio.
}

}
?>


Bom.. como fuciona mais ou menos o processo, Por Exemplo:

Você vai salvar o um Objeto Cargo, no Flex vc chama seu RemoteObject e manda salvar passando
o objeto CategoriaVO populado, e no meio do caminho, o Framework, AMFPHP, irá serializar em um
Objeto CargoVO PHP, assim como na hora de devolver para o Flex, ser você solicitar uma lista de
Cargos, o retorno será um Array de CargoVO, debug e confirme, se não tiver tipado como CargoVO,
você fez algo errado!

Blza?


Obrigado Pessoal pela atencão...

Abracos!!
\o/

sexta-feira, 16 de novembro de 2007

Como anda o Adobe Flex no Brasil?

(Editado dia 17/11/2007)

Olá, a aplicacão FlexCenso está sendo um sucesso, tanto que em parceria com o Ebercom
da comunidade Flex, resolvi trocar de servidor.

Segue o novo Link:

http://www.flexdev.com.br/flexcenso/


================================================

Olá Pessoal!
Fiz uma pequena aplicação, que tem por fim realizar uma espécie de

Censo dos desenvolvedores de Flex no Brasil e região.

Para que isso!??
A principal, é para sabermos como anda o flex no mercado de trabalho,
uma vez que temos muitos formandos nas listas de flex, é muito interessante saber
como anda a propagação do Flex no Brasil.

Outro fato, é que temos mais de 1000 usuários nas listas, e já pensou que seu vizinho pode ser um desenvolvedor Flex e você não sabe?

A aplicação, está básica, porém com esses dados depois podemos gerar gráficos,
e módulos mais interativos.

Espero o participação de todos!
Abraços!

Segue o Link:
http://www.flexdev.com.br/flexcenso/
\o/

Liz... Te Amuh Vidah! =**

terça-feira, 25 de setembro de 2007

Um Bug no Google?

Olá Pessoal!

=)

Esses dias eu estava com uns problemas um pouco complicados de lógicas,
e já estava ficando estressado, foi então que resolvi me distrair um pouco com
o pai Google (Um dia ainda presto uma Homenagem ao Google! +)

E coloquei valores assim para procurar:

123...233
1232...2313
93...786

E acabei descobrindo mais uma do pai, que os resultados apresentados são números que
estão entre os "..." (3 Pontos). utilidade? sei lá foi implementado o.O

Mas dae! ahan! fui aumentado os valores e por descuido,

não coloquei os "..." e sim ".." com valores tipo esses:

1000000..100000000
1000000..10000031231
10000321..10000031231

ehheh oo bixo da uma longa pensada e me retorna um 404 do servidor deles,
isto é posso concluir que há algum detalhe não validado,
pois normalmente quando o Google não encontra algo, ele diz que achou algo!
neste caso, um 404...

Bom.. tae um possível bug do Pai Google...

Fala em Google, vou participar do Concurso Flex Brasil, será uma homenagem ao Google!

Assim que preparar um Alpha, eu Disponibilizo a vocês...

Abraços Pessoal!
\o/

sexta-feira, 10 de agosto de 2007

Deitel Sobre Adobe Flex....

Estava procurando algo sobre java no site do Deitel e poracaso olhei no Resources Centers dele
e advinha o que encontrei!?

ahan!!

Flex!

=)

conferem no link:
Deitel Resources

Ao lado tem bastante material sobre Ajax...

Tá dado o recado!!


até a proximo pessoal!

\o/

Vote contra a CPMF

Olá Pessoal!

+)

O assunto hoje não é sobre T.I.

e sim sobre o manifesto contra a CPMF!!

como nós já aprendemos, seja em faculdade ou algum meio de informação,

todos os dias pagamos inúmeros impostos ao governo!

Por isso em forma de manifesto peço a todos que acompanham meu blog, que votem
contra a CPMF!

segue o link:
http://www.contraacpmf.com.br/Cpmf.asp


Mais detalhes:
Fiesp

Muito Obrigado a Todos!

Abraços!

\o/

terça-feira, 10 de julho de 2007

Convença sua Equipe: Para Desenvolvimento Web, é com Adobe® Flex™

Há alguns dias, elaborei uma solução usando Flex aqui na empresa, e me pediram para argumentar
o porque de usar o Flex, não medi esforços e logo fiz um .doc, Segue abaixo:


Adobe Flex

Características do Adobe® Flex™ 2:


O Adobe® Flex™ 2, é um produto desenvolvido a princípio pela Macromedia, hoje fundida com a Adobe, empresa muito famosa por seus reconhecidos programas para WEB, como Adobe Photoshop, Adobe Dreamweaver, Adobe Acrobat Reader. O Adobe® Flex™ 2 é a solução de desenvolvimento de aplicativos mais completa e potente para se criar e fornecer aplicativos avançados de Internet (RIAs) no ambiente empresarial e na Web. Ele permite que as empresas criem aplicativos multimídia personalizados que melhorem significativamente a experiência do usuário, revolucionando o modo como as pessoas interagem com a Web.

Ex:
Flex Store, Gráficos, Style Explorer.


O SDK (Software Development Kit) do Flex, a partir da versão 2.0, foi dado como free a comunidade, logo qualquer um podia baixar seu SDK, e programar e compilar de graça. Mais tarde em Abril de 2007, a Adobe decide tornar todo o Flex OpenSource, até mesmo o seu compilador (mxmlc.exe) sobre a licença (MPL) Mozilla Public License .
O Flex conta com uma poderosa ferramenta para desenvolvimento, O Adobe Flex Builder™, uma IDE baseada no Eclipse™ o que agiliza muito o desenvolvimento de interfaces. Esta é uma ferramenta é cobrada pela Adobe®.


A Licença do Adobe® Flex™ 2 e o que é Cobrado:

O Flex, está sob a licença MPL, basicamente um
código sob a licença MPL quando o fonte copiado ou alterado sob a licença Mozilla deve continuar sob esta licença. Porém, este código pode ser combinado em um programa com arquivos proprietários como por exemplo um servidor de aplicação como da BEA. Além disso, é possível criar uma versão proprietária de um código sob a licença Mozilla. Por exemplo, o navegador Netscape 6 e 7 são versões proprietárias das versões correspondentes da suíte Mozilla.
Em todo o ambiente Flex, apenas o Flex Builder (IDE de desenvolvimento) e o Flex Charts (API para desenvolvimento de Gráficos), isto é, a princípio para se desenvolver com Flex não necessita ter gastos, lembrando que todo o SDK do Flex é OpenSource. O Flex Builder já com a API de Gráficos, fica em torno de U$500,00 a U$600,00.

O Lado “Servidor “ do Flex...


A princípio, o Adobe® Flex™ 2 não necessita de um servidor de aplicação, uma vez que o Flex é apenas umas solução para a camada de aprensentação, porém o Flex pode rodar com liguagens como Java, PHP, ASP, C#, ColdFusion, e estes necessitam de um servidor de aplicação, para isto existe Frameworks OpenSource que estão do lado do servidor, que fazem a comunicação entre o Flex, e alguma linguagem.
Como por exemplo, para integração do Flex com Java usando o servidor da BEA Workshop, existe o GraniteDataServices ou OpenAMF.

Vantagens de se utilizar o AdobeFlex:


Em comparativo com Telas em Html (JSP):
  • Não há necessidade de programar compatibilidade entre browsers, como o Firefox ou Internet Explorer, pois a aplicação Flex roda sobre uma Máquina virtual, nada mais nada menos que o plugin Flash, este encontrado em 98% dos computadores na WEB.
  • Com a ajuda do Flex Builder, o desenvolvimento fica muito ágil, uma vez que o Flex B uilder tende a ser uma ferramenta RAD(Rapid Application Development, como Delphi) o que resumidamente é clicar e arrastar para desenhar telas.

  • A interface final, sempre fica dinâmica e mais interativa.

Em comparativo com o OpenLaszlo:

  • O OpenLaszlo não contém uma IDE, o que retarda o processo de desenvolvimento.
  • O OpenLaszlo só se comunica através de XML, já o AdobeFlex, se comunica via WebServices, XML, RPC, AMF dentre outros. Lembrando que o protocolo desenvolvido pela Adobe, o AMF, é o mais rápido para troca de dados na WEB.Ver comparativo:
http://www.jamesward.org/census/
  • O OpenLaszlo conta um compilador, que compila quando uma requisição via browser é feita, logo quando se trata de uma aplicação muito grande, seu tempo de compilação é muito grande. Já o Flex pode ser compilado e depois ser colocado em produção, ou também ser compilado quando for requisitado pelo browser.

  • O OpenLaszlo não tem uma empresa administradora de reconhecimento no mercado, o que torna difícil ter uma possível consultoria.

  • A sintaxe da linguagem do OpenLaszlo a primeira vista é complicada, o que torna o tempo de aprendizado mais longo. Já com o Flex a sintaxe é muito similar com HTML.
  • Gerais..:

    • O Flex é a complementação da WEB 2.0, conceito que resumidamente deixa equivalente a visualização de um sistema Desktop e um sistema WEB. Só que de maneira mais dinâmica onde o clicar e carregar uma nova página desaparece!
    • Fácil Integração com Servidores J2EE, como por exemplo o Servidor de Aplicação da BEA WebLogic. Também vale lembrar que a BEA em suas versões mais novas, já integrou o Adobe Flex. Ver:
    BEA Flex
  • Documentação bem elaborada.
  • Suporta Clusterização.
  • Seu SDK é todo OpenSource Licenciado sob a licença da MPL.
    A Comunidade Flex está cada dia maior, logo fica fácil a troca de opiniões e dúvidas.
    Se necessário suporte da Adobe.
  • quinta-feira, 14 de junho de 2007

    Adobe Flex - Casos de Uso de Sucesso!

    Olá Pessoal!!

    Para aqueles que ainda não acreditam que o Flex esta aí para Dominar! (Ficar..)

    +)


    Segue um link de sistemas feitos em flex, usando todos os tipos possíveis de linguagens Server-side

    Ou então apenas usando as API's disponiveis na Web, como o Google e Yahoo.


    Link:
    http://www.flex.org/showcase/

    segunda-feira, 11 de junho de 2007

    Novidade no Labs: Adobe FLEX 3, Flash Player 9 Update, Adobe AIR (Apollo)

    Olá Pessoal!!

    É com imenso prazer!! que posto essa novidade!!!

    Chegou finalmente o Adobe Flex 3 e com ele o Apollo.

    Segue os Links!

    Adobe Flex 3

    Adobe Air (Codenome Apollo)

    Flash Player 9 Update


    Maiores informações vocês conseguem no blog do Grande evangelista Ted Patrick

    OnFlex


    Em breve posto algumas novidades!!


    Abraço Pessoal!!

    \o/

    sexta-feira, 1 de junho de 2007

    Adobe Flex Integrado com BEA Workshop

    Olá Pessoal!

    A BEA em sua nova versão integrou o Flex Builder em seu Workshop Studio

    Ficou muito show!!!!

    Olha ai o link do Vídeo

    http://dev2dev.bea.com/downloads/flexbldr/flexbldr.html

    Com certeza com isso o Flex já dá muitos passos na frente.


    Abraço Pessoal!!
    \o/

    quarta-feira, 23 de maio de 2007

    Traduzindo um Objeto AS para Java com OpenAMF

    A um tempo atrás, já conseguindo fazer o Flex comunicar-se
    com o Java via OpenAMF, Não estava satisfeito fazendo trocas
    apenas de atributos, queria fazer algo mais “genérico”
    fazendo apenas a troca de Objetos.

    Foi então que revirei o pai Google a procura de como resolver isso!
    mas só achava com Flash e Flex 1.0 =/

    Mas quando estava quase desistindo, apelei para o Ctrl-Espaço do Eclipse... ehheh
    Fui tentando método por método baseado na pobre documentação do OpenAMF.

    Vejam como fico:

    Depois de ter gerado um Objeto no Flex como por exemplo Pessoa,
    Passe por parametro o Objeto AS para a função:

    AS3:
    -----
    public function save(objeto : Object) : void{
    //chama o service Java para salvar o objeto
    service.call( "src.services.Service.save", new Responder(saveResult, resultFault), objeto);
    }


    E No Java uma Classe Service:

    Java
    ------
    package service;

    import com.carbonfive.flash.ASTranslator;
    import flashgateway.io.ASObject;

    public class Service {
    public void executa(ASObject objeto , String classe, String acao) throws Exception{
    Object ob = (Object) new ASTranslator().fromActionScript(objeto);
    //O ob viro um Objeto Java, agora é só persistir!!!!! +)
    }
    }

    E só! O segredo está ali no ASTranslator()

    Agora ficou fácil não!?!

    =)


    Aproveitando para argumentar....
    Aqueles que estão começando seus projetos usando OpenAMF, é melhor rever, e fazer uma análise,
    Pois o projeto OpenAMF foi descontinuado em 2006!!!!!!!
    É terrivel mais é verdade, logo, bacana procurar outros frameworks .

    Um que tá vindo com tudo ae é o GraniteDataServices (GDS) assim como o RED5


    Outra hora posso trazer um comparativo dentre os frameworks OpenSource

    Blza?!?!

    Abraço Pessoal!!

    \o/

    quinta-feira, 17 de maio de 2007

    Ajax vs SOAP vs AMF3 vs XML

    Olá Pessoal!

    Estava olhando meu iGoogle, e vi um post do JamesWard onde ele fez um Censo

    sobre os protocolos de Carregamento de Dados RIA!

    e Advinha que sai na frente!??!?

    AMF3!!!!!!!!!!!

    nem se compara com os outros!!!

    Faça sua própria Análise aqui:
    Link

    e Viva ao Flex!!

    aproveitando... alguem ae ouviu falar do protocolo do M$ SilverLight?!

    =)

    Abraço Pessoal!!
    \o/

    domingo, 13 de maio de 2007

    DataGrid - ToolTip com Imagem

    Olá Pessoal!!

    =)

    Primeiro... Feliz dias das Mães!!!!

    Elas merecem!! Principalmente a minha!! Te Amuh Maew!!!

    +)

    Mas Então, essa semana meu cliente pediu para visualizar a imagem do Produto a qual ele quisesse. Só que como eu mostraria imagem de mais de 200 produtos listado em uma DataGrid !? Aí que tive a idéia de quando Clicar na Row do produto, mostrasse sua Miniatura!

    Vamos ver como ficou!?

    É Muito simples..

    AS3:

    //Imports das lib que irei utilizar
    import mx.collections.ArrayCollection;
    import mx.controls.ToolTip;

    //Var ToolTip

    [Bindable]
    public
    var tp:ToolTip = new ToolTip;

    //Array que contem os dados: Nome, autor, e nome da Imagem.
    [Bindable]
    private var listaArtes:ArrayCollection=new ArrayCollection();

    //Funcao init para carregar o array
    private function iniciar():void{

    listaArtes = new ArrayCollection();

    listaArtes.addItemAt({nome:"Homem Aranha",autor:"MARVEL",imagem:"1.jpg"},0);

    listaArtes.addItemAt({nome:"Mulher Quadro",autor:"www.olhares.com",imagem:"2.jpg"},1);

    listaArtes.addItemAt({nome:"Papel de Parede",autor:"www.olhares.com",imagem:"3.jpg"},2);

    listaArtes.addItemAt({nome:"Casa Antiga",autor:"www.olhares.com",imagem:"4.jpg"},3);

    listaArtes.addItemAt({nome:"Lampada",autor:"www.olhares.com",imagem:"5.jpg"},4);

    listaArtes.addItemAt({nome:"Anjo Guardiao",autor:"www.olhares.com",imagem:"6.jpg"},5);

    }

    //Funcao chamada pela DGrid ao Clicar em um produto na Grid
    public function showImagem(img:String):void{

    //Coloco um um BG no Tooltip mapeando o dir que se encontra a img
    tp.setStyle('backgroundImage',"imagens/" + img);

    tp.width = 300;

    tp.height = 200;

    tp.x = 20;

    tp.y = 250;

    tp.setVisible(true);

    addChild(tp);
    }

    //Funcao chamada pela DGrid quando tirar o mouse do produto
    public function ocultImagem(event:Event):void{

    tp.setVisible(false);
    }

    MXML:

    <> id="dgArtes" dataProvider="{listaArtes}" width="620" height="203"

    itemClick="showImagem(dgArtes.selectedItem.imagem)" itemRollOut="ocultImagem(event)"

    horizontalCenter="0" verticalCenter="-96.5" selectedIndex="0" alpha="0.53" themeColor="#c0c0c0">

    <mx:columns>

    <> headerText="Nome" dataField="nome"/>

    <> headerText="Autor" dataField="autor"/>


    Download do Source:

    Link

    Aplicação Rodando:

    Link

    Blza Pessoal!!

    Abraço!!!

    \o/

    quinta-feira, 3 de maio de 2007

    Vencedores do Torneio Flex Developer

    Olá Pessoal!!

    Saiu os vencedores do Flex Developer Derby

    As aplicações Flex, ficaram muito show!!

    Pode-se dizer que é um preview do que vem ai pela frente!! +)

    Segue o Link:

    http://www.adobe.com/devnet/logged_in/flexderby_results.html


    Blza?!

    Recado Dado...

    Abraço Pessoal!!

    \o/

    sábado, 28 de abril de 2007

    Adobe Spry: Web 2.0 com Ajax!

    Olá Galerinha!!

    =)

    Essa semana eu estava olhando o Labs da Adobe,

    E me deparei com esse Poderoso Framework, o Adobe Spry!

    O Spry assim como o GWT (Google Web Toolkit), YUI (Yahoo! UI Library), ou tantos outros,

    São Frameworks OpenSources para desenvolvimento Web com Ajax seja ele no Visual (Drag and Drop, Efeitos)

    Ou no negócio. Isto é, uma maneira de desenvolver Web 2.0! só que independente de plugin

    Apenas utilizando JavaScript e Ajax, uma opção aqueles que infelizmente não gostam do "perfeitinho" plugin flash

    Bom, O que eu admirei no Spry em relação aos outros frameworks!

    • O código final, é muito enxuto, são apenas alguns includes nos JavaScripts que são suas Libs.
    • Alguns não gostaram, mas você trabalha usando Tags Spry, tipo uma TagLib do JSP, o que Torna o código fácil de entender e muito mais acessível.
    • Ele vem junto com o Adobe Dreamweaver CS3, o novo editor Web da Adobe, que por sinal na aparência não mudou nada, mas para desenvolver ficou show! Dá para fazer Tabelas dinâmicas igual ao Delphi4PHP, apenas Clicando e arrastando! =)
    • Tem uma rica biblioteca que a mãe Adobe, chama de Widgets, que nada mais nada menos é uma coleção de componentes que tem a mesma aparência comportamento que um componente do Adobe Flex2, só que feito em JavaScript
    • Entre outros que aos poucos ainda estou percebendo! +)

    Conclusão...

    • Adobe Spry é uma alternativa para quem não gosta do Plugin Flash, ou quer desenvolver RIA apenas com html.
    • Tem uma poderosa IDE o Adobe Dreamweaver CS3, para auxílio no desenvolvimento.

    Alguns Links

    Wiki Labs Adobe Spry
    Link

    Demos de Aplicações feitas com Spry
    Link

    Qualquer dia desses post um tutorial sobre Spry!

    Blza Galerinha!?!?

    Abraço, tudo de bom!

    \o/

    quinta-feira, 26 de abril de 2007

    Flex: Adobe to Open Source Flex

    É isso mesmo que você leu!!

    A adobe resolveu abrir todo o código fonte do SDK Flex!!!

    Hoje cedo, minha caixa de entrada de e-mails estava cheia só falando desta ótima notícia

    +)

    isso é muito bom!!! principalmente para aqules que amam Software Livre

    E Principalmente para aqueles que querem convercer seus chefes, de que o Flex é Bao!


    Segue o Link do Labs:

    http://labs.adobe.com/wiki/index.php/Flex:Open_Source


    Viva ao Software Livre!!


    \o/


    Abraço Pessoal........

    sábado, 21 de abril de 2007

    Delphi PHP - Populando uma DataGrid com Dados do MySQL

    Olá Pessoal!!
    Já Baixaram o Delphi for PHP!?!!
    Quem ainda não, pow baixe logo, é show ! Como gosto de dizer, é muito poderoso!!



    Quer Ver?!

    Vamos lá então, primeiro pra quem não tem, faça o download aqui:
    http://www.codegear.com/Downloads/tabid/101/Default.aspx

    Tem que fazer um cadastro bem rápido e através deste registro, eles mandaram uma Key para o seu e-mail.

    Após baixado, pra instala é muito fácil!! Só “next” “next” e etc... ehehe

    talvez na hora da instalação ele mostre se você quer adicionar 2 dlls,aceite as 2, uma é do MySQL, outra do Interbase.

    Após instalado, perceba que ele já instalou um servidor Apache, e um Debbuger.
    Abra o Delphi4PHP e entre com sua Key que foi enviada ao seu mail.
    Após isso, tem que aparecer esta tela:


    Igual ao velho Delphi de Guerra vai dize?

    Vamos Fazer uma Aplicação Conectando com Banco MySql, populando uma dataGrid Editável!?!? E o melhor!! Em menos de 15 minutos?
    +)

    Primeiro de Tudo, precisamos ter um banco no MySQL, para isso use esse script:


    CREATE DATABASE `teste`
    CHARACTER SET 'latin1'
    COLLATE 'latin1_general_ci';
    USE `teste`;
    #
    # Structure for the `paises` table :
    #
    CREATE TABLE `paises` (
    `idPaises` tinyint(3) unsigned NOT NULL auto_increment,
    `nomePais` varchar(45) collate latin1_general_ci default NULL,
    `siglaPais` char(2) collate latin1_general_ci default NULL,
    PRIMARY KEY (`idPaises`)
    ) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
    #
    # Data for the `paises` table (LIMIT 0,500)
    #
    INSERT INTO `paises` (`idPaises`, `nomePais`, `siglaPais`) VALUES
    (1,'Brasil','BR'),
    (2,'Paraguai','PY'),
    (3,'Argentina','AR'),
    (4,'Chile','CL'),
    (5,'Afeganistão','AF'),
    (6,'Estados Unidos','US');
    COMMIT;



    No Delphi4PHP, Clique em New, depois Marque PHP, e selecione Application, em seguida um OK.

    Perceba que ele já gerou uma unit que na verdade é um Form também!

    Ali no Tool Pallete, localize e arraste para o Form os componentes:
    • Database
    • DataSource
    • Table
    • DBGrid

      Assim que arrastar, tem que ficar algo assim:

    Tendo arrastado, e partindo que você já tenha configurado seu banco vamos configurar os componentes:
    Clique em Datebase1 e no object Inspector no lado esquerdo, configure sua conexão com o banco

    • Conected: true;
    • DatabaseName: teste;
    • DriverName: mysql;
    • Host: localhost;
    • UserName: NomeDoUserdoSeuBanco (no meu caso root);
    • UserPassword: SenhaDoSeuUsuario


    O resto deixe como está.


    Agora em Table1 , configure assim:

    • Active: true;
    • Database: Database1
    • TableName: Paises;

    Em Datasource1, assim;

    • DataSet: Table1;


    E Finalmente na DataGrid (DGGrid1), configure assim:

    • DataSource: Datasource1;


    Prontinho!! Agora é só salvar e executar clicando na Flecha verde logo acima.

    Tem que aparecer algo assim:



    Muito fácil não?, fora que pela DataGrid você pode alterar os dados!!


    Bom Pessoal , acho que deu pra ter uma idéia da guerra que está por vir...
    É Adobe Flex de um lado, Laszlo de outro, Delphi 2007, JSF e assim vai!

    Abraço Pessoal!!
    E Obrigado a todos que estão acompanhando meu BloG!
    \o/

    segunda-feira, 16 de abril de 2007

    Gerenciamento de Memória, Framework para Desenvolvimento RIA e O Jeito de Programar Web 2.0

    Olá Pessoal!!

    Quanto tempo não!??! sabe como é alguns pequenos sistemas pra termina, outros pra começar
    bateria de provas na Faculdade, Problemas que me dão dor de cabeça!
    e porai vai...

    Mas então, vamos ao que interessa!

    É impressionante como as aplicações em Flex está crescendo, e infelizmente, a galera pega o Flex Builder, vai arrastando os componentes fazendo algumas telas, e já acham que dominam o pai Flex,
    e se acham pronto a desenvolverem sistemas! infelizmente é assim que acontece na maioria das vezes.
    O próprio conceito,
    Web2.0, nem ao menos sabem do que se trata o.O

    Mas não estou aqui para julgar ou algo do tipo!! não é??

    +)


    Gerenciamento de Memória do Flash Player

    Um dos principais problemas em desenvolver aplicações com Flex, é desenvolver telas, tendo um controle de armazenameto de memória,

    "o problema sobre o não real descarregamento da memória está muito mais ligado à natureza do Flash e do Flex SDK"

    Por: Fabio Terracini

    • A arquitetura do Display List não permite (na verdade dificulta muito) que um DisplayObject seja removido completamente da memória, e o SDK é tão interligado que é muito difícil remover todas as referências de alguma instância para esta estar completamente sujeita ao GC (Garbage Collection.
    • Assim, mesmo que vc faça button = null, parte dele continuará na memória. E isso piora ainda mais quando o objeto for para o displaylist. Um objeto "aparecer na tela" também consome memória.

    Isto é, infelizmente o Flash Player, não tem um GC (Garbage Collection) muito aprimorado, ele vai carregando e carregando a memória, até travar o browser, ou gerar erros.

    Não que eu esteja condenando o tão pequeno e simples Flash Player porém muito poderoso! e sim aqueles que desenvolvem suas aplicacões seja ela em puro Flash, ou Flex , de maneira desogarnizada.

    Para isso..


    Framework MVC - Cairngorm


    No Mundo O.O existem os Framewoks MVC
    Model View Controller ou Modelo-Visão-Controlador, estes responsáveis por organizar e separar o negócio da camada view, isto é, tem um cara ali por traz em seu desenvolvimento, organizando tudo!

    Para trabalhar com o Flex, existe o Cairngorm, Poderoso Framework MVC para aplicações RIA, este provido de uma empresa alheia, hoje fundida a Adobe! +)

    O Cairngorm utiliza os seguintes design patterns:

    • View Helper
    • Front Controller
    • Command
    • Sequence Command
    • Business Delegate
    • Service Locator
    • Value Object
    • View Locator
    • Model Locator
    • Responder


    View Helper

    O View Helper é um auxiliar para a view, ou seja, a nossa tela. Seu propósito é literalmente separar a lógica da tela com a tela em si, ou seja, funções que manipulam a tela dos elementos de interface da tela (grids, listas, e afins). Desse modo, mantém a tela responsável por formatar os dados, enquanto a responsabilidade de pegar, processar e preparar os dados é do View Helper.

    Front Controller

    A medida que os use cases de um determinado software aumentam, aumenta também a quantidade de serviços da aplicação, inclusive de serviços comuns, como autenticação e log. Desse modo, o Front Controller é um ponto de contato para cada request, separando a camade de negócios da camada de apresentação. O Front Controller fica “escutando” os eventos ocorridos e controlando o fluxo da aplicação.

    Command

    Quanto mais código é adicionado no Controller referente aos use cases, cresce a sua complexidade e dificulta sua manutenção. Desse modo, propõe-se reduzir a complexidade do Controller reduzindo sua lógica. Com o Command, o Front Controller fica livre para a sua principal tarefa, delegar para alguém fazer o trabalho. O Command, por fim, é implementado por use case, gerenciando a resposta de um método remoto. Como é por use case, dois Commands podem chamar o mesmo método remoto, mas em seu tratamento de resultado, podem realizar tarefas diferentes.

    Business Delegate

    O Business Delegate propõe não expor os detalhes de implementação de serviços de negócio. Dessa forma, ele visa ocultar a complexidade de comunicação remota, acessando a camada de negócio. As conexões cliente-servidor ficam centralizar e o mesmo método pode ser utilizado por diferentes Commands.

    Service Locator

    Criar conexões de diferentes serviços não é a preocupação do desenvolvedor em Flex, já que os dados que ele irá utilizar independem do tipo de serviço remoto. O Service Locator é uma abstração da implementação de serviços, escondendo de seu cliente (o Business Delegate) os detalhes de conexão.

    Value Object

    O Value Object (VO) resolve o problema de transferência de dados entre camadas da aplicação, já que o que importa não é como os objetos são representados (em ColdFusion, em Java, etc..), mas sim os dados desses objetos. O VO é um container para dados que representa uma entidade do sistema, possibilitando interoperabilidade entre as camadas.

    View Locator

    O View Locator é utilizado para localizar e retornar a instância de uma tela, de modo que seja possível, em qualquer lugar da aplicação, manipular uma tela através de seu repesctivo View Helper.

    Model Locator

    O Model Locator é a memória da aplicação, onde os objetos de dados (um objeto que popule um comboBox, ou um grid, as imagens utilizadas na aplicação, etc) utilizados na aplicação são iniciados e guardados, como um “storage”. O Cairngorm utiliza a API de Data Binding do Flex no Model Locator, de modo que basta a variável ser alterada no Model Locator para que o dado reflita diretamente na tela.

    Responder

    O Responder é implementado para associar o objeto responsável pelo tratamento do resultado de uma chamada remota. Sua implementação é no Command.

    Event Broadcaster

    O Event Broacaster é utilizado pela aplicação para notificar o Controller (que está “escutando”) que algo aconteceu.

    Diagrama de Exemplo:




    Links Sobre o Cairngorm:

    http://labs.adobe.com/wiki/index.php/Cairngorm

    http://www.iterationtwo.com/open_source_cairngorm.html

    Componente ViewStack

    Enfim, para quem quer começar uma grande sistema, muito bacana usar o Framework, porém

    nem sempre são aplicações grandes! e como fazer para que mais tarde eu não tenha problemas com memória!?!?

    Ta aí uma solução que a Adobe implementar entre a versão Flex 1.5 para a Flex 2.0, a modolurização!

    isto é, um componente (ModuleLoader) que carrega swf`s externos em tempo de execução, poderoso com certeza, porem os mais críticos dizem que não é a melhor solução!

    Logo!! +)

    Existe o componente ViewStack!! também poderoso e inteligente componente que faz o consumo de memória ficar baixo!

    Quando usar um, preste atenção em seu comportamento!, Ex:

    Você tem várias abas dentre um ViewStack, ao abrir pela primeira vez, ele só descarrega na memória logo também na maquina cliente, o que irá exibir somente nesta tela, as outras abas, não são carregados absolutamente nada! o que para uma aplicação Web, se torna muito importante!

    Estas outras Abas só irão ser carregadas após selecionadas, depois armazenadas em cache no Navegador do Cliente!

    O Jeito de Programar Web 2.0


    Bacana não!! Agora uma coisa lhes digo! se você é da época em que se programava com Delphi, Centura, VB, ou umas dessas linguagens Desktop, kra... infelizmente! temos que reaprender a programar, e rever todos os conceitos Web2.0!!

    Porque digo isso, antigamente, quando se criava telas de cadastro, Ex:

    Você tinha um Main que por sua vez Chamava a tela de Cadastro de Estados, e se não houvesse tal pais para tal estado, deveria Fechar a tela, ou abrir mais uma tela para Cadastrar o Tal país!! o.O

    Complicado não? a você que pensa assim, lhes apresento a Web2.0, +)

    Onde não existem inúmeras Telas! e sim uma Tela inteligente, capaz de ter todo o conteúdo necessário em apenas algumas telas!

    Quer entender melhor do que estou falando!?

    Pega esse Link

    FlexStore

    Show de Bola não!? viu o carrinho de compras?!? o componente de Comparativo!?! o Estilo de Contato!?

    Bacana neh.... é isso ae.... A Web 2.0 (Já chamo de 3.0! =) vindo para Inovar e Facilitar a nossa vida!!

    Resumindo! +)

    • Para Aplicações Maiores, utilizar um Framework MVC, no caso o Cairngorm
    • Para Aplicações Menores, interessante usar o componente ViewStack
    • Antes de começar a fazer a Telas, pense Web2.0! pense Flex! +)
    Blza Galerinha !?!

    ah Muito Obrigado a todos aqueles que tem acompanhado as noticias aqui do Blog!
    O Números de visitas tem aumentado bastante! =)

    Abraço Pessoal!!
    \o/



    Referências

    Architecting Flex Applications: Cairngorm and RIA Microarchitecture
    CFGigolo
    DClick

    terça-feira, 10 de abril de 2007

    Ambiente com Flex2.0, Apollo, PHP, TomCat6.0 - Download!

    Olá Pessoal,

    Andei recebendo bastante e-mails com dúvidas de como configurar um ambiente para desenvolvimento!!

    Vendo isso!! +) resolvi disponibilizar o meu Eclipse, ele vem:

    • Plugin Flex Builder 2.0;
    • SDK Flex 2.0;
    • SDK Apollo;
    • Plugin PHP;
    • Plugin Search Koders;
    • TomCat Server 6.0 c/ Plugin;
    • Pluigin Xampp;
    Isto é, bem completinho para desenvolvimento WEB!

    Link Para Download:
    Link

    Para instalar, é muito fácil, partindo que você já Tenha instalado o JSDK 5.0 ou 6.0 no diretório
    padrão, que é:

    C:\Arquivos de programas\Java\jdk1.6.0\bin

    É só extrair na raiz do diretório C:\

    Ficando:

    C:\Eclipse\Flex\
    C:\Eclipse\Eclipse\
    C:\Eclipse\Apollo\
    C:\Eclipse\TomCat\

    e etc...


    Blza?!

    Muito Fácil não!?

    Abraço Galerinha!!
    \o/

    segunda-feira, 9 de abril de 2007

    Delphi 2007.... Delphi for PHP

    Olá Pessoal!

    Esta, é para aqueles que gostam de Delphi ou PHP!

    Foi Lançado recem, o Delphi 2007, para desenvolvimento Win32, e Delphi for PHP
    O Delphi para PHP, ainda não tenho muitos detalhes, mais assista esse vídeo, e você saberá do que eu estou falando!

    http://video.codegear.com/php/DBGridDelphiforPHP-ENGLISH/DBGridDelphiforPHP-ENGLISH.html

    A IDE lembra é uma IDE de verdade, com gerenciamento de projeto e criação de aplicações no estilo arrastar e soltar.
    Segue o mesmo conceito de componentes usados no Delphi, com uma biblioteca visual com 50 componentes (VCL) e a possibilidade de adicionar novos e estender os existentes.
    Tudo que os programadores Delphi estão acostumados, mudando apenas a linguagem.


    Umas das principais vantagens é que ele dá suporte para:
    • Windows Vista®
    • AJAX

    Bacana Não?

    Bom Maiores características você pode ter aki:

    Link

    Downloads (CodeGear)

    Link

    Blza!??!

    Abraço Galerinha!!

    \o/

    domingo, 8 de abril de 2007

    Adobe Flex e Efeitos

    Olá Pessoal!! +)

    quando nós estamos programando, todo mundo sabe que as vezes se estressa,

    principalmente quando aquela função, chamada, ou o que for, não funciona!

    mas, normal isso... e Sabe o que eu gosto fazer quando chega esses momentos!!?

    Eu gosto de brincar com a aparência da aplicação, e o flex! já pensando em tudo, deixou pré tags para efeitos!

    Efeitos Básicos:
    • Blur
    • Dissolve
    • Fade
    • Glow
    • Iris
    • Move
    • Resize
    • Rotate
    • Zoom
    Tratar efeitos com o flex é muito Fácil!! pra começar, ele já vem pronto os efeitos! e claro também
    dá a possibilidade de personalizar.

    1 -Exemplo de usar o efeito Pronto ao Abrir uma "TitleWindow":


    mx:TitleWindow creationCompleteEffect="Zoom"


    Esta, é uma tag da TitleWindow, observe o atributo creationCompleteEffect="Zoom" com isso, você aplica um efeito no na TitleWindow, muito simples.


    2 -Você também pode personalizar o efeito! ex:

    No mxml crie esta tag:

    mx:Zoom id="efZoom" startDelay="10" originX="1" duration="3000"

    você já vai perceber que o efeito foi aprimorado com as definições que você fez.

    para usar este efeito é só colocar a id do efeito, aonde você quer colocar o efeito



    creationCompleteEffect="{efZoom}"


    Neste exemplos só utilizei os efeitos ao form se criar, em todos os componentes você pode colocar efeitos nestes atributos:

    • addedEffect
    • creationCompleteEffect
    • hideEffect
    • mouseDownEffect
    • mouseUpEffect
    • moveEffect
    • removedEffect
    • resizeEffect
    • resizeEndEffect
    • resizeStartEffect
    • rollOutEffect
    • rollOverEffect
    • showEffect
    Bom, eu fiz uma aplicação bem simples demonstrando como aplicar os efeitos nos forms e nos componentes

    Aplicação Rodando
    Link

    Download do Source
    Link





    quarta-feira, 4 de abril de 2007

    "Thiking in Flex"

    Olá Pessoal!!,

    hoje estava pesquisando algumas coisas da BEA, e derrepente em meio aquelas propagandas enormes, vejo um titulo assim:

    "Thiking in Flex"

    Eu, poxa vida, quem é que tá fazendo a brincadeira sem graça, de usar o título do livro mais famoso de java
    (Bruce Eckel ) colocando o Flex no meio, e nossa! levei um susto não que o "JavaMan" estava desenvolvendo aos monte, aplicações envolvendo Flex e Java?!

    Ele e mais o James Ward, desenvolveram uma arquitetura poderosa, usando Flex, Hibernate, and XFire.


    Achei muito bacana, claro que deve ter uma porção da Adobe em cima disso, mais bacana saber que no nosso time tem grandes jogadores!! +)

    Links:

    http://www.tryflex2.com/?sdid=RWVT&sourcecode=RWVT&TRACKVAR=sdid%5C

    http://www.adobe.com/devnet/flex/articles/flexjava.html?sdid%5C=RWVT


    terça-feira, 3 de abril de 2007

    DigOWs - Flex Browser!

    Otem a noite, em meia a tanta coisa pra faze! resolvi fazer um Browser em Flex,
    uma vez a muito tempo atraz tinha lido alguem que queria fazer isso...

    Tempo Gasto: 2:30

    A lógica é bem simples,
    Em um Application, crio um canvas que será meu Frame.
    Este Frame, será preenchido com o resultado de uma chamada a um JavaScript que se encontra no HTML.

    Frame(Canvas):

    /**
    * Valida, e Passa o source (URL) para carregar o Frame.
    **/

    public function set source(source: String): void{
    if(source){
    if (! ExternalInterface.available){
    throw new Error("ExternalInterface não funciona neste Browser, somente Internet Explorer 5 ou superior, Firefox Mozilla 1.7.5 , Opera , ou Browsers que suportam NPRuntime ");
    }
    __source = source;
    //Chama o JavaScript e carrega o Frame.
    ExternalInterface.call("carregaIFrame", source);
    moveIFrame();
    }
    }



    O ExternalInterface, é a class responsável por fazer uma chamada a uma lógica em JavaScript no HTML, porisso chama-se "ExternalInterface".


    HTML:

    function carregaIFrame(url){
    }


    Download do Source da Aplicação:
    (
    Link)





    sexta-feira, 30 de março de 2007

    Flex Java e MySql - Troca de Objetos com OpenAMF

    EDITADO DIA 23/01/2008

    Olá Pessoal, Este artigo faz uso do Framework OpenAMF que já foi desecontinuado.
    Recomendo a leitura deste artigo -> http://blog.digows.com/?p=103
    Que faz uso da solução OpenSource da Própria Adobe, o BlazeDS.

    Porém, se você está aprendendo, ainda sim o tutorial abaixo é válido.

    EDITADO DIA 13/10/2007

    ATENCÃO!
    O código fonte disponibilizado, foi melhorado e atualizado.

    Para fazer o Download do mesmo clique aqui**:
    Projeto JavaFlex com OpenAMF

    Para utilização, apenas extraia o arquivo TutuJavaFlex.rar na pasta webapps do tomcat, ficando:
    ..\Tomcat\webapps\JavaFlex\*.*

    Após isso, gere um banco de dados através do script dentro da Pasta JavaFlex: javaflexBD.sql
    Feito isso, acesse: http://localhost:8080/JavaFlex/bin

    Para edições , importe o projeto no Eclipse com o plugin do FlexBuilder instalado.

    Lembrando que a apresentação abaixo apenas esclarece cada passo realizado.(...)


    (...)

    Mais então, um dos assuntos mais comentados pela net, é como deixar o Flex, como Camada de Apresentação para o Java,

    realmente, se tem poquissimo material sobre este assunto, e o pouco que tem, meio complicado de entender,
    eu mesmo já apanhei muito no começo, quem me deu uma mão na roda foi o "Mindu" do Grupo Google (FlexDev), hoje até já montei uma arquitetura usando Java, Flex, Hibernate, e OpenAMF trocando somente objetos!

    Mas então, vamos lá?!


    =====================================================

    Requerimentos:
    -- Ambiente configurado com Flex Builder, Java e TomCat ou similar;

    --Conhecimentos Básicos de Java e Flex;

    --MySQL® Connector/Java;
    (Download: Link)

    --OpenAMF RC12 - Java Flash Remoting;
    (Download: Link)

    1- Abra seu Eclipse, com Plugin do FlexBuilder, e crie um novo projeto Java com o nome de TutuJavaFlex (File=>New=>Project=>JavaProject).

    O Projeto tem que ficar na pasta webapps do TomCat normalmente: "C:\tomcat\webapps\"
    Ficando: "C:\tomcat\webapps\JavaFlex"


    2- Vá até o a pasta "JavaFlex" pelo o explorer, e dentro dela, crie uma pasta chamada de
    "WEB-INF" e dentro desta pasta, adicione os esses arquivos:





      • Bibliotecas do OpenAmf e o driver do MySql utilizadas na aplicação
    - ant.jar
    - astranslator-1.5.9.jar
    - axis.jar
    - commons-beanutils-1.7.0.jar
    - commons-codec-1.3.jar
    - commons-collections-3.1.jar
    - commons-digester.jar
    - commons-discovery.jar
    - commons-httpclient-3.0.jar
    - commons-lang-2.1.jar
    - commons-logging-1.0.4.jar
    - dom4j-1.6.jar
    - log4j-1.2.9.jar
    - mysql-connector-java-xxx-bin.jar
    - openamf.jar
    - wsdl4j.jar
    • O Arquivo de configuração openamf-config.xml não sofreu alteração, basta copiá-lo do arquivo openamf-xxx.zip e adicionar na pasta WEB-INF da sua aplicação.
    • Arquivo web.xml da aplicação com a configuração do OpenAmf se encontra no .rar baixado.

    Estrutura (WEB-INF):

    /WEB-INF
    /lib/"OS JARS";
    /WEB-INF/"
    openamf-config.xml" e "web.xml";
    /WEB-INF/classes/"Futuras Classes Javas";

    Volte ao FlexBuilder e de um F5 para Atualizar o projeto, e depois de um botão direito sobre a pasta raiz do projeto(TutuJavaFlex), e vá até properties =>Java Builder Path =>Libraries => ADDJars , navegue até a pasta lib, e selecione todos os Jars disponiveis, OK;
    Em Source, vá até "default output folder" e navegue até a pasta classes dentro de WEB-INF
    ("WEB-INF/classes") OK.


    3- Vamos Criar uma Tabela 'pais' em um banco qualquer para o exemplo:


    CREATE TABLE `pais` (
    `id` int(10) unsigned NOT NULL auto_increment,
    `pais` varchar(255) NOT NULL default '',
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB;


    4- Volte ao FlexBuilder, e crie uma pasta src no diretório raiz do projeto, e dentro dela, uma chamada java;

    5- Dentro da pasta java, crie uma classe Java chamada Pais.java, dentro dela crie uma bean java normal:

    package src.java;
    public class Pais{
    public int id;
    public String pais;
    public int getId(){
    return id;
    }
    public void setId(int id){
    this.id = id;
    }
    public String getPais(){
    return pais;
    }
    public void setPais(String pais){
    this.pais = pais;
    }
    }


    6- Ainda Dentro da pasta Java, crie uma classe chamada PaisDAO.java que se encontra no projeto
    baixado.



    Esta é uma classe java normal, aonde tem os Sqls, e a conexão com o banco;

    No método:

    public Connection getConnection()throws Exception {
    if(conn == null){
    Class.forName("org.gjt.mm.mysql.Driver");
    conn = DriverManager.getConnection("jdbc:mysql://localhost/test?user=root&password=");
    conn.setAutoCommit(false);
    }
    return conn;
    }


    Altere, o "test" para o nome do Banco que Você irá usar, assim como "user" e "password".


    7- Crie mais uma nova classe java, chamada PaisService.java, e adicione os códigos igual ao do rar baixado.

    8- Agora, dentro da pasta src, crie uma pasta chamada flex, até agora, já criamos todos os arquivos java necessários para este exemplo;

    9- Já que o java já esta criado, de um Botão direito sobre o projeto e vá em
    Flex Project Nature -> Add Flex Project Nature


    10- Agora vá até a pasta flex e crie uma classe ActionScript chamada RemotingConnection.as
    iguamente ao que se encontrar no aquivo rar baixado.

    Perceba a que exite essa linha:

    public var sURL:String = "http://localhost:8080/JavaFlex/gateway";


    Se Voce Não mudou o nome do diretório, deixe como está.

    Esta é a classe principal, é ela que faz a conexão entre o Flex(Flash) e o Java, isto é, ela cria um

    gateway (Ponto de Acesso) , entre os 2.





    11- Belza!! agora vamos ao mais divertido, criar telas! +)
    para isso, automaticamente deve ter criado um arquivo chamado: JavaFlex.mxml na raiz do projeto, e adicione códigos iguamente ao que se encontrar no aquivo rar baixado.

    O código esta bem comentado, está bem fácil de entender! =)

    Pronto!! Sua Aplicação Já está Feita!! +)

    Vamos Executar?

    Vá ao menu:

    Project=>Clean

    (Depois em desenvolvimento, gosto de deixar marcado a opção "Build Automatically")

    Start o TomCat e

    acesse: http://localhost:8080/JavaFlex/bin/JavaFlex.html

    se vc fez tudo correto, funcionará!! +)

    bom pessoal, para entender melhor como funciona a comunicação entre essas 2 poderosas linguagens, bacana seria ler a documentação do OpenAMF, Vale a pena!

    Abraço Pessoal!!!! \o/

    Download do Projeto Completo: Link
    (Para utilizar, é só importar para o eclipse e dar um Clean)