<?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>jandersonfc &#187; FLEX</title>
	<atom:link href="http://www.jandersonfc.com/tag/flex/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jandersonfc.com</link>
	<description>Apenas mais um #soudev</description>
	<lastBuildDate>Fri, 16 Dec 2011 20:02:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Por que eu escolhi o Flex?</title>
		<link>http://www.jandersonfc.com/por-que-eu-escolhi-o-flex/</link>
		<comments>http://www.jandersonfc.com/por-que-eu-escolhi-o-flex/#comments</comments>
		<pubDate>Fri, 11 Nov 2011 03:19:37 +0000</pubDate>
		<dc:creator>jandersonfc</dc:creator>
				<category><![CDATA[Carreira]]></category>
		<category><![CDATA[escolha]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[metas]]></category>
		<category><![CDATA[Objetivo]]></category>
		<category><![CDATA[talento]]></category>
		<category><![CDATA[tendência]]></category>

		<guid isPermaLink="false">http://www.jandersonfc.com/?p=1133</guid>
		<description><![CDATA[Quando se começa a estudar alguma tecnologia, ferramenta ou metodologia você sempre ouvirá essa bendita pergunta, mas por que você escolheu x ou Y? comigo não é diferente e ouço essa pergunta alguma vezes em relação ao Flex, principalmente essa semana um pouco mais movimentada..rs vamos para o momento múltiplas escolhas: (  ) Porque o [...]]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Quando se começa a estudar alguma tecnologia, ferramenta ou metodologia você sempre ouvirá essa bendita pergunta, <strong>mas por que você escolheu x ou Y? </strong>comigo não é diferente e ouço essa pergunta alguma vezes em relação ao <strong>Flex</strong>, principalmente essa semana um pouco mais movimentada..rs</p>
<p>vamos para o momento múltiplas escolhas:</p>
<p>(  ) Porque o Flex traz produtividade no desenvolvimento de Aplicações.</p>
<p>(  ) Porque com o Flex se consegue uma experiência mais agradável para o usuário final.</p>
<p>(  ) Porque o Flex paga muito bem e me deixou rico do dia para noite.</p>
<p>(  ) nenhuma das opções acima.</p>
<p>Eu já escutei todas essas respostas como justificativa da escolha do Flex mas poucos responderam que é <strong style="text-align: center;">nenhuma das opções acima</strong>. Esse é o meu caso, <strong>escolhi o</strong> <strong>Flex porque era a tendência da vez</strong>, calma explico melhor.</p>
<p>Em 2008 quando comecei efetivamente a estudar o Flex trabalhava com Visual Basic 6 em manutenção de sistema legado, meu objetivo na empresa era migrar tudo para .Net, porém , pensar em transcrever sistema legado é algo que sempre fica em segundo plano de uma empresa que não tem reservas financeiras. .Net era um mercado muito burocrático e não percebia um crescimento profissional na velocidade que gostaria, foi aí que conheci o Flex com alguns evangelistas divulgando e mostrando como a ferramenta funcionava, comecei a pesquisar o mercado e vi que estava começando a crescer de uma forma assustadora, pessoas querendo aprender mas poucos eram os que apareciam como <strong>evangelistas</strong>, pessoas que realmente dominavam e estimulavam todos a se aprofundar na tecnologia. Foi quando percebi que o Flex era a <strong>tendência</strong> da vez, nesse momento meu objetivo foi se especializar e fazer parte desses poucos que estimulavam as pessoas.</p>
<p>Seguir a <strong>tendência</strong> me fez de um <strong>programador</strong> de sistema legado sem muita expectativa do futuro para a um <strong>Desenvolvedor</strong> criando soluções inteligentes para grandes empresas, participando de eventos e compartilhando conhecimento para um público carente de pessoas que os ajude na etapa mais difícil da adoção de uma nova tecnologia que é o começo.</p>
<p>Portanto eu não escolhi o Flex porque posso fazer um produto final com maior qualidade e nem porque ele colocou mais dinheiro no meu bolso, escolhi o Flex porque ele era o melhor investimento de curto/médio prazo que eu encontrei para alcançar meus objetivos na minha carreira.</p>
<p>Quando falo em carreira não estou falando do fator financeiro, acho que é como o <a href="http://www.twitter.com/IgorMusardo">@IgorMusardo</a> falou hoje</p>
<blockquote><p><strong>&#8220;nós #soudev queremos estar sempre na crista da onda&#8221;</strong></p></blockquote>
<p><strong></strong>Penso sempre em pessoas que foram <strong>escravas dos seus talentos,</strong> como <a href="http://www.fernandooliveira.com.br/blog/licoes-de-lideranca-de-michael-jordan/">Michael Jordan</a>, ele tinha metas claras como <strong>ser o melhor</strong>, sempre na busca pela <strong>excelência</strong>. Ele sabia que para ser o melhor em quadra não bastava ser o cestinha, sabia que seu desempenho junto com a equipe levava as vitórias. Ganhar muito dinheiro e títulos(ou produtos para os devs) é a consequência de quem tem um objetivo muito maior, onde esse tipo de pessoa passa atrai o sucesso(nem sempre títulos) para o time, mesmo quando o time não tem o seu propósito muito bem definido.</p>
<p>Tudo que eu falei aqui vai de encontro com o que falei a 2 dias atrás que <strong><a href="http://www.jandersonfc.com/as-tendencias-sao-suas-aliadas/">as tendências são suas aliadas</a>, </strong>você como desenvolvedor que realmente é apaixonado pelo que faz consegue analisar ao seu redor e ver qual é a próxima <strong>tendência</strong>? vai fundo e mostre a todos que você tem total capacidade de ser um dos melhores, mas lembre-se, a primeira pessoa que tem que acreditar nisso é você.</p>
<p>&nbsp;</p>
</div><div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="tall" count="1" href="http://www.jandersonfc.com/por-que-eu-escolhi-o-flex/">{lang: &#8216;pt-BR&#8217;}</g:plusone></div>Similar Posts:<ul><li><a href="http://www.jandersonfc.com/as-tendencias-sao-suas-aliadas/" rel="bookmark" title="09/11/2011">As tendências são suas aliadas</a></li>

<li><a href="http://www.jandersonfc.com/qual-e-a-sua-parte-no-produto-final/" rel="bookmark" title="09/11/2011">Qual é a sua parte no produto final?</a></li>

<li><a href="http://www.jandersonfc.com/soudev-soudev-soudev-soudev/" rel="bookmark" title="21/10/2010">(#soudev > #soudev) < (#soudev + #soudev)</a></li>

<li><a href="http://www.jandersonfc.com/faca-o-que-esta-ao-seu-alcance/" rel="bookmark" title="27/03/2011">Faça o que está ao seu alcance!</a></li>

<li><a href="http://www.jandersonfc.com/certificacao-faculdade-conhecimento/" rel="bookmark" title="22/02/2010">(Certificação &#038;&#038; Faculdade) < Conhecimento</a></li>
</ul><!-- Similar Posts took 6.609 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.jandersonfc.com/por-que-eu-escolhi-o-flex/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>As tendências são suas aliadas</title>
		<link>http://www.jandersonfc.com/as-tendencias-sao-suas-aliadas/</link>
		<comments>http://www.jandersonfc.com/as-tendencias-sao-suas-aliadas/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 17:02:35 +0000</pubDate>
		<dc:creator>jandersonfc</dc:creator>
				<category><![CDATA[Carreira]]></category>
		<category><![CDATA[carreita]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[mercado]]></category>
		<category><![CDATA[tendências]]></category>
		<category><![CDATA[ti]]></category>

		<guid isPermaLink="false">http://www.jandersonfc.com/?p=1105</guid>
		<description><![CDATA[Não é surpresa para ninguém que acompanha o meu blog que trabalho mais atualmente com java e flex. Também não deve ser surpresa para ninguém que no final das contas trabalho muito na plataforma do Flash (que roda no Flash Player), em resumo estou no meio do fogo cruzado do futuro html5 e do condenado [...]]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p style="text-align: left;">Não é surpresa para ninguém que acompanha o meu blog que trabalho mais atualmente com <strong>java</strong> e <strong>flex</strong>. Também não deve ser surpresa para ninguém que no final das contas trabalho muito na plataforma do Flash (que roda no Flash Player), em resumo estou no meio do fogo cruzado do futuro <strong>html5</strong> e do condenado a morte <strong>Flash</strong>. Sempre evitei falar desse assunto aqui no blog mais achei por bem declarar algumas opniões, não da tecnologia x ou y, mas sim de qual deve ser sua posição como desenvolvedor.</p>
<p style="text-align: center;"><strong>O que vai acontecer com você se realmente matarem o Flash Player? </strong></p>
<p style="text-align: left;">não quero entrar no mérito de quando e como isso poderia acontecer, a pergunta é o que você tem feito para se preparar para próxima <strong>tendência</strong>. Essa é fácil de responder, a própria Adobe proprietária do flash te responde. além de ter o <a href="http://www.adobe.com/products/flash.html">Flash CS</a> você tem o <a href="http://labs.adobe.com/technologies/edge/">Edge</a> que tem o mesmo objetivo do FlashCS porém gera <strong>html5</strong> + <strong>css3</strong> + <strong>javascript</strong>. A adobe não quer saber quem vai sair vencedora desse duelo, o que interessa é que ela está preparada para qualquer uma delas. Você como desenvolvedor que quer estar sempre a frente e preparado para pegar uma fatia maior do mercado em um futuro próximo precisa ter essa consciência, dar valor em quem paga o seu salário e quem pode pagar ainda mais.</p>
<p style="text-align: center;"><strong>É apenas a próxima Tendência</strong></p>
<p>O que quero dizer com isso, é que o flash morrendo ou não a próxima tendência que está chegando com força total é o html5, não porque é melhor que o flash mas sim porque foi escolhido por quem tem esse poder de descisão. Por favor, não se iludam, é apenas mais uma tendência, não se apegue a essa nova tecnologia. Vejo pessoas reconhecidas no mundo do flash que agora já são referência em html5, por quê? porque entenderam que podem usar essas tendências ao seu favor, é a famosa frase &#8220;dance conforme a música&#8221;.</p>
<p>Essa é a dica que dou para os desenvolvedores em geral, não se apegue a uma tecnologia, ferramenta ou metodologia, quando você se adaptar com html5 vai surgir algo que será melhor, assim foi com os paradigmas de programação, com as linguagens que aparecem por um tempo e  forão/são as tendências como Ruby e Python, com metodologias que já foi melhor RUP , depois Agile e agora está começando o <a href="http://www.infoq.com/news/2011/09/lean-startup-agile">Lean Startup</a>. Não pense que isso é ruim, na verdade é inevitável, lembre que as tendências são suas aliadas e sempre nessas mudanças existe uma oportunidade para se ter um crescimento profissional de forma expoente.</p>
<blockquote>
<p style="text-align: center;"><em>&#8220;Tecnologia, Ferramentas e metodologia são o meio, dinheiro no bolso é o fim&#8221;</em></p>
</blockquote>
<p style="text-align: left;"><strong>UPDATE: 11/11/11</strong></p>
<p style="text-align: left;">Acho que a frase final poderia ser</p>
<blockquote>
<p style="text-align: center;"><em>&#8220;Tecnologia, Ferramentas e metodologia são o meio, sucesso é o fim&#8221;</em></p>
</blockquote>
<p style="text-align: left;"><em></em>Acho que cada um tem a sua definição de sucesso, muitas das vezes o dinheiro é a consequência por um bom trabalho mas não o fim desejado, todos querem a felicidade e a realização de suas metas e é essa sensação de dever cumprido que te faz acreditar que tentar ser o melhor em executar o &#8220;meio&#8221; te trará o <strong>sucesso</strong> desejado.</p>
</div><div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="tall" count="1" href="http://www.jandersonfc.com/as-tendencias-sao-suas-aliadas/">{lang: &#8216;pt-BR&#8217;}</g:plusone></div>Similar Posts:<ul><li><a href="http://www.jandersonfc.com/por-que-eu-escolhi-o-flex/" rel="bookmark" title="11/11/2011">Por que eu escolhi o Flex?</a></li>

<li><a href="http://www.jandersonfc.com/novidades-para-o-projeto-soudev/" rel="bookmark" title="25/05/2011">Novidades para o projeto #soudev</a></li>

<li><a href="http://www.jandersonfc.com/faca-o-que-esta-ao-seu-alcance/" rel="bookmark" title="27/03/2011">Faça o que está ao seu alcance!</a></li>

<li><a href="http://www.jandersonfc.com/experiencia-fail-com-scrum-xp-e-pomodoro/" rel="bookmark" title="24/11/2009">Experiência #fail com Scrum, XP e Pomodoro.</a></li>

<li><a href="http://www.jandersonfc.com/soudevcast-1-o-futuro-do-flex-e-flash/" rel="bookmark" title="16/11/2011">#soudevcast 1 &#8211; O Futuro do Flex e Flash</a></li>
</ul><!-- Similar Posts took 6.542 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.jandersonfc.com/as-tendencias-sao-suas-aliadas/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>#screencast Flexmojos 4 + Jenkins + Sonar</title>
		<link>http://www.jandersonfc.com/screencast-flexmojos-4-jenkins-sonar/</link>
		<comments>http://www.jandersonfc.com/screencast-flexmojos-4-jenkins-sonar/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 20:13:59 +0000</pubDate>
		<dc:creator>jandersonfc</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Flexmojos]]></category>
		<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[Screencast]]></category>
		<category><![CDATA[Sonar]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[Jenkis]]></category>
		<category><![CDATA[MAVEN]]></category>

		<guid isPermaLink="false">http://www.jandersonfc.com/?p=1052</guid>
		<description><![CDATA[Trago uma excelente notícia para vocês &#8220;flexeiros&#8221; hoje, se trata da primeira versão Release Candidate do Flexmojos 4, tenho a alegria de mostrar para vocês um pouco do que é possível fazer com o novo plugin e farei isso mostrando sua integração com o servidor contínuo Jenkins e o DashBoard de Métricas de código Sonar. Tudo [...]]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Trago uma excelente notícia para vocês &#8220;flexeiros&#8221; hoje, se trata da primeira versão <a href="http://mvnrepository.com/artifact/org.sonatype.flexmojos/flexmojos-maven-plugin/4.0-RC1">Release Candidate do Flexmojos 4</a>, tenho a alegria de mostrar para vocês um pouco do que é possível fazer com o novo plugin e farei isso mostrando sua integração com o servidor contínuo <a href="http://jenkins-ci.org/">Jenkins</a> e o DashBoard de Métricas de código <a href="http://www.sonarsource.org/">Sonar</a>. Tudo isso graças as funcionalidades de rodar testes unitários do flex(<a href="http://docs.flexunit.org/index.php?title=Main_Page">flexunit 4</a>) pelo maven e de gerar coverage dos testes no modelo do framework <a href="http://cobertura.sourceforge.net/">cobertura</a> implementado no novo flexmojos 4.</p>
<p>Esse screencast será diferente do que normalmente faço aqui no blog que é ensinar passo a passo, dessa vez mostrarei o que é possível para que a comunidade comece a despertar interesse por esse magnífico plugin para maven chamado de Flexmojos.</p>
<p>então vamos ao screencast de Flexmojos 4 + Jenkins + Sonar:</p>
<p><object width="590" height="510" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://blip.tv/play/AYLJijYA" /><param name="wmode" value="transparent" /><param name="allowscriptaccess" value="always" /><param name="allowfullscreen" value="true" /><embed width="590" height="510" type="application/x-shockwave-flash" src="http://blip.tv/play/AYLJijYA" wmode="transparent" allowscriptaccess="always" allowfullscreen="true" /></object><br />
então gostou? tenho certeza que sim e por esse motivo venho através desse post pedir a comunidade flex brasileira que nos ajude a dar continuidade ao Flexmojos. Para quem não sabe o Flexmojos foi criado por um brasileiro chamado Marvin Froeder (<a href="http://twitter.com/#!/velobr">@velobr</a> ) e praticamente ele vem mantendo o plugin desde o início, porém o plugin é usado muito no mundo inteiro, inclusive aqui no brasil em empresas corporativas como a petrobras. Sabemos que apenas uma pessoa fica impossibilitada de dar suporte e implementar novas funcionalidades que aparecem nas contantes atualizações da adobe no framework Flex e em sua IDE Flash builder.</p>
<p>Então quero fazer dois pedidos a vocês:</p>
<ol>
<li>Aos grandes desenvolvedores java/flex desse país ajude o framework a crescer pensando e implementando novas funcionalidades ao mesmo. O Flexmojos há algum tempo é opensource e seu código se encontra no github <a href="https://github.com/flexmojos">https://github.com/flexmojos</a>.</li>
<li>Segundo pedido é que vocês se cadastrem e votem <a href="http://ideas.adobe.com/ct/ct_a_view_idea.bix?c=975F47A1-B925-4456-89DB-3BEFB1DA7780&amp;idea_id=C4BB27BA-4AFD-48EE-BE2B-BFA78361FB74">nessa solicitação feita para adobe</a> para assumir o suporte do flexmojos, não deveria ter outra empresa mais interessada na evolução desse framework que a própria Adobe , esse framework aumenta e muito a aceitação do flex em projeto cujo o backend é em java e traz o que falta e muito para o flex hoje, algo que ajude e facilite na integração do flex SDK com outros frameworks e ferramentas como mostrei nesse screencast para vocês. o link da solicitação <strong><a href="http://ideas.adobe.com/ct/ct_a_view_idea.bix?c=975F47A1-B925-4456-89DB-3BEFB1DA7780&amp;idea_id=C4BB27BA-4AFD-48EE-BE2B-BFA78361FB74">A Flex/AIR/Flash Maven Plugin</a>.</strong></li>
</ol>
<p>aí fica uma aguá na boca do que já é possível graças a esse plugin e também fica o apelo para que nos ajudem votando nessa solicitação para adobe <img src='http://www.jandersonfc.com/wp-includes/images/smilies/icon_wink.gif' alt="icon wink #screencast Flexmojos 4 + Jenkins + Sonar" class='wp-smiley' title="#screencast Flexmojos 4 + Jenkins + Sonar" /> </p>
<p>Até a próxima o/</p>
</div><div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="tall" count="1" href="http://www.jandersonfc.com/screencast-flexmojos-4-jenkins-sonar/">{lang: &#8216;pt-BR&#8217;}</g:plusone></div>Similar Posts:<ul><li><a href="http://www.jandersonfc.com/retrospectiva-2011-e-metas-2012/" rel="bookmark" title="05/12/2011">Retrospectiva 2011 e Metas 2012</a></li>

<li><a href="http://www.jandersonfc.com/adobe-photoshop-cs5-%e2%80%93-criacao-de-interface-para-flex-4/" rel="bookmark" title="28/06/2011">Adobe Photoshop CS5 – Criação de Interface para Flex 4</a></li>

<li><a href="http://www.jandersonfc.com/air-sqlite-simplicidade-para-coisas-simples/" rel="bookmark" title="23/06/2009">AIR + SQLite = Simplicidade para coisas Simples</a></li>

<li><a href="http://www.jandersonfc.com/o-tweetdeck-nao-e-mais-adobe-air/" rel="bookmark" title="16/12/2011">o Tweetdeck não é mais Adobe AIR</a></li>

<li><a href="http://www.jandersonfc.com/tutorial-java-flex-ireport-na-pratica-10/" rel="bookmark" title="07/03/2010">TUTORIAL JAVA + FLEX + IREPORT NA PRÁTICA (10)</a></li>
</ul><!-- Similar Posts took 6.452 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.jandersonfc.com/screencast-flexmojos-4-jenkins-sonar/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Pattern Delegate e os Mocks</title>
		<link>http://www.jandersonfc.com/pattern-delegate-e-os-mocks/</link>
		<comments>http://www.jandersonfc.com/pattern-delegate-e-os-mocks/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 03:15:34 +0000</pubDate>
		<dc:creator>jandersonfc</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Delegate]]></category>
		<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[Spring ActionScript]]></category>
		<category><![CDATA[Swiz Framework]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[delegate]]></category>
		<category><![CDATA[design patterns]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[mocks]]></category>
		<category><![CDATA[spring mocks]]></category>
		<category><![CDATA[swiz mocks]]></category>

		<guid isPermaLink="false">http://www.jandersonfc.com/?p=995</guid>
		<description><![CDATA[Hoje vou falar sobre um pattern muito importante e que é muito usado no Flex(client) chamado de Delegate. Para quem nunca ouviu falar vou resumir da seguinte forma: &#8220;Delegate é o pattern que indica a comunicação do cliente com as regras de negócio sem a necessidade do cliente conhecer as regras de negócio.&#8221; Explicação Abstrata [...]]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Hoje vou falar sobre um pattern muito importante e que é muito usado no Flex(client) chamado de Delegate. Para quem nunca ouviu falar vou resumir da seguinte forma:</p>
<p style="text-align: center;"><strong>&#8220;Delegate é o pattern que indica a comunicação do cliente com as regras de negócio sem a necessidade do cliente conhecer as regras de negócio.&#8221;</strong></p>
<p><strong>Explicação Abstrata</strong> &#8211; Todo sistema possui suas regras de negócio, que normalmente são expostas através de serviços. o Delegate tem justamente esse papel, centralizar um local no cliente(aplicação frontend) para essa chamada ao serviço que expôe as regras de negócio do sistema. Uma coisa muito importante nesse pattern é que ele não deve conhecer as regras de negócio em si, normalmente consomem serviços mas não sabem o que realmente eles fazem.</p>
<p><strong>Explicação Concreta</strong> -<strong> </strong>Em 90% dos projetos em que trabalho cujo o frontend é em Flex o backend é em Java, toda a lógica do sistema(Regras de Negócio) ficam no java. No Java possuo um Serviço que via Blazeds é disponibilizado para ser consumido no Flex. Com esse cenário costumo ter uma classe Delegate no lado do flex que consome o serviço disponibilizado pelo blazeds através de RemoteObject.</p>
<p>Na teoria é tudo muito funcional e faz sentido, porém na prática sempre existe a dúvida se realmente vale a pena ter mais esse nível de conceito e organização no flex, então vou colocar 2 pontos positivos para estimular essa boa prática:</p>
<p><strong>Definição de uma padrão na comunicação com backend</strong> &#8211; a partir de hoje quando você analisar um código em flex que possui um classe com parte do seu nome Delegate você terá a certeza que toda a comunicação com o backend se encontra ali, não precisa que ninguém te mostre ou que desenhe pra você <img src='http://www.jandersonfc.com/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Pattern Delegate e os Mocks" class='wp-smiley' title="Pattern Delegate e os Mocks" /> </p>
<p><strong>Grande Facilidade para usar os Mocks</strong> &#8211; Outro ponto positivo que está diretamente ligado a minha opinião é o uso de Mocks, para quem não sabe o que é Mocks precisa de um tapa na orelha..rs brincadeira <img src='http://www.jandersonfc.com/wp-includes/images/smilies/icon_razz.gif' alt="icon razz Pattern Delegate e os Mocks" class='wp-smiley' title="Pattern Delegate e os Mocks" /> . Mocks são dados que são gerados de forma &#8220;falsa&#8221; para testar ou simular uma parte de um sistema, normalmente uso muito no flex para simular uma chamada ao serviço do backend, isso é bom porque não preciso de um servidor rodando para testar(me refiro a teste funcional) se o client(flex) está funcionando corretamente.</p>
<p>Vou terminar com 2 exemplos práticos de como o uso do Delegate me ajudou a padronizar meu projetos e a usar os mocks:</p>
<p><strong>Flex 4 + Swiz</strong> &#8211; neste <a href="http://www.jandersonfc.com/tutorial-basico-swiz-framework-1-0/">Tutorial Básico Swiz Framework 1.0</a> uso o conceito de Delegate como pode ser <a href="https://github.com/jandersonfc/ContactSwiz/tree/master/src/com/jandersonfc/model/delegate">analisado nesse pacote</a> e Também os Mocks(no caso dos Mocks uso o utilitário do próprio swiz para criar mocks) que é justamente a classe <a href="https://github.com/jandersonfc/ContactSwiz/blob/master/src/com/jandersonfc/model/delegate/impl/ContactDelegateFake.as">ContactDelegateFake.as</a>.</p>
<p><strong>Flex 4 + Springas</strong> &#8211; neste <a href="http://www.jandersonfc.com/tutorial-spring-actionscript/">Tutorial Spring ActionScript</a> uso o conceito de Delegate como pode ser <a href="https://github.com/jandersonfc/ContactSpringas/tree/master/src/com/jandersonfc/model/delegate">analisado nesse pacote</a> e também os Mocks(No caso dos Mocks uso o utilitário do springas para criar mocks) que é justamente a classe <a href="https://github.com/jandersonfc/ContactSpringas/blob/master/src/com/jandersonfc/model/delegate/impl/ContactDelegateFake.as">ContactDelegateFake.as</a>.</p>
<p>Em ambos os casos acima na controller(que é onde fica a classe que faz referência ao delegate) é feito apenas referência a uma interface <a href="https://github.com/jandersonfc/ContactSpringas/blob/master/src/com/jandersonfc/model/delegate/IContactDelegate.as">IContactDelegate</a>, então fica fácil mudar de mock para o Delegate que realmente invoca o backend, se a comunicação com backend já fosse feita no controller essa mudança de mock para o real ficaria muito mais difícil.</p>
<p>Bem, bons estudos e espero ter justificado o porque que em meus exemplos aqui no blog costumo usar o pattern delegate <img src='http://www.jandersonfc.com/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Pattern Delegate e os Mocks" class='wp-smiley' title="Pattern Delegate e os Mocks" /> </p>
<p>Cumps.</p>
</div><div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="tall" count="1" href="http://www.jandersonfc.com/pattern-delegate-e-os-mocks/">{lang: &#8216;pt-BR&#8217;}</g:plusone></div>Similar Posts:<ul><li><a href="http://www.jandersonfc.com/material-do-flexmania-e-o-soudevcon/" rel="bookmark" title="08/07/2011">Material do Flexmania e o #soudevcon</a></li>

<li><a href="http://www.jandersonfc.com/tutorial-java-flex-na-pratica-46/" rel="bookmark" title="18/05/2009">TUTORIAL JAVA + FLEX NA PRÁTICA 4/6</a></li>

<li><a href="http://www.jandersonfc.com/swiz-nao-e-framework-mvc/" rel="bookmark" title="04/11/2010">Swiz não é mais Framework MVC!</a></li>

<li><a href="http://www.jandersonfc.com/retrospectiva-2011-e-metas-2012/" rel="bookmark" title="05/12/2011">Retrospectiva 2011 e Metas 2012</a></li>

<li><a href="http://www.jandersonfc.com/mvc-da-teoria-para-a-pratica/" rel="bookmark" title="15/03/2009">MVC da teoria para a prática</a></li>
</ul><!-- Similar Posts took 6.601 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.jandersonfc.com/pattern-delegate-e-os-mocks/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Tutorial Básico Swiz Framework 1.0</title>
		<link>http://www.jandersonfc.com/tutorial-basico-swiz-framework-1-0/</link>
		<comments>http://www.jandersonfc.com/tutorial-basico-swiz-framework-1-0/#comments</comments>
		<pubDate>Sat, 26 Feb 2011 08:25:28 +0000</pubDate>
		<dc:creator>jandersonfc</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Swiz Framework]]></category>
		<category><![CDATA[Código Fonte Swiz]]></category>
		<category><![CDATA[EventHandler]]></category>
		<category><![CDATA[Exemplo Swiz]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Inject]]></category>
		<category><![CDATA[Presentation Model]]></category>
		<category><![CDATA[Presentation Model Flex]]></category>
		<category><![CDATA[swiz]]></category>
		<category><![CDATA[Swiz Framework 1.0]]></category>

		<guid isPermaLink="false">http://www.jandersonfc.com/?p=870</guid>
		<description><![CDATA[Bem, estou muito feliz por esse início de ano 100% Flex, seja tirando dúvidas, desenvolvendo ou corrigindo alguns detalhes em aplicações, enfim, é muito bom voltar com o flex na minha carga horária #FlexNaVEIA Bem, nesse início de ano a coisa que mais me perguntaram foi, o swiz vale a pena? tem como fazer um [...]]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Bem, estou muito feliz por esse início de ano 100% Flex, seja tirando dúvidas, desenvolvendo ou corrigindo alguns detalhes em aplicações, enfim, é muito bom voltar com o flex na minha carga horária <img src='http://www.jandersonfc.com/wp-includes/images/smilies/icon_biggrin.gif' alt="icon biggrin Tutorial Básico Swiz Framework 1.0" class='wp-smiley' title="Tutorial Básico Swiz Framework 1.0" />  #FlexNaVEIA</p>
<p>Bem, nesse início de ano a coisa que mais me perguntaram foi, o swiz vale a pena? tem como fazer um exemplo usando o novo swiz? então resolvi fazer esse tutorial onde tentarei ser o mais básico possível, espero justificar o porque é bom ter o Swiz como uma alternativa de Framework para você usar em suas aplicações Flex.</p>
<p>Embora esteja fazendo esse ABC é bom que todos divulguem os excelentes materias que já foram disponibilizados sobre o assunto como a próprio <a href="http://swizframework.jira.com/wiki/display/SWIZ/Home" target="_blank">Wiki do Swiz</a> que é bem completo, esse material do nosso amigo <a href="http://blog.mariojunior.com/" target="_blank">Mario Junior</a> ( <a href="http://blog.mariojunior.com/?p=11">Swiz + Modules</a> ) , o material também disponibilizado pelo nosso amigo <a href="http://blog.erkobridee.com/" target="_blank">Erko Bridee</a> ( <a href="http://blog.erkobridee.com/2010/07/18/flex-air-swiz-framework-presentation-model-exemplo-de-projeto/">[Flex &amp; AIR] Swiz Framework + Presentation Model : Exemplo de Projeto</a> ), tem também os que disponibilizei no <a href="http://www.flexmania.com.br/" target="_blank">Flexmania </a>no ano de 2010 ( <a href="../flexmania-2010-disponibilizando-codigo-fonte/" target="_blank">#flexmania 2010 – disponibilizando código fonte</a> ). Além desses links tem o que criei no curso de Design Patterns ( <a href="https://riacycle.com/flexdp/">flexdp</a> ), onde sou o instrutor, fiz um exemplo com <strong>flex4 + swiz + presentation model</strong>, é baseado nesse modelo um pouco mais simplificado e sem tratar os design patterns que vou fazer esse tutorial para vocês <img src='http://www.jandersonfc.com/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Tutorial Básico Swiz Framework 1.0" class='wp-smiley' title="Tutorial Básico Swiz Framework 1.0" />  . Let&#8217;s go <img src='http://www.jandersonfc.com/wp-includes/images/smilies/icon_biggrin.gif' alt="icon biggrin Tutorial Básico Swiz Framework 1.0" class='wp-smiley' title="Tutorial Básico Swiz Framework 1.0" /> </p>
<h2 style="text-align: center;"><strong>Conhecendo o Swiz</strong></h2>
<p>Para quem ainda não conhece o swiz framework, ele é um framework para Action Script 3(Portanto usamos no Flex tranquilamente), e como todo bom framework o swiz cuida de algumas partes chatas enquanto nos preocupamos mais com o nosso modelo de negócio. Vou me basear nesses 3 pontos que considero bons motivos para usar o Swiz:</p>
<ol>
<li>Ajuda no 	mapeamento de eventos tirando a necessidade de addEventListener para 	cada Evento disparado, isso tudo com o uso da metadata 	[EventHandler].</li>
<li>IOC(Inversão de 	Controle) containers e DI(Injeção de Dependências) sendo feito 	por metadata [Inject].</li>
<li>Utilitários como o ServiceHelper e ChannelSetHelper que ajuda 	na comunicação com serviços como WebService ,RemoteObject,etc&#8230;</li>
</ol>
<p>Irei explicar com calma cada item deste citado acima principalmente quando for mostrando o código fonte, porém vale ressaltar que um dos melhores pontos é o baixo acoplamento entre o framework e nossa aplicação, com o bom uso de metadatas o swiz consegue nos auxiliar na construção de uma aplicação e não se meter na forma como organizamos o projeto. O Swiz em suas versões mais novas não é mais um framework MVC como já disse em outro post no blog ( <a href="http://www.jandersonfc.com/swiz-nao-e-framework-mvc/" target="_blank">http://www.jandersonfc.com/swiz-nao-e-framework-mvc/</a> ) , o swiz se concentrou em ser um IOC e DI eficiente que vamos conhecer mais detalhadamente a partir de agora <img src='http://www.jandersonfc.com/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Tutorial Básico Swiz Framework 1.0" class='wp-smiley' title="Tutorial Básico Swiz Framework 1.0" /> </p>
<p style="text-align: center;">
<h2 style="text-align: center;"><strong>Swiz na prática</strong></h2>
<p>Não tem nada melhor para aprender algo do que um exemplo prático, no nosso caso um CRUD, depois do &#8220;Hello Word&#8221; é a forma mais requisitada que conheço, vamos fazer um cadastro de Contatos , bem simples e só a parte do Flex(e sem se preocupar com o layout no momento)&#8230; vamos usar um recurso do próprio Swiz (<strong>MockDelegateHelper</strong>)para simular as chamadas aos serviços no backend.</p>
<p>Aqui está o projeto rodando</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="data" value="http://saberprogramar.com/flex/ContactSwiz/ContactSwiz.swf" /><param name="src" value="http://saberprogramar.com/flex/ContactSwiz/ContactSwiz.swf" /><embed type="application/x-shockwave-flash" width="400" height="300" src="http://saberprogramar.com/flex/ContactSwiz/ContactSwiz.swf" data="http://saberprogramar.com/flex/ContactSwiz/ContactSwiz.swf"></embed></object></p>
<p>aqui está o código fonte do projeto ( <a href="https://github.com/jandersonfc/ContactSwiz" target="_blank">https://github.com/jandersonfc/ContactSwiz</a> )</p>
<p>Para não ficar muito extenso vou postar parte do código que apenas seja útil para entender o Swiz, qualquer dúvida podem usar o comentário a vontade para isso.</p>
<p style="text-align: center;">
<h2 style="text-align: center;"><strong>Mapeando os eventos</strong></h2>
<p>uma das  grandes vantagem de usar o Swiz é o suporte que ganhamos para tratar nossos eventos, através do uso de metadatas [EventHandler] podemos deixar nosso código bem desacoplado de quem envia para quem recebe os eventos, vamos ao exemplo do nosso tutorial:</p>
<p><script src="https://gist.github.com/845033.js?file=ContactPM.as"></script> perceba que desacoplamos completamente nosso Presentation Model(ContactPM)  do resto da aplicação, ele só dispara um evento e através do swiz nosso Controller(ContactController) será invocada.</p>
<p><em>Obs. Perceba essa primeira variável,a dispatcher, ela usa um metadata do Swiz [Dispatcher], o framework recomenda trabalhar dessa forma embora usando eventos com bubles também funcione.</em></p>
<p>Agora vamos analisar esse trecho da nossa Controller  <script src="https://gist.github.com/845037.js?file=ContactController.as"></script>:</p>
<p>Quando disparamos o evento ContactEvent.GET_CONTACTS em nosso Presentation Model(ContactPM) o Swiz irá invocar esse método getContacts() do nosso ContactController, isso porque esse método possui um metadata do swiz [EventHandler] com o tipo do evento que ele fica na escuta, nesse caso o event=&#8221;ContactEvent.GET_CONTACTS&#8221;.  A mágica fuciona tão bem que nossa PM(Presentation Model) e Controller não se conhecem, e é esse o grande ganho que temos em usar esse EventHandler do Swiz, baixo acoplamento o que ajuda e muito na manutenção de nossa aplicação.</p>
<p>Mas toda mágica para funcionar precisa de um truque, e com o Swiz não é diferente, por isso existe o seu arquivo de configuração que mostro abaixo.</p>
<p><script src="https://gist.github.com/845038.js?file=swizConfig.mxml"></script> para essa mágica funcionar precisamos informar esses atributos eventPackages e viewPackages para o swiz:</p>
<ul>
<li>eventPackages &#8211; indica para o swiz onde estão nossos eventos customizados para quando informarmos o tipo no [EventHandler] ele saiba como tratar o mesmo.</li>
</ul>
<ul>
<li>viewPackages &#8211; indica para o swiz onde estão nossas views que disparam os eventos.</li>
</ul>
<p><em>Obs. Observe esse &lt;config:Beans dentro do &lt;swiz:beanProviders, vamos explicar e mostrar o source dele mais abaixo.</em></p>
<h2 style="text-align: center;"><strong>IOC containers e DI</strong></h2>
<p>Além da forma como Swiz nos ajuda a trabalhar com os eventos, o que já considero um ganho e tanto, o Swiz possui um excelente IOC container e DI através do metadata [Inject], vamos mais uma vez analisar nosso Controller:<br />
 <script src="https://gist.github.com/845037.js?file=ContactController.as"></script>perceba o [Inject] em cima dos atributos do nosso controller, isso quer dizer que quando nossa aplicação for iniciada o swiz vai procurar referências em seu container desse objeto e vai injetá-lo em nosso Controller. Mais uma linda mágica <img src='http://www.jandersonfc.com/wp-includes/images/smilies/icon_biggrin.gif' alt="icon biggrin Tutorial Básico Swiz Framework 1.0" class='wp-smiley' title="Tutorial Básico Swiz Framework 1.0" /> </p>
<p>Como assim? Como o Swiz vai saber por exemplo que esse contactDelegate que é uma Interface (IContactDelegate) qual implementação(ContactDelegate e ContactDelegateFake) usar na hora de criar a instancia desse objeto? Aí vem mais um truque, o nosso arquivo que citei mais acima, o nosso Beans.mxml, é o que chamamos de IOC container do swiz:</p>
<p><script src="https://gist.github.com/845040.js?file=Beans.mxml"></script> É aí que você vai mapear os objetos que você quer que quando a aplicação for iniciada o swiz crie instancias desses objectos.  Bem, ainda não entendeu? O fluxo é esse.</p>
<ol>
<li>Aplicação inicia.</li>
<li>O Swiz pega esses objetos que você informou nesse container e instancia  os mesmos. ex. contactdelegate = new  ContactDelegateFake().</li>
<li>O Swiz vai procurar  se tem algum [Inject] referenciando esse id informado no container e vai tentar injetar essa  instancia que ele criou.</li>
</ol>
<p>É por isso que em nenhum momento na nossa ContactController foi preciso instanciar o atributo contactDelegate, o swiz cuidou disso pra nós, e isso chamamos de DI, quando a responsabilidade de instanciar suas dependências não é do próprio objeto, no nosso caso a Controller não instancia a suas dependências e sim o Swiz.  Uma coisa interessante que gostaria que vocês observassem é que nesse exemplo existe duas implementações do IcontactDelegate, o ContactDelegate e ContactDelegateFake, está ativo no exemplo o Fake mas para mudar para o Delegate  que usa o RemoteObject é só mudar de:<br />
 <script src="https://gist.github.com/845584.js?file=Beans.mxml"></script></p>
<p>para:</p>
<p><script src="https://gist.github.com/845585.js?file=Beans.mxml"></script> ou seja, alteramos no arquivo de configuração do swiz e não precisamos mudar nada no código da nossa aplicação, isso tudo porque na Controller mencionamos apenas uma interface e não a sua implementação que só é definida em tempo de execeção pelo Swiz.</p>
<h2 style="text-align: center;"><strong>Service Helper</strong></h2>
<p>algo muito útil também no swiz é seu serviceHelper que nos auxilia na comunicação com o nosso backend, que na maioria das vezes é feito via RemoteObject, vamos analisar na nossa Controller:  <script src="https://gist.github.com/845042.js?file=ContactController.as"></script></p>
<p>é bem simples o seu uso e de fácil entendimento, ao chamar o método executeServiceCall passando 3 parametros já é<br />
o suficiente para o swiz fazer a requisição no backend ou chamar quem faça(no nosso caso o Delegate que faz isso) e mapear qual função vai tratar o retorno do nosso RemoteOject em caso de sucesso ou em caso de erro.<strong> </strong></p>
<p style="text-align: center;">
<h2 style="text-align: center;"><strong>Conclusão</strong></h2>
<p><strong> </strong><br />
<strong> </strong></p>
<p>Espero com esse exemplo e rápida explicação tenha te incentivado a usar o mesmo, e lembre-se, o swiz não impôe uma forma de estruturar sua aplicação, nada impede de você injetar a Controller no Presentation Model e diminiur a quantidade de eventos disparados na aplicação por exemplo, nem de usar MVC ou não em sua arquitetura.</p>
<p>Uma coisa que sempe digo é que antes de usar algo que facilite seu desenvolvimento você precise aprender sem as facilidades, eu tive que aprender como mapear o Hibernate com XML para depois perceber o ganho que tinha com os Annotations, talvez você precise aprender como funciona os eventos em actionScript para perceber o ganho que terá usando os [EventHandler] do Swiz por exemplo <img src='http://www.jandersonfc.com/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Tutorial Básico Swiz Framework 1.0" class='wp-smiley' title="Tutorial Básico Swiz Framework 1.0" /> </p>
<p>O swiz possui mais algumas funcionalidades, mas essas são as básicas para você já começar a usá-lo, então faça bom proveito <img src='http://www.jandersonfc.com/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Tutorial Básico Swiz Framework 1.0" class='wp-smiley' title="Tutorial Básico Swiz Framework 1.0" /> </p>
<p>Cumps.</p>
</div><div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="tall" count="1" href="http://www.jandersonfc.com/tutorial-basico-swiz-framework-1-0/">{lang: &#8216;pt-BR&#8217;}</g:plusone></div>Similar Posts:<ul><li><a href="http://www.jandersonfc.com/swiz-nao-e-framework-mvc/" rel="bookmark" title="04/11/2010">Swiz não é mais Framework MVC!</a></li>

<li><a href="http://www.jandersonfc.com/tutorial-java-flex-na-pratica-56/" rel="bookmark" title="25/05/2009">TUTORIAL JAVA + FLEX NA PRÁTICA 5/6</a></li>

<li><a href="http://www.jandersonfc.com/mvc-da-teoria-para-a-pratica/" rel="bookmark" title="15/03/2009">MVC da teoria para a prática</a></li>

<li><a href="http://www.jandersonfc.com/tutorial-java-flex-na-pratica-36/" rel="bookmark" title="15/05/2009">TUTORIAL JAVA + FLEX NA PRÁTICA 3/6</a></li>

<li><a href="http://www.jandersonfc.com/tutorial-java-flex-na-pratica-9-atualizando-o-swiz/" rel="bookmark" title="26/01/2010">TUTORIAL JAVA + FLEX NA PRÁTICA (9) &#8211; Atualizando o Swiz</a></li>
</ul><!-- Similar Posts took 8.032 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.jandersonfc.com/tutorial-basico-swiz-framework-1-0/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Swiz não é mais Framework MVC!</title>
		<link>http://www.jandersonfc.com/swiz-nao-e-framework-mvc/</link>
		<comments>http://www.jandersonfc.com/swiz-nao-e-framework-mvc/#comments</comments>
		<pubDate>Thu, 04 Nov 2010 20:31:11 +0000</pubDate>
		<dc:creator>jandersonfc</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Swiz Framework]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://www.jandersonfc.com/?p=715</guid>
		<description><![CDATA[Esse post vai para galera do Flex e tem esse Título com um certo tom de contradição justamente para alertar sobre alguns equívocos que cometemos por não conhecer de verdade como um framework funciona e qual é o seu real Objetivo. Vou mostrar o caso do swiz só para vocês meditarem sobre isso. SWIZ FRAMEWORK [...]]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Esse post vai para galera do Flex e tem esse Título com um certo tom de contradição justamente para alertar sobre alguns equívocos que cometemos por não conhecer de verdade como um framework funciona e qual é o seu real Objetivo. Vou mostrar o caso do swiz só para vocês meditarem sobre isso.</p>
<p style="text-align: center;"><strong>SWIZ FRAMEWORK</strong></p>
<p>Swiz é um framework muito bem organizado, podemos dizer que o swiz é:</p>
<p><strong>IOC(Inversion of Control) containers</strong> &#8211; o arquivo Swiz(Classe do core do framework) é o ioc containers, que por sua vez carrega os BeanLoaders que é onde podemos colocar qualquer classe (da nossa aplicação ou não) para ser instanciada pelo swiz , quando a aplicação flex for iniciada o swiz cria intancia dos beans colocados no containers que por padrão usam o design patterns singleton para garantir apenas uma instancia desses beans(por default já que podemos escolher o padrão prototype para esse caso também). Normalmente no nosso BeanLoaders colocamos nossos RemoteObject, controladoras, delegates, presentation Model, etc&#8230;</p>
<p><strong>IOC  como o próprio nome diz significa que algumas responsabilidades não será da nossa aplicação mas sim do Framework, basicamente todo framework é um IOC já que ele em algum momento assume responsabilidade sobre uma atividade na aplicação, porém nem todos frameworks tem um container como é o caso do swiz</strong>, esse container deixa o framework mais dinâmico, podemos informar as classes que queremos que ele instancie, quais packages queremos que ele intercepte caso seja disparado um evento&#8230; A metadata [Mediate] é um exemplo de como um IOC do swiz funciona, quando é disparado um evento na aplicação o swiz procura o método que possui o metadata [Mediate] que correspende aquele evento disparado e invoca o método.</p>
<p><strong>DI(Dependency Injection)</strong> &#8211; Essa é uma das melhores partes do swiz, usar Metadata(no java Annotations) para injetar as dependências. Através do uso da metadata [Inject] o swiz consegue injetar qual objeto que deve ser usado naquele caso. Perceba que é responsabilidade do IOC containers comunicar para o swiz quais os objetos que devem ser instanciados e através de um metadata [Inject] o framework pega a instancia que ele já criou quando subiu a aplicação e injeta no atributo que se encontra com a metadata [Inject]. <strong>Injeção de dependência é tirar a responsabilidade daquela classe de instanciar os objetos(Atributos) que ela depende para funcionar</strong>. O swiz usa como base para injeção de dependência o IOC containers criado por nós, então é correto dizer que IOC é uma forma de injetar dependências (DI) mas é bom você ter ciência que não é a única forma.</p>
<p>o Swiz é isso,IOC e DI,  aonde está o MVC? em lugar nenhum. podemos não implementar um MVC e usar o swiz para desacoplar responsabilidades usando injeção de depenências e/ou facilitar a forma com que trabalhamos com os eventos no flex. O fato de usar MVC é um boa prática e a própria documentação do framework recomenda porém o swiz não é framework MVC.</p>
<p>Principalmente no caso do swiz é normal essa confusão, já que em suas primeiras versões se tratava de um framework MVC, porém com a maturidade de seu container e um bom uso de metadata o foco foi mudando. Por isso é muito importante você analisar  o que realmente cada framework faz, baixe o código fonte do mesmo, tente  entender e assim você não será enganado pelas aparências.</p>
<p>Espero que medite sobre o mesmo e logo perceberá que o Spring(AS) e Mate também não são frameworks MVC.</p>
<p>Cumps.</p>
</div><div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="tall" count="1" href="http://www.jandersonfc.com/swiz-nao-e-framework-mvc/">{lang: &#8216;pt-BR&#8217;}</g:plusone></div>Similar Posts:<ul><li><a href="http://www.jandersonfc.com/tutorial-basico-swiz-framework-1-0/" rel="bookmark" title="26/02/2011">Tutorial Básico Swiz Framework 1.0</a></li>

<li><a href="http://www.jandersonfc.com/tutorial-spring-actionscript/" rel="bookmark" title="10/03/2011">Tutorial Spring ActionScript</a></li>

<li><a href="http://www.jandersonfc.com/tutorial-java-flex-na-pratica-9-atualizando-o-swiz/" rel="bookmark" title="26/01/2010">TUTORIAL JAVA + FLEX NA PRÁTICA (9) &#8211; Atualizando o Swiz</a></li>

<li><a href="http://www.jandersonfc.com/tutorial-java-flex-na-pratica-36/" rel="bookmark" title="15/05/2009">TUTORIAL JAVA + FLEX NA PRÁTICA 3/6</a></li>

<li><a href="http://www.jandersonfc.com/resumo-do-flexdp-e-o-cafxframework/" rel="bookmark" title="27/10/2010">Resumo do #Flexdp e o #CafxFramework</a></li>
</ul><!-- Similar Posts took 6.708 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.jandersonfc.com/swiz-nao-e-framework-mvc/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

