<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TSW - That Should Work Blog &#187; Flash Builder 4</title>
	<atom:link href="http://blog.msdevstudio.net/tag/flash-builder-4/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.msdevstudio.net</link>
	<description>Flash, Flex, Web e Aplicações Ricas para Internet!</description>
	<lastBuildDate>Tue, 07 Feb 2012 18:30:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Eclipse / Flash/Flex Builder 3/4 &#8211; Multiplos Workspaces</title>
		<link>http://blog.msdevstudio.net/2010/06/16/eclipse-flash-builder-34-multiplos-workspaces/</link>
		<comments>http://blog.msdevstudio.net/2010/06/16/eclipse-flash-builder-34-multiplos-workspaces/#comments</comments>
		<pubDate>Wed, 16 Jun 2010 12:04:15 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Flash Builder 4]]></category>
		<category><![CDATA[RIA's Geral]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[multiplos]]></category>
		<category><![CDATA[workspaces]]></category>

		<guid isPermaLink="false">http://blog.msdevstudio.net/?p=1927</guid>
		<description><![CDATA[Bom, tenho estado a migrar os meus workspaces do Flex Builder 3 e Flash Builder 4 para o dropbox (que nos permite a sincronização dos nossos ficheiros online, acabando assim com as pen&#8217;s USB ou discos externos) que se comportou lindamente&#8230;todos os meus workspaces de casa, trabalho, laptop estão sincronizados&#8230; e ainda consigo aceder a [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Bom, tenho estado a migrar os meus workspaces do Flex Builder 3 e Flash Builder 4 para o <a href="https://www.dropbox.com/referrals/NTcxNjAzNjU5">dropbox</a> (que nos permite a sincronização dos nossos ficheiros online, acabando assim com as pen&#8217;s USB ou discos externos) que se comportou lindamente&#8230;todos os meus workspaces de casa, trabalho, laptop estão sincronizados&#8230; e ainda consigo aceder a eles no meu nexusone (android) e inclusive fazer pequenas alterações, adicionar, alterar ou apagar arquivos ou dados&#8230;</p>
<p style="text-align: justify;">Mas a minha dica é outra&#8230; no trabaho não convem eu ter misturadas as coisas, então eu queria usar ambos os workspaces no Flash Builder, mas de forma separada&#8230; ou seja, poder ter os 2 workspaces sem ter que andar a altera-los cada vez que inicio o Flash Builder&#8230; e então? como fazer isto?</p>
<p style="text-align: justify;">A nivel de plugins para o eclipse (para quem nao sabe o flash builder é baseado no eclipse) não encontrei nada, então cheguei a uma solução bem facil&#8230; façam uma cópia do atalho do Flash Builder 4 e coloquem como argumento no executável o seguinte (propriedades):<strong> -data &#8220;c:\caminho\para\o\outro\workspace&#8221;</strong> e desta forma podemos ter um segundo atalho para outra instancia do flash builder que automaticamente carrega o segundo workspace&#8230; eu por exemplo tenho 2 atalhos: <strong>Flash Builder 4 Work</strong> e <strong>Flash Builder 4 Home</strong>, desta forma posso trabalhar nos 2 em qualquer lado sem necessidade de os ter misturados ou andar a seleciona-los de cada vez que inicio o flash builder&#8230;</p>
<p style="text-align: justify;">É uma dica simples, mas que me foi muito util!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2010/06/16/eclipse-flash-builder-34-multiplos-workspaces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash Builder 4; Uma análise mais a sério!</title>
		<link>http://blog.msdevstudio.net/2009/06/26/flash-builder-4-uma-analise-mais-a-serio/</link>
		<comments>http://blog.msdevstudio.net/2009/06/26/flash-builder-4-uma-analise-mais-a-serio/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 11:35:36 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Action Script & MXML]]></category>
		<category><![CDATA[Análises]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Builder 4]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[RIA's Geral]]></category>
		<category><![CDATA[Analise]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Gumbo]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[spark]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[zendFramework]]></category>

		<guid isPermaLink="false">http://msdevstudio.com/blog/?p=1056</guid>
		<description><![CDATA[Bem, e as novidade não são poucas&#8230;.muita coisa melhorou e muitas outras coisas foram acrescentadas nesta nova versão. Depois da publicação de um artigo meu em inglês no thetechlabs foi acordada também a publicação aqui no blog da sua versão em Português e aqui vai. Neste artigo vamos discutir alguns pontos desta nova versão do [...]]]></description>
			<content:encoded><![CDATA[<p>Bem, e as novidade não são poucas&#8230;.muita coisa melhorou e muitas outras coisas foram acrescentadas nesta nova versão. Depois da publicação de um artigo meu em inglês no <a href="http://thetechlabs.com">thetechlabs</a> foi acordada também a publicação aqui no blog da sua versão em Português e aqui vai.</p>
<p style="text-align: justify; ">Neste artigo vamos discutir alguns pontos desta nova versão do antigo Flex Builder agora chamado Flash Builder, heis os pontos aqui discutidos:</p>
<ul>
<li><strong>Criando um novo Projecto.</strong></li>
<li><strong>Namespaces</strong></li>
<li><strong>Temas e Skins</strong></li>
<li><strong>Novidades a nivel do Action Script &amp; MXML</strong></li>
<li><strong>Wizard de código e Serviços</strong></li>
<li><strong>Ligações de dados; Exemplo PHP (+ ZendFramework)</strong></li>
<li><strong>Interacção com dados</strong></li>
<li><strong>Documentação AS3</strong></li>
<li><strong>Unit Tests</strong></li>
<li><strong>Interacção com o Flash Catalyst</strong></li>
<li><strong>Notas finais</strong></li>
</ul>
<p style="text-align: justify; ">Mas antes de começar a alongar-me na introdução vamos dar uma vista de olhos na IDE que à primeira vista parecer quase igual, mas na realidade só é tão igual ao Flex Builder 3 até criar-mos um primeiro projecto. À primeira vista apenas se sobressai um novo painel ao fundo, onde podem ver 2 tabs Data/Services e Network Monitor que são nova nesta versão, e acreditem que se tornam muito uteis. Vejam então a tão falata IDE: (cliquem para ver maior).</p>
<p style="text-align: center;"><a href="http://msdevstudio.com/blog/wp-content/uploads/2009/06/1.jpg"><img class="size-medium wp-image-1057   aligncenter" title="Flash Catalyst IDE" src="http://msdevstudio.com/blog/wp-content/uploads/2009/06/1-300x182.jpg" alt="1" width="300" height="182" /> </a></p>
<p style="text-align: justify; ">No ecrã principal podem também encontrar alguns links que são muito uteis, principalmente para quem está a iniciar no Flash Buider, têm também um link para o Tour de Flex que até foi actualizado com alguns elementos do Flex 4, vale a pena ver. De resto, tudo igual apenas com a excepção do logotipo do eclipse ao lado direito, que parece dar relevo à excelente e versatil plataforma eclipse&#8230;.<span id="more-1056"></span></p>
<p style="text-align: justify; ">
<p style="text-align: justify; "><strong>Criando um novo Projecto.</strong></p>
<p style="text-align: justify; ">O processo é o mesmo, mas ao clicarem no menu File encontram já novidades, como o Import Flex Project (FXP) e o Export Flex Project (FXP) de onde podem importar projectos exportados pelo Flash Builder, mas também layouts feitos no Flash Catalyst. Mas vamos então criar um novo projecto menu File-&gt;New-&gt;e voilá! mais novidades, onde encontram o Test Case Class e Test Suite Class, que se apresentam como dialogo para criação de Classes para Unit Tests, algo de novo nesta nova versão.</p>
<p style="text-align: justify; "><a href="http://msdevstudio.com/blog/wp-content/uploads/2009/06/browser.JPG"><img class="alignleft size-medium wp-image-1060" title="browser" src="http://msdevstudio.com/blog/wp-content/uploads/2009/06/browser-208x300.jpg" alt="browser" width="208" height="300" /></a>Selecionem então Flex Project, onde de entre as opções podem encontrar a nova versão do Flex SDK, a 4.0 (Podem ainda usar uma versão anterior para  desenvolver o vosso projecto, mas muitas das novoas opções não estarão disponiveis.) Dêm um nome ao vosso projecto, por exemplo, FlashBuilderTest, e cliquem em OK! Mais novidades&#8230; desta feita a no explorador do projecto vemos agora a nossa aplicação dentro de um package default, onde já podemos imaginar uma nova estrutura de pastas, junto com esta novidade, vemos ainda uma &#8220;pasta&#8221; Flex 4 onde encontramos agora todas as partes das frameworks como RSL&#8217;s (Runtime Shared Libraries), onde ainda podemos explorar os seus packages e ver todos as classes e implementações das mesmas.</p>
<p style="text-align: justify; ">Esta nova estrutura ajuda-nos a compreeender melhor as relações entre componentes e a sua disposição de organização. Podem encontrar todos os elementos que compõem a framework do Flex 4, como a nova textLayout framework/component, as skins do spark (sparkskins.swc), a libraria datavisualization, que inclui os graficos disponibilizados no flex, a libraria RPC e a libraria base do Flex 4.</p>
<p style="text-align: justify; ">Ao fundo, ao lado do painel que falei anteriormente, Data/Services, podemos encontrar um novo tab, ASDoc que nos permite criar a documentação para as nossas classes que será disponibilizada junto com a class. Muito util para projectos em equipa onde temos que partilhar informações sobre a nossa class.</p>
<p style="text-align: justify; "><a href="http://msdevstudio.com/blog/wp-content/uploads/2009/06/tabedPanel.JPG"><img class="alignleft size-full wp-image-1065" title="tabedPanel" src="http://msdevstudio.com/blog/wp-content/uploads/2009/06/tabedPanel.JPG" alt="tabedPanel" width="385" height="28" /></a></p>
<p style="text-align: justify; ">
<p style="text-align: justify; ">
<p style="text-align: justify; "><strong>Namespaces</strong></p>
<p style="text-align: justify; ">A nivel do código, podemos encontrar já os novos namespaces do Flex 4 em uso:</p>
<p style="text-align: justify; "><a href="http://msdevstudio.com/blog/wp-content/uploads/2009/06/spark.JPG"><img class="alignleft size-full wp-image-1061" title="spark" src="http://msdevstudio.com/blog/wp-content/uploads/2009/06/spark.JPG" alt="spark" width="324" height="16" /></a></p>
<p style="text-align: justify; ">
<p style="text-align: justify; "><a href="http://msdevstudio.com/blog/wp-content/uploads/2009/06/spark2.JPG"><img class="alignleft size-full wp-image-1063" title="spark2" src="http://msdevstudio.com/blog/wp-content/uploads/2009/06/spark2.JPG" alt="spark2" width="348" height="18" /></a></p>
<p style="text-align: justify; ">
<p style="text-align: justify; "><a href="http://msdevstudio.com/blog/wp-content/uploads/2009/06/mx1.JPG"><img class="alignleft size-full wp-image-1064" title="mx" src="http://msdevstudio.com/blog/wp-content/uploads/2009/06/mx1.JPG" alt="mx" width="347" height="16" /></a></p>
<p style="text-align: justify; ">
<p style="text-align: justify; ">e aqui começam verdadeiramente as novidades do Flex 4 e do Flash Builder,  os novos namespaces:</p>
<ul style="text-align: justify; ">
<li><strong>fx</strong> &#8211; O novo namespace do Flex Builder 4, o que veio substituir o mx como primeiro e unico namespace carregado por defeito nas aplicações Flex 3</li>
<li><strong>s</strong> &#8211; Spark, Uma das grande novidades, traz sobretudo muitos componentes visuais direcionados exclusivamente para a versão 10 do flash player, uma nova arquitectura de componentes que nos permite extender e personalizar ainda mais (quase até ao limite) os componentes nativos e novos componentes derivados.</li>
<li><strong>mx</strong> &#8211; O nosso antigo namespace, deste pouco há a falar&#8230; componentes habituais do flex 3.</li>
</ul>
<p style="text-align: justify; ">Estes novos namespaces trazem muitos componentes novos que vão precisar de algum tempo para nos habituar-mos a eles.</p>
<p style="text-align: justify; ">Se mudarem para a parte visual, no explorador de componentes mais algumas novidades, de entre novos componentes também mudou a organização destes, agora apresentados mais organizadamente em varias &#8220;pastas&#8221;. Arrastem um Button para o stage, verão que ele é carregado directamente do namespace spark, se voltarem ao código verão isso mesmo:</p>
<p style="text-align: justify; ">&lt;s:Button ..&gt; se copiarem este código e mudarem o prefixo para mx: em vez de s: o botão fica exactamente igual, mas nas suas propriedades as coisas mudam bastante, o noso Button Spark possui muito mais possibilidades de personalização, principalmente a nivel dos Styles.</p>
<p style="text-align: justify; "><strong>Temas e Skins</strong></p>
<p style="text-align: justify; ">Esta nova versão traz pode defeito o novo tema Spark, e agora na nova versão do flash builder é mais facil do que nunca trocar de skin, em apenas alguns instantes temos a nossa aplicação completamente personalizada sem escrever uma linha de código css tudo isto graças ao theme switcher que vem incorporado da aplicação. Na area visual, cliquem no stage e na tab <strong>Appearence </strong>vão encontrar desta novidade, onde indica current theme: spark e se clicarem em cima dele, vai-se abrir a janela para escolher um novo tema se assim desejarmos. E ainda conta com o botão <strong>find more themes</strong> que vai aumentar ainda mais a lista de temas quando estes começarem a ser criados pela comunidade. Vejam a janela de que falo (cliquem para ver maior)</p>
<p style="text-align: center;"><a href="http://msdevstudio.com/blog/wp-content/uploads/2009/06/themes.JPG"><img class="aligncenter size-full wp-image-1083" title="themes" src="http://msdevstudio.com/blog/wp-content/uploads/2009/06/themes.JPG" alt="themes" width="500" height="345" /></a></p>
<p style="text-align: justify; ">
<p style="text-align: justify; "><strong>Novidades a nivel do Action Script &amp; MXML</strong></p>
<p style="text-align: justify; ">Muitas! Não no Action Script, mas da maneira como o Flash  Builder lida com o código, quer MXML quer Action Script, principalmente no action script. Mas vamos começar pelo MXML. Ao escreverem um simples &#8220;&lt;&#8221; verão a maior das funcionalidades&#8230; as documentação da class fica disponivel imediatamente no editor, sendo mesmo possivel clickar no &#8220;Tab&#8221; para ganhar o focus e poder percorrer livremente os varios componentes e agora também namespaces.</p>
<p style="text-align: justify; ">Qualquer elemento visual, por exemplo um button possui também a sua documentação visivel, quer na class principal (Button) mas se colocarem o rato também nas suas propriedades, verão que também possui documentação, sendo que agora será muito mais facil obter informação sobre as propriedades de determinado elemento, sem sequer ter que sair da applicação.</p>
<p style="text-align: center; "><a href="http://msdevstudio.com/blog/wp-content/uploads/2009/06/info.jpg"><img class="size-full wp-image-1066   aligncenter" title="info" src="http://msdevstudio.com/blog/wp-content/uploads/2009/06/info.jpg" alt="info" width="610" height="220" /></a></p>
<p style="text-align: justify; ">A nivel de Action Script, as alterações começam ainda no MXML, assim que pretendemos escrever um pedaço de código em action script iriamos iniciar a area de action script no mxml com o &lt;mx:script&#8230; mas isto era no flex 3, agora foi susbtituido pelo &lt;fx:script..&gt;, tendo já por defeito o novo namespace e tendo obrigatóriamente que ser escrito assim, o mesmo se passa com o style e basicamente com todos os anteriores componentes do mx.</p>
<p><img class="alignright size-full wp-image-1067" title="import" src="http://msdevstudio.com/blog/wp-content/uploads/2009/06/import.jpg" alt="import" width="121" height="179" /></p>
<p style="text-align: justify; ">Mas vamos a um exemplo em Action Script, escrevam apenas import, e como podem ver já vão encontrar algumas diferenças no packages disponiveis, de entre eles as novidades <strong>authoring, fl, flashx e spark</strong> onde encontraremos centenas de novidades.</p>
<p style="text-align: justify; ">
<p style="text-align: justify; ">Escrevam apenas: <strong>import mx.controls.Alert; </strong></p>
<p style="text-align: justify; ">Assim que iniciam a escrita do Alert, é-vos apresentado imediatamente a documentção da class, o que acaba por simplificar em muito a procura de determinado componente, bem como saber a sua utilização.</p>
<p style="text-align: justify; ">Se passarem o rato por cima do Alert verão a mesma documentação sempre sem sair da IDE, se clicarem no F2 podem ver o resto da documentação da Class e de classes relacionadas. Esta informação está disponivel em quase todos os componentes, o que se torna numa das melhores ajudas para o programador, principalmente com tantas novidades esta é sem duvida a melhor aposta deste novo Flash Builder. Toda esta informação da class pode também ser vista no painel ASDoc, bastando colocar o rato sobre a class que querem ver a documentação.</p>
<p style="text-align: justify; ">Nesta documentação podem encontrar além das classes relacionadas, também a versão do flex e a versão do flash player / Air necessária para que este controlo seja visualizado.</p>
<p style="text-align: justify; "><strong>Wizard de código e Serviços</strong></p>
<p style="text-align: justify; ">Via MXML ao lidar com eventos, também é possivel gerar automaticamente o código para lidar com esse evento, chamado de <strong>Generate Event Listener</strong> onde apenas um click gera a respectiva função de handling.</p>
<p style="text-align: justify; ">A nivel visual, também existem muitas novidades, principalmente que aceleram o processo de programação e desenvolvimento de uma aplicação, vejam o exemplo de um button, ao clickarem sobre ele no stage com o botão direito do rato, podem ver algumas novas opções de entre as quais se destacam o <strong>Generate Service Call, e Generate Click Handler.</strong></p>
<p style="text-align: justify; "><strong>O generate Click Handler </strong>permite de uma forma muito rapida gerar a função para lidar com um click do rato e coloca-la logo associada ao click do mesmo, sendo o desenvolvedor automaticamente transferido para o código respectivo.</p>
<p style="text-align: justify; "><strong>O generate Service Call </strong>permite gerar o código necessario para fazer uma chamada remota via HTTP service, Web service ou Remoting, no caso de não existir nenhuma fonte de dados, o proprio flex builder se encarrega de perguntar ao utilizador se deseja criar um novo serviço de dados. Aqui podem encontrar um recurso muito melhorado do antigo Flex Builder, a criação de serviço de dados, e para quem usa LCDS ou PHP têm as coisas muito facilitadas, em cerca de 5 minutos e alguns clicks têm um serviço Remoting a funcionar, nas minha aplicação vou usar o php, sigam o exemplo, cliquem no Generate Service Call e respondam sim à criação de um novo serviço de dados. Abre-se então o wizard de serviço de dados:</p>
<p style="text-align: center; ">
<p style="text-align: center; "><a href="http://msdevstudio.com/blog/wp-content/uploads/2009/06/webServices.JPG"><img class="size-full wp-image-1068 aligncenter" title="webServices" src="http://msdevstudio.com/blog/wp-content/uploads/2009/06/webServices.JPG" alt="webServices" width="556" height="146" /></a></p>
<p style="text-align: justify; "><strong>Ligações de dados; Exemplo PHP</strong></p>
<p style="text-align: justify; ">Neste wizard como, como podem ver, permite criar ligações a serviços de dados em alguns passo, para verem como é simples escolham PHP, é-vos então pedido que configurem um servidor de php, algo muito simples, cliquem em <strong>Yes</strong> e insiram os caminhos relativos para o vosso servidor, no meu caso escolhi servidor PHP, no <strong>Web Root</strong> coloquem o caminho do sistema local para a pasta htdocs/www,  por exemplo numa insatlação padrão do wamp: c:\wamp\www\meuProjecto e no <strong>Root URL</strong> coloquem o vosso caminho do browser para essa pasta, normalmente: http://localhost/meuProjecto e cliquem em Validade Configuration. O output folder será gerado automaticamente, se não o for indiquem algo como c:\wamp\www\meuProjecto\bin-debug. Coloquem então <strong>OK,</strong> o wizard volta de novo à criação de dados e pede algumas informações, como por exemplo o nome do service, coloquem por exemplo <strong>PHPTEST </strong>e indiquem a class onde têm as funções do php (pode ser uma class amfphp ou zendAMF) ou por exemplo uma class padrão, recomendada pela adobe que obtêm clicando em <strong>Generate Sample PHP Class</strong>, e cliquem em <strong>Finish</strong> e eis que vos apresenta a mais recente novidade da adobe, a auto-instalação do ZendAMF para servidor AMF de dados do php:</p>
<p style="text-align: center;"><a href="http://msdevstudio.com/blog/wp-content/uploads/2009/06/amf.JPG"><img class="aligncenter size-full wp-image-1069" title="amf" src="http://msdevstudio.com/blog/wp-content/uploads/2009/06/amf.JPG" alt="amf" width="526" height="197" /></a></p>
<p style="text-align: justify;">
<p style="text-align: justify;">Cliquem em <strong>OK</strong> e aguardem um pouco, em poucos instantes será instalado a framework Zend (embora não seja completamente necessaria toda a framework, as vantagens são muitos quando usamos toda a framework porque se trata de uma das melhores frameworks php existentes no mercado.). É-vos informado que a framework será instalada na mesma pasta da aplicação e que esta localização deve ser alterada quando distribuimos uma aplicação final por razões de segurança, esssa alteração deve ser informada no arquivo .ini de configuração.</p>
<p style="text-align: justify; ">Depois do zendAMF instalado, cliquem de novo <strong>OK</strong>. Muito provavelmente vão encontrar um erro a informar que não foi possivel abrir o Loader do Zend, isto porque a Adobe se enganou na instalação da framework Zend e caminhos relativos, para solucionar este problema devem abrir a vossa pasta c:\wamp\www\meuProjecto e editar o ficheiro <strong>amf_config.ini</strong> e na terceira linha alterem o:</p>
<p style="text-align: justify; ">;zend_path = c:\Frameworks\ZendFramework\library</p>
<p style="text-align: justify; ">para o caminho da vossa instalação do zend, normalmente assim (não se esquecam de remover o &#8220;;&#8221; ):</p>
<p style="text-align: justify; ">zend_path = c:\wamp\www\meuProjecto\ZendFramework\library</p>
<p style="text-align: justify; ">Salvem o ficheiro e voltem ao Flash Builder, cliquem ok na janela de erro e cliquem de novo en Finish, desta forma deixará de existir o erro certo? se em alguns casos ocorrer um erro de acesso, verifiquem as permissões do vosso servidor web. Abre-se então a class recem criada com um simples CURD e mais operações para teste, escrevam na segunda função (getAllItems) apenas <strong>return &#8220;Ola Mundo&#8221;;</strong> e guardem o vosso ficheiro.</p>
<p style="text-align: justify; ">Se voltarem ao Flash Builder, é-vos perguntado se desejam adicionar um tipo de retorno ou associar a função a um componente viosual, cliquem apenas ok. Agora no painel Data/Services vêm as vossas operações.</p>
<p style="text-align: center;"><a href="http://msdevstudio.com/blog/wp-content/uploads/2009/06/dataService.JPG"><img class="size-full wp-image-1070  aligncenter" title="dataService" src="http://msdevstudio.com/blog/wp-content/uploads/2009/06/dataService.JPG" alt="dataService" width="465" height="170" /></a></p>
<p style="text-align: justify; ">Antes de usar quando uma destas funções, devem indicar que tipo de retorna elas devolvem, cliquem na nossas função <strong>getAllItems</strong> e cliquem no botão da direita do rato e cliquem <strong>Configure Return Type, </strong>indiquem o tipo de dados que a vossa função devolve, para deteção automatica, coloquem custom, escrevam um nome e indiquem alguns possiveis parametros da função para auto deteção e depois cliquem seguinte. No nosso caso usamos use custom action script data type <strong>String.</strong></p>
<p style="text-align: justify; ">Como podem ver pal imagem anterior, o <strong>getAllItems</strong> encontra-se com o icon a verde o que indica que o nosso serviço está pronto a ser usado, isto só acontece depois de indicar-mos o tipo de dados que a função devolve.</p>
<p style="text-align: justify; "><strong>Interacção com dados</strong></p>
<p style="text-align: justify; ">Depois de todo este processo para trabalhar com o php, a questão de trabalhar com dados é facil, uma das grandes novidades é a possibilidade de não só (como indiquei antes) de associar uma chamada de um serviço a um botão pelo clique com o botão direito do rato, mas também por drag &amp; drop, arrastem a função getAllItems para o vosso botão e será automaticamente criada a chamada do serviço e o respectivo responder/handler.</p>
<p style="text-align: justify; ">Geralmente não é gerado o handler para resultado para os dados recebidos do backend a não ser numa dataGrid, que mais uma vez apresenta uma janel muito util para acelerar todo o processo, é o wizard para atribuir dados a uma lista, <strong>&#8220;Bind to Data&#8221;:</strong></p>
<p style="text-align: center;"><strong><a href="http://msdevstudio.com/blog/wp-content/uploads/2009/06/bind.JPG"><img class="size-full wp-image-1071  aligncenter" title="bind" src="http://msdevstudio.com/blog/wp-content/uploads/2009/06/bind.JPG" alt="bind" width="409" height="330" /></a><br />
</strong></p>
<p style="text-align: justify; ">Neste wizard podem escolher o serviço e a operação, no nosso caso como definimos o return como String este não poderá ser atribuido a uma dataGrid que recebe como dataProvider um Ilist / ArrayCollection, para isso e por uma questão de testes coloquem na vossa função php:</p>
<p style="text-align: justify; ">
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2992px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$dados[0]-&gt;nome=&#8221;Ola&#8221;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2992px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>$dados[0]-&gt;idade=&#8221;26&#8243;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2992px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>$dados[0]-&gt;pais=&#8221;France&#8221;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2992px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span></div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2992px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>$dados[1]-&gt;nome=&#8221;Mundo&#8221;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2992px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>$dados[1]-&gt;idade=&#8221;55&#8243;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2992px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>$dados[1]-&gt;pais=&#8221;Italy&#8221;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2992px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span></div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2992px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>return $dados;</div>
<p>$dados[0]-&gt;name=&#8221;Ola&#8221;;</p>
<p>$dados[0]-&gt;age=&#8221;26&#8243;;</p>
<p>$dados[0]-&gt;country=&#8221;France&#8221;;</p>
<p>$dados[1]-&gt;name=&#8221;Mundo&#8221;;</p>
<p>$dados[1]-&gt;age=&#8221;55&#8243;;</p>
<p>$dados[1]-&gt;country=&#8221;Italy&#8221;;</p>
<p>return $dados;</p>
<p>Salvem o php e no dialogo do flash builder cliquem <strong>change return type</strong>: e escrevam em c<strong>ustom data type</strong>: <strong>Client, </strong>cliquem next e no proximo e cliquem em next de novo, e voilá os dados devolvidos do php.</p>
<p style="text-align: center;"><a href="http://msdevstudio.com/blog/wp-content/uploads/2009/06/returnType2.JPG"><img class="size-full wp-image-1074  aligncenter" title="returnType2" src="http://msdevstudio.com/blog/wp-content/uploads/2009/06/returnType2.JPG" alt="returnType2" width="492" height="275" /></a></p>
<p>Como podem ver este wizard identifica previamente os dados recebidos do php, e permite mesmo adicionar possiveis dados em falta do mesmo. Cliquem em <strong>Finish</strong> e aguardem, que o icon da função getAllItems na janela Data/Services mude para varios icons.. depois cliquem no wizard em <strong>OK. </strong>E finalmente temos os dados na dataGrid, bem como os dados mapeados directamente por um vO onde são gerados os getters e setters para o mesmo. (Client.as, derivado do _SUPER_CLIENT.as) que pode ser alterado a nosso gosto, deixando de fora a class mapeadora principal (_SUPER_CLIENT.as). como podem ver na janela do explorador no package services.phptest.</p>
<p>Ao fazer esta acção, a datagrid é automaticamente alterada para lidar e apresentar os nossos dados sem uma unica linha de código, basta correrem a aplicação.</p>
<p style="text-align: center;"><a href="http://msdevstudio.com/blog/wp-content/uploads/2009/06/dataBind.JPG"><img class="size-full wp-image-1075    aligncenter" title="dataBind" src="http://msdevstudio.com/blog/wp-content/uploads/2009/06/dataBind.JPG" alt="dataBind" width="473" height="251" /></a></p>
<p>As restantes operações do CRUD podem ser falcilmente feitas com recurso a estes wizards, sendo que mesmo depois podemos atribuir como argumento o nosso VO, muito util na hora da criação ou alteração de um elemento numa base de dados.</p>
<p>Este é sem duvida um dos pontos mais fortes do novo flex builder, que praticamente nos faz de forma automatizada todo o trabalho de interacção com dados. Nesta nova versão do Flex 4 e MXML para comunicação remota foi quase que abolida a necessidade de usar um RemoteObject com variados metodos já que com estes wizards todo o código é gerado e trasnformado em componentes Action Script. No nosso caso toda a chamada e atribuição de dados é feita em apenas estas linhas:</p>
<p>&lt;fx:Declarations&gt;</p>
<p><span style="white-space: pre;"> </span>&lt;s:CallResponder id=&#8221;getAllItemsResult&#8221;/&gt;</p>
<p><span style="white-space: pre;"> </span>&lt;phptest:PHPTEST id=&#8221;pHPTEST&#8221; destination=&#8221;PHPTEST&#8221; endpoint=&#8221;http://localhost/testPHP/testPHP-debug/gateway.php&#8221; fault=&#8221;Alert.show(event.fault.faultString)&#8221; showBusyCursor=&#8221;true&#8221; source=&#8221;PHPTEST&#8221;/&gt;</p>
<p><span style="white-space: pre;"> </span>&lt;/fx:Declarations&gt;</p>
<p>Algo muito mais simples e reutilizavel que na versão anterior do flex. Apesar de ser tudo muito facil, merece que passemos algumas horas de volta do código gerado que apesar de ser muito util, também pode alongar o tamanho da nossa aplicaçâo desnecessariamente, por isso verifiquem sempre as classes e objectos gerados, analisem a vossa situação e retirem o que não for necessário.</p>
<p><strong>Documentação AS3</strong></p>
<p>Como foi antes falado é possivel agora ver a documentaçâo de uma class sem ter que aceder à mesma, basta seguirem este exemplo, criem uma nova Action Script Class baseada num sprite, no package com.msdevstudio, e depois se quiserem documentar a class, basta faze-lo dentro do package, antes do construtor dentro do bloco /** **/, como o seguinte exemplo mostra:</p>
<pre>package com.msdevstudio
{
	/**
	 * Welcome to my TestClass by Mário Santos
	 *
	 * To use just write: import com.msdevstudio.testClass and then
	 * var temp:TestClass = new TestClass()
	 *
	 *
	 * @see flash.display.Sprite
 	 *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 9
 	 *  @playerversion AIR 1.1
 	 *  @productversion Flex 3
	 *
	 * */
	import flash.display.Sprite;
	public class TestClass extends Sprite
	{
		/**
		 * Create a new instance of the class!
		 */
		public function TestClass()
		{
			//TODO: implement function
			super();
		}
	}
}</pre>
<p>Guardem a vossa class, importem-na na aplicação e passem o rato por cima:</p>
<p>import com.msdevstudio.TestClass;</p>
<p>Obtêm então o dialogo de ajuda como a imagem seguinte mostra.</p>
<p style="text-align: center; "><a href="http://msdevstudio.com/blog/wp-content/uploads/2009/06/customClass.jpg"><img class="size-full wp-image-1082  aligncenter" title="customClass" src="http://msdevstudio.com/blog/wp-content/uploads/2009/06/customClass.jpg" alt="customClass" width="521" height="221" /></a></p>
<p style="text-align: left; ">Como podem ver é mais facil do que nunca criar, distribuir e documentar as vossas classes.</p>
<p style="text-align: left; "><strong>Unit Tests</strong></p>
<p style="text-align: left; ">Nesta nova versão também já é possivel criar classes para efectuar unitTests ou testes lógicos e de performace, não tendo que recorrer a frameworks externas. Esta é mais uma das otimas novidades para quem pretende tirar o maximo de partido da sua applicação e evitar o maximo de erros possiveis.</p>
<p style="text-align: left; "><strong>Interacção com o Flash Catalyst</strong></p>
<p style="text-align: left; ">Esta ligação é feita quase instantaneamente, bast importarem um qualquer projecto do Flash Catalyst tendo sempre em conta que assim que abrirem o vosso projecto do Flash Catalyst no Flash Builder este deixará de ser editavel no Flash Catalyst. Este talvez seja um dos pontos menos positivos desta interação.</p>
<p style="text-align: left; ">De resto, embora com alguns promenores a serem melhorados, a importação do layout do Flash Catalyst para o Flash Builder ocorrem sem qualquer problema. Brevemente teremos aqui um tutorial de como importar, transformar e programar um layout do illustrador para o Flash Player passando  pelo Flash Catalyst e Flash Builder.</p>
<p style="text-align: left; "><strong>Notas Finais</strong></p>
<p style="text-align: left; ">O novo Flash builder torna muitas coisas muito mais simples e sem duvida que vai acelerar em muito o desenvolvimento de aplicações ricas para a internet, principalmente na hora de trabalhar com dados. Os seus novos wizards guiam-nos pelo dificil processo de comunicação com um backend e em alguns simples passos as coisas passam de dificeis a faceis. A criação da documentação inline de cada class vai sem duvida ajudar os mais novatos, e com ainda maior certeza fazer com que os desenvolvedores mais experientes conheçam um pouco melhor as classes e tirem o maior partido delas.</p>
<p style="text-align: left; ">Os novos namespaces ainda coexistem com o antigo mx, pelo que os desenvolvedores ainda terão algum tempo para absorverem tudo o que há de novo na versão 4 desta framework, principalmente a quase completa orientação a states a nivel de componentes que se por um lado pode ajudar pelo outro pode complicar mais ainda o código.</p>
<p style="text-align: left; ">Finalmente, as novidades maiores como disse são mesmo no novissimo Flex 4, que deve ser estudado com alguma atenção já que traz muitas novidades.</p>
<p style="text-align: left; ">E vocês? alguma coisa a dizer sobre os vossos primeiros testes?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2009/06/26/flash-builder-4-uma-analise-mais-a-serio/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

