<?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>Softwares para Automação Comercial e Desenvolvimento de Software Personalizado &#187; Diversos</title>
	<atom:link href="http://www.flexdev.com.br/home/category/diversos/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.flexdev.com.br/home</link>
	<description>Softwares para Automação Comercial</description>
	<lastBuildDate>Tue, 21 Jun 2011 00:35:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>PHP com BDD</title>
		<link>http://www.flexdev.com.br/home/php-com-bdd/</link>
		<comments>http://www.flexdev.com.br/home/php-com-bdd/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 19:46:59 +0000</pubDate>
		<dc:creator>fabio.silva</dc:creator>
				<category><![CDATA[Diversos]]></category>

		<guid isPermaLink="false">http://www.flexdev.com.br/home/?p=397</guid>
		<description><![CDATA[TweetTweetOlá, Nesse Post vou mostrar um pouco de desenvolvimento PHP usando BDD (Behaviour-Driven Development). O BDD é uma prática ágil que tem como objetivo facilitar o desenvolvimento orientado a testes, onde o software é direcionados por comportamentos, trazendo para o contexto de destes os casos de uso ou historias da aplicação. Enquanto em TDD (Test [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.flexdev.com.br/home/php-com-bdd/&via=flexdevbr&text=PHP com BDD&related=FlexDev:FlexDev&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.flexdev.com.br/home/php-com-bdd/&via=flexdevbr&text=PHP com BDD&related=FlexDev:FlexDev&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><p>Olá,</p>
<p>Nesse Post vou mostrar um pouco de desenvolvimento PHP usando BDD (Behaviour-Driven Development).<br />
O BDD é uma prática ágil que tem como objetivo facilitar o desenvolvimento orientado a testes,<br />
onde o software é direcionados por comportamentos, trazendo para o contexto  de destes os casos de uso ou historias da aplicação.</p>
<p>Enquanto em TDD (Test Driven Development) testamos a aplicação de forma granular em um ambiente micro<br />
no BDD os testes são globais voltados para a Funcionalidade, Casos de uso, Comportamentos, etc..</p>
<p>Como se em TDD testamos a aplicação de dentro para fora e já em BDD a aplicação é testada de fora para dentro.<br />
Existe muito material sobre esse assunto p\ ai e muita gente mais preparada que eu para abordar esse assunto de forma teorica,<br />
Então nesse Post vou mostrar na pratica um pouco de desenvolvimento PHP usando o <a href="http://behat.org">Behat</a></p>
<p><img src="http://www.flexria.com.br/home/wp-content/uploads/2011/06/behat.png" alt="Behat" /></p>
<p>Behat é um framework BDD <strong>em PHP 5.3</strong> construindo sobre de componentes do Symfony2.<br />
Behat foi inspirado no <a href="http://cukes.info">Cucumber</a> do Rails e especialmente a parte da sintaxe das features.</p>
<p>A instalação do Behat pode ser feita baixando diretalente pelo git diretamente pelo do git: <a href="http://github.com/Behat/Behat">http://github.com/Behat/Behat</a><br />
Ou instalando através do pear :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">&nbsp;
$ pear channel-discover pear.behat.org
$ pear <span style="color: #c20cb9; font-weight: bold;">install</span> behat<span style="color: #000000; font-weight: bold;">/</span>behat</pre></div></div>

<p>Se tudo der certo o Behat esta instalado<br />
A versão atualmente disponível no pear é a 1.1.9<br />
Para verificar se esta correto e ver a versão instalada execute :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ behat <span style="color: #660033;">-V</span>
Behat version 1.1.9</pre></div></div>

<p>Depois de concluir a instalação o Behat esta pronto para ser usado.<br />
para isso vamos inicializar o projeto de testes com o Behat</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">cd</span> path-to-my-app
$ behat <span style="color: #660033;">--init</span></pre></div></div>

<p>O comando behat &#8211;init vai criara a estruturar de diretórios usada p\ organizar os teste do Behat</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">|</span>-- features
   <span style="color: #000000; font-weight: bold;">|</span>-- steps            <span style="color: #666666; font-style: italic;">##Diretório dos arquivos que contem os cenários de testes</span>
       <span style="color: #000000; font-weight: bold;">|</span>-- steps.php
   <span style="color: #000000; font-weight: bold;">|</span>-- support          <span style="color: #666666; font-style: italic;">##Configurações, requires e configs de ambiente</span>
       <span style="color: #000000; font-weight: bold;">|</span>-- bootstrap.php  
       <span style="color: #000000; font-weight: bold;">|</span>-- env.php</pre></div></div>

<p>A definição de um historias e cenários de teste é bem simples.<br />
Utilizando algumas palavras chaves : <b>Feature, Scenario, Given, When, Then, But or And</b><br />
Os cenários são escritos em arquivos .feature que serão interpretados pelo Behat</p>
<p><b>features/contacts.feature</b></p>
<pre>
<b>Feature</b>: Contacts Registration
    In order to demonstrate the framework
    As a SouDev using BDD
    I want to register contacts

  <b>Scenario</b>: Add new contact
    <b>Given</b> a contact named "Fabio B. Silva" using the email "fabio.bat.silva@gmail.com"
      <b>And</b> the phone "xx xxxx-xxxx"
     <b>When</b> press save
     <b>Then</b> everything will be saved
</pre>
<p>Com a historia escrita podemos executar o Behat dentro da aplicação<br />
O Behat vai interpretar os arquivos .feature<br />
e mostrar quais funções vc tem que implementar para poder rodas o teste</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">&nbsp;
$ <span style="color: #7a0874; font-weight: bold;">cd</span> path-to-my-app
$ behat
<span style="color: #000000;">1</span> scenario <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">1</span> undefined<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000;">4</span> steps <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">4</span> undefined<span style="color: #7a0874; font-weight: bold;">&#41;</span>
0m0.03s
&nbsp;
You can implement step definitions <span style="color: #000000; font-weight: bold;">for</span> undefined steps with these snippets:
&nbsp;
<span style="color: #007800;">$steps</span>-<span style="color: #000000; font-weight: bold;">&amp;</span>gt;Given<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">'/^a contact named &quot;([^&quot;]*)&quot; using the email &quot;([^&quot;]*)&quot;$/'</span>, <span style="color: #000000; font-weight: bold;">function</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">$world</span>, <span style="color: #007800;">$arg1</span>, <span style="color: #007800;">$arg2</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
    throw new \Behat\Behat\Exception\Pending<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;
<span style="color: #7a0874; font-weight: bold;">&#125;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;
<span style="color: #007800;">$steps</span>-<span style="color: #000000; font-weight: bold;">&amp;</span>gt;And<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">'/^the phone &quot;([^&quot;]*)&quot;$/'</span>, <span style="color: #000000; font-weight: bold;">function</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">$world</span>, <span style="color: #007800;">$arg1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
    throw new \Behat\Behat\Exception\Pending<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;
<span style="color: #7a0874; font-weight: bold;">&#125;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;
<span style="color: #007800;">$steps</span>-<span style="color: #000000; font-weight: bold;">&amp;</span>gt;When<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">'/^press save$/'</span>, <span style="color: #000000; font-weight: bold;">function</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">$world</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
    throw new \Behat\Behat\Exception\Pending<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;
<span style="color: #7a0874; font-weight: bold;">&#125;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;
<span style="color: #007800;">$steps</span>-<span style="color: #000000; font-weight: bold;">&amp;</span>gt;Then<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">'/^everything will be saved$/'</span>, <span style="color: #000000; font-weight: bold;">function</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">$world</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
    throw new \Behat\Behat\Exception\Pending<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;
<span style="color: #7a0874; font-weight: bold;">&#125;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;</pre></div></div>

<p>Essa definição dos steps que o Behat lançou pode ser copiada para um arquivo de steps.php o que facilita bastante a implementação dos teste..<br />
Porem escrever historias em inglês pode ser meio confuso, mais o tem suporte a i18n oq nos permite escrever as historias em português.<br />
para isso basta adicionar # language: pt_BR no inicio do arquivo .feature<br />
com isso ganhamos as palavras chaves em português : <b>Funcionalidade,Cenario, Scenario, Quando, Então, Entao, Dado, Mas, E</b></p>
<p><b>features/contacts.feature</b></p>
<pre>
# language: pt_BR
<b>Funcionalidade</b>: Cadastro de contatos
    Para demostrar o funcionamento do framework
    Como SouDev que usa BDD
    Desejo cadastrar contatos

  <b>Cenario</b>: Adicionar um novo contato
    <b>Dado</b> um usuário chamado "Fabio B. Silva" usando o email "fabio.bat.silva@gmail.com"
      <b>E</b> com o telefone "xx xxxx-xxxx"
     <b>Quando</b> pressionar salvar
     <b>Entao</b> os dados serão salvos
</pre>
<p>E ao executar novamente o Behat a implementação dos teste agora também vem em português :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">&nbsp;
$ <span style="color: #7a0874; font-weight: bold;">cd</span> path-to-my-app
$ behat
<span style="color: #000000;">1</span> scenario <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">1</span> undefined<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000;">4</span> steps <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">4</span> undefined<span style="color: #7a0874; font-weight: bold;">&#41;</span>
0m0.03s
&nbsp;
You can implement step definitions <span style="color: #000000; font-weight: bold;">for</span> undefined steps with these snippets:
&nbsp;
<span style="color: #007800;">$steps</span>-<span style="color: #000000; font-weight: bold;">&amp;</span>gt;Dado<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">'/^um usuário chamado &quot;([^&quot;]*)&quot; usando o email &quot;([^&quot;]*)&quot;$/'</span>, <span style="color: #000000; font-weight: bold;">function</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">$world</span>, <span style="color: #007800;">$arg1</span>, <span style="color: #007800;">$arg2</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
    throw new \Behat\Behat\Exception\Pending<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;
<span style="color: #7a0874; font-weight: bold;">&#125;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;
<span style="color: #007800;">$steps</span>-<span style="color: #000000; font-weight: bold;">&amp;</span>gt;E<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">'/^com o telefone &quot;([^&quot;]*)&quot;$/'</span>, <span style="color: #000000; font-weight: bold;">function</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">$world</span>, <span style="color: #007800;">$arg1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
    throw new \Behat\Behat\Exception\Pending<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;
<span style="color: #7a0874; font-weight: bold;">&#125;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;
<span style="color: #007800;">$steps</span>-<span style="color: #000000; font-weight: bold;">&amp;</span>gt;Quando<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">'/^pressionar salvar$/'</span>, <span style="color: #000000; font-weight: bold;">function</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">$world</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
    throw new \Behat\Behat\Exception\Pending<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;
<span style="color: #7a0874; font-weight: bold;">&#125;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;
<span style="color: #007800;">$steps</span>-<span style="color: #000000; font-weight: bold;">&amp;</span>gt;Entao<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">'/^todos os dados serão salvos$/'</span>, <span style="color: #000000; font-weight: bold;">function</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">$world</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
    throw new \Behat\Behat\Exception\Pending<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;
<span style="color: #7a0874; font-weight: bold;">&#125;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;</pre></div></div>

<p>Com essa definição a implementação dos testes para essa feature pode ser feita<br />
<b>features/contacts_steps.php</b></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">use</span> App\Entities\Contact<span style="color: #339933;">,</span> App\Entities\Phone<span style="color: #339933;">,</span> App\Services\ContactService<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$steps</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>Dado<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/^um usuário chamado &quot;([^&quot;]*)&quot; usando o email &quot;([^&quot;]*)&quot;$/'</span><span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$world</span><span style="color: #339933;">,</span> <span style="color: #000088;">$arg1</span><span style="color: #339933;">,</span> <span style="color: #000088;">$arg2</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$contact</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Contact<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$contact</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>setName<span style="color: #009900;">&#40;</span><span style="color: #000088;">$arg1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$contact</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>setEmail<span style="color: #009900;">&#40;</span><span style="color: #000088;">$arg2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000088;">$world</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>contact <span style="color: #339933;">=</span> <span style="color: #000088;">$contact</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$steps</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>E<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/^com o telefone &quot;([^&quot;]*)&quot;$/'</span><span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$world</span><span style="color: #339933;">,</span> <span style="color: #000088;">$arg1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$world</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>contact<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>addPhone<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Phone<span style="color: #009900;">&#40;</span><span style="color: #000088;">$arg1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$steps</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>Quando<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/^pressionar salvar$/'</span><span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$world</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$world</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>saveReturn <span style="color: #339933;">=</span> ContactService<span style="color: #339933;">::</span><span style="color: #004000;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>save<span style="color: #009900;">&#40;</span><span style="color: #000088;">$world</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>contact<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$steps</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>Entao<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/^todos os dados serão salvos$/'</span><span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$world</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
     assertTrue<span style="color: #009900;">&#40;</span><span style="color: #000088;">$world</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>saveReturn<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<blockquote>
<p>O BDD e TDD são ferramentas essenciais para um software bem feito,<br />
Infeliz mente muitos &#8220;desenvolvedores&#8221; ainda tem resistência a aderir ao teste e por achar perda de tempo, tedioso, etc..<br />
O fato é que uma suite de testes bem feita vai tornar sua aplicação muito mais estável e vai lhe economizar tempo e cabelos ao longo do projeto. rsrs</p>
<p>Gostei bastante do Behat é um projeto muito bem estruturado e em constante evolução a versão 2.0 esta prestes a sair<br />
Vale apena dar uma conferida na <a href="http://docs.behat.org/en/quick_intro.html">Documentação do Behat</a></p>
<p>E Para quem tiver o interesse deixei a app no git<br />
<a href="https://github.com/FabioBatSilva/bdd-php-behat" target="_blank">https://github.com/FabioBatSilva/bdd-php-behat</a></p>
<p>Abraço e até a próxima…. </p>
</blockquote>
<p><a href="http://www.flexria.com.br/home/?p=815" target="_blank">Click aqui para ver o post Original</a><br />
<img style="width: 94px;height: 94px" src="http://www.flexria.com.br/home/wp-content/uploads/2009/08/Eu-150x150.jpg" alt="Fábio B. Silva" width="80" height="80" /><br />
<a href="http://www.flexria.com.br/home/?page_id=2" target="_blank">Fabio B. Silva</a><br />
<a href="http://www.flexria.com.br/home/" target="_blank">http://www.flexria.com.br</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexdev.com.br/home/php-com-bdd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Repositórios Com Spring JPA</title>
		<link>http://www.flexdev.com.br/home/repositorios-com-spring-jpa/</link>
		<comments>http://www.flexdev.com.br/home/repositorios-com-spring-jpa/#comments</comments>
		<pubDate>Mon, 06 Jun 2011 14:26:01 +0000</pubDate>
		<dc:creator>fabio.silva</dc:creator>
				<category><![CDATA[Diversos]]></category>

		<guid isPermaLink="false">http://www.flexdev.com.br/home/?p=384</guid>
		<description><![CDATA[TweetTweetOlá. Escrevendo o post Java + MongoDB + Spring Data descobri o Spring Data JPA e fiquei surpreso em descobrir algumas features como a criação de repositórios e consultas dinâmicas. Neste Post vou falar um pouco sobre o Spring Data JPA e como ele pode lhe proporcionar uma maneira rápida e elegante de implementar seus [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.flexdev.com.br/home/repositorios-com-spring-jpa/&via=flexdevbr&text=Repositórios Com Spring JPA&related=FlexDev:FlexDev&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.flexdev.com.br/home/repositorios-com-spring-jpa/&via=flexdevbr&text=Repositórios Com Spring JPA&related=FlexDev:FlexDev&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><p>Olá.</p>
<p>Escrevendo o post <a href="http://www.flexria.com.br/home/?p=728">Java + MongoDB + Spring Data</a> descobri o <a href="http://www.springsource.org/spring-data/jpa">Spring Data JPA</a><br />
e fiquei surpreso em descobrir algumas features como a criação de repositórios e consultas dinâmicas.<br />
Neste Post vou falar um pouco sobre o Spring Data JPA e como ele pode lhe proporcionar uma maneira rápida e elegante de implementar seus repositórios.</p>
<div>
<img src="http://www.flexria.com.br/home/wp-content/uploads/2011/05/spring.png"></img>
</div>
<p>O Spring Data JPA tem como principal objetivo facilitar a implementação das camadas de acesso a dados.<br />
O Spring fica responsável pela implementação dos repositórios e oferece algumas funcionalidades sofisticadas e comuns na maioria dos CRUDs baseado na entidade que esta sendo gerenciada.</p>
<p>Nessa aplicação vou usar as entidades Contact, Phone, e o repositório ContactRepository.</p>
<p>As entidades são bem simples, é anotadas com o mapeamento de seus atributos e relacionamentos.<br />
<b>Contact.java</b></p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">&nbsp;
@<span style="color: #003399;">Entity</span>
@Table<span style="color: #009900;">&#40;</span>name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;phones&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Phone <span style="color: #009900;">&#123;</span>
  @Id
  @GeneratedValue<span style="color: #009900;">&#40;</span>strategy <span style="color: #339933;">=</span> GenerationType.<span style="color: #006633;">AUTO</span><span style="color: #009900;">&#41;</span>
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">Long</span> id<span style="color: #339933;">;</span>
&nbsp;
  @ManyToOne
  @JoinColumn<span style="color: #009900;">&#40;</span>name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;id_contact&quot;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #000000; font-weight: bold;">private</span> Contact contact<span style="color: #339933;">;</span>
  <span style="color: #666666; font-style: italic;">//getter and setter methods </span>
  ...
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><b>Phone.java</b></p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">@<span style="color: #003399;">Entity</span>
@Table<span style="color: #009900;">&#40;</span>name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;contacts&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Contact <span style="color: #009900;">&#123;</span>
&nbsp;
   @Id
   @Column<span style="color: #009900;">&#40;</span>name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;id_contact&quot;</span><span style="color: #009900;">&#41;</span>
   @GeneratedValue<span style="color: #009900;">&#40;</span>strategy <span style="color: #339933;">=</span> GenerationType.<span style="color: #006633;">AUTO</span><span style="color: #009900;">&#41;</span>
   <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">Long</span> id<span style="color: #339933;">;</span>
&nbsp;
   @Column<span style="color: #009900;">&#40;</span>name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;name&quot;</span><span style="color: #009900;">&#41;</span>
   <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">String</span> name<span style="color: #339933;">;</span>
&nbsp;
   @Column<span style="color: #009900;">&#40;</span>name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;email&quot;</span>,unique<span style="color: #339933;">=</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span>
   <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">String</span> email<span style="color: #339933;">;</span>
&nbsp;
   @OneToMany<span style="color: #009900;">&#40;</span>mappedBy<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;contact&quot;</span>,cascade<span style="color: #339933;">=</span>CascadeType.<span style="color: #006633;">ALL</span>, fetch<span style="color: #339933;">=</span>FetchType.<span style="color: #006633;">LAZY</span><span style="color: #009900;">&#41;</span>
   @Fetch<span style="color: #009900;">&#40;</span>FetchMode.<span style="color: #006633;">JOIN</span><span style="color: #009900;">&#41;</span>
   @<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">Set</span> phones <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">HashSet</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">//getter and setter methods </span>
  ...
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><b>ContactRepository.java</b></p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">interface</span> ContactRepository <span style="color: #000000; font-weight: bold;">extends</span> JpaRepository <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> Contact findByEmail<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> email<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Até aqui nada de novo, porem agora como a &#8220;mágica&#8221; do Spring JPA ..rsrs</p>
<p>A interface do repositório estende <b>JpaRepository</b>, essa interface  tem alguns métodos comuns como  findAll, findOne, save, delete, etc&#8230;<br />
Normalmente teríamos que implementar essa interface criando uma classe ContactRepositoryImpl e registra-la como um bean do spring<br />
para que então possamos utilizar o repositório.</p>
<p>Com o Spring JPA não é necessário escrever essa implementação <img src='http://www.flexdev.com.br/home/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ..<br />
Não é magia meus amigos, é tecnologia !!!&#8230;rsrs</p>
<p>O Spring JPA vai procurar por interfaces de repositórios que estendam a interface JpaRepository,<br />
e então criar uma implementação para a interface e registra-la como um bean.</p>
<p>Para isso so é necessário apenas adicionar a tag <b>jpa:repositories</b> no contexto do spring,<br />
com isso o Spring sabe onde procurar os repositórios que ele teve implementar.</p>
<p><b>applicationContext.xml</b></p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">&nbsp;
// Declaração dos Beans, TransactionManager, DataSource, etc...
&nbsp;
<span style="color: #ddbb00;">&amp;lt;</span>jpa:repositories base-package=&quot;br.com.flexria.springjpa.repository&quot; /<span style="color: #ddbb00;">&amp;gt;</span></pre></div></div>

<p>Com isso a implementação do repositório já esta pronta para ser injetada é utilizada na aplicação.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">&nbsp;
@Autowired
ContactRepository repository<span style="color: #339933;">;</span>
&nbsp;
repository.<span style="color: #006633;">save</span><span style="color: #009900;">&#40;</span>contact<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
repository.<span style="color: #006633;">delete</span><span style="color: #009900;">&#40;</span>contact<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003399;">List</span> list <span style="color: #339933;">=</span> contactRepository.<span style="color: #006633;">findAll</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Isso por si so ja é algo incrível so que o Spring Data JPA vai alem.</p>
<p>Algo que ja é comum no Rails, são os Dynamic attribute-based finders que é a possibilidade de realizar buscas dinâmica baseadas nos atributos do objeto<br />
Em rails temos :</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#006600; font-weight:bold;">//</span><span style="color:#996600;">&quot;SQL : SELECT * FROM contacts WHERE email = 'fabio.bat.silva@gmail.com'&quot;</span>
&nbsp;
Contact.<span style="color:#9900CC;">where</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:email</span> =<span style="color:#006600; font-weight:bold;">&amp;</span>gt;<span style="color:#996600;">&quot;fabio.bat.silva@gmail.com&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
<span style="color:#006600; font-weight:bold;">//</span>Usando Dynamic attribute<span style="color:#006600; font-weight:bold;">-</span>based finders
Contact.<span style="color:#9900CC;">find_by_email</span> <span style="color:#996600;">&quot;fabio.bat.silva@gmail.com&quot;</span></pre></div></div>

<p>É exatamente isso que o Spring Data JPA faz,<br />
além de implementar do repositório com ele é possível utilizar buscas dinâmica baseadas nos atributos do objeto.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">   <span style="color: #666666; font-style: italic;">// HQL : select c from Contact c where c.email = ?1</span>
    <span style="color: #000000; font-weight: bold;">public</span> Contact findByEmail<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> email<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #666666; font-style: italic;">// HQL : select c from Contact c where c.name like ?1</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">List</span> findBynameLike<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> email<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Com base em algumas palavras chaves varias consultas podem ser feitas :</p>
<table border="1">
<thead>
<tr>
<th>Keyword</th>
<th>Sample</th>
<th>JPQL snippet</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>And</code>
			</td>
<td><code>findByLastnameAndFirstname</code>
			</td>
<td><code>… where x.lastname = ?1 and<br />
					x.firstname = ?2</code>
			</td>
</tr>
<tr>
<td><code>Or</code>
			</td>
<td><code>findByLastnameOrFirstname</code>
			</td>
<td><code>… where x.lastname = ?1 or<br />
					x.firstname = ?2</code>
			</td>
</tr>
<tr>
<td><code>Between</code>
			</td>
<td><code>findByStartDateBetween</code>
			</td>
<td><code>… where x.startDate between 1? and<br />
					?2</code>
			</td>
</tr>
<tr>
<td><code>LessThan</code>
			</td>
<td><code>findByAgeLessThan</code>
			</td>
<td><code>… where x.age &lt; ?1</code>
			</td>
</tr>
<tr>
<td><code>GreaterThan</code>
			</td>
<td><code>findByAgeGreaterThan</code>
			</td>
<td><code>… where x.age &gt; ?1</code>
			</td>
</tr>
<tr>
<td><code>IsNull</code>
			</td>
<td><code>findByAgeIsNull</code>
			</td>
<td><code>… where x.age is null</code>
			</td>
</tr>
<tr>
<td><code>IsNotNull,NotNull</code>
			</td>
<td><code>findByAge(Is)NotNull</code>
			</td>
<td><code>… where x.age not null</code>
			</td>
</tr>
<tr>
<td><code>Like</code>
			</td>
<td><code>findByFirstnameLike</code>
			</td>
<td><code>… where x.firstname like ?1</code>
			</td>
</tr>
<tr>
<td><code>NotLike</code>
			</td>
<td><code>findByFirstnameNotLike</code>
			</td>
<td><code>… where x.firstname not like ?1</code>
			</td>
</tr>
<tr>
<td><code>OrderBy</code>
			</td>
<td><code>findByAgeOrderByLastnameDesc</code>
			</td>
<td><code>… where x.age = ?1 order by<br />
					x.lastname desc</code>
			</td>
</tr>
<tr>
<td><code>Not</code>
			</td>
<td><code>findByLastnameNot</code>
			</td>
<td><code>… where x.lastname &lt;&gt; ?1</code>
			</td>
</tr>
</tbody>
</table>
<blockquote>
<p>Repositórios dinâmicos, consultas dinâmicas, Buscas baseadas em NamedQuery ou anotações, etc..<br />
com certeza tem muita coisa a ser explorada no Spring Data JPA, me surpreendi com a facilidade e agilidade.</p>
<p>Vale apena dar uma conferida na <a href="http://static.springsource.org/spring-data/data-jpa/docs/current/reference/html/">documentação do Spring Data JPA</a></p>
<p>E Para quem tiver o interesse deixei a app no git<br />
<a href="https://github.com/FabioBatSilva/spring-data-jpa" target="_blank">https://github.com/FabioBatSilva/spring-data-jpa</a></p>
<p>Abraço e até a próxima…. </p>
</blockquote>
<p><a href="http://www.flexria.com.br/home/?p=771" target="_blank">Click aqui para ver o post Original</a><br />
<img style="width: 94px;height: 94px" src="http://www.flexria.com.br/home/wp-content/uploads/2009/08/Eu-150x150.jpg" alt="Fábio B. Silva" width="80" height="80" /><br />
<a href="http://www.flexria.com.br/home/?page_id=2" target="_blank">Fabio B. Silva</a><br />
<a href="http://www.flexria.com.br/home/" target="_blank">http://www.flexria.com.br</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexdev.com.br/home/repositorios-com-spring-jpa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Criando Mockups com o Microsoft SketchFlow</title>
		<link>http://www.flexdev.com.br/home/criando-mockups-com-o-microsoft-sketchflow/</link>
		<comments>http://www.flexdev.com.br/home/criando-mockups-com-o-microsoft-sketchflow/#comments</comments>
		<pubDate>Fri, 27 May 2011 21:27:08 +0000</pubDate>
		<dc:creator>rodrigo</dc:creator>
				<category><![CDATA[Diversos]]></category>

		<guid isPermaLink="false">http://www.flexdev.com.br/home/criando-mockups-com-o-microsoft-sketchflow/</guid>
		<description><![CDATA[TweetTweetMock-up é uma maquete ou um modelo em tamanho real de um projeto. Utilizado para o ensino, demonstração, avaliação de concepção e outras finalidades. Um Mock-up é um protótipo e mostra pelo menos alguma funcionalidade que o projeto real visa ter. O SketchFlow é um recurso da família Microsot Expression Studio Ultimate, que lhe da [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.flexdev.com.br/home/criando-mockups-com-o-microsoft-sketchflow/&via=flexdevbr&text=Criando Mockups com o Microsoft SketchFlow&related=FlexDev:FlexDev&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.flexdev.com.br/home/criando-mockups-com-o-microsoft-sketchflow/&via=flexdevbr&text=Criando Mockups com o Microsoft SketchFlow&related=FlexDev:FlexDev&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><p><strong>Mock-up</strong> é uma maquete ou um modelo em tamanho real de um projeto. Utilizado para o ensino, demonstração, avaliação de concepção e outras finalidades. Um <strong>Mock-up</strong> é um protótipo e mostra pelo menos alguma funcionalidade que o projeto real visa ter.</p>
<p>O <strong>SketchFlow</strong> é um recurso da família <strong>Microsot Expression Studio Ultimate</strong>, que lhe da a capacidade, rapidez e eficácia de mapear o fluxo de uma aplicação de interface com o usuário através de layout de telas permitindo a transição de um estado para outro. Esta habilidade permite explorar e testar várias idéias sem investir grandes quantidades de tempo, mostrando ao seus clientes que você é capaz de encontrar a solução certa para eles.</p>
<p>Com o <strong>SketchFlow </strong>os clientes podem testar diversos cenários e fornecer um feedback para a equipe de desenvolvimento, através de comentários, anotando a sua experiência enquanto navegam pelo protótipo.</p>
<p><strong>Então vamos começar!!!</strong></p>
<p>Um cliente te ligou solicitando a criação de uma tela para a consulta de pedidos de compra feitos no dia que deve mostrar o número de vendas/hora por vendedor. Você logo imaginou o que o cliente queria e iniciou o desenvolvimento do protótipo de tela.</p>
<p>Para isso inicie o <strong>Microsoft Expression Blend 4 + Skecth Flow </strong>e na guia <strong>Projects</strong> escolha <strong>New Project, </strong>e então na tela <strong>New Project</strong> escolha <strong>Silverlight SketchFlow Application </strong>e nomeie o protótipo com o&#160; seguinte nome <strong>PurchaseRequestSample</strong> então click em <strong>OK</strong>, conforme a figura 1 logo abaixo.</p>
<p><strong>Figura 1 – Criando o projeto para o protótipo da tela.</strong></p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image1.png"><img style="border-right-width: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb1.png" width="582" height="534" /></a></p>
<p>Na barra de ferramentas do blend clique em <strong>Assets</strong> (recursos) e então na árvore selecione <strong>SketchFlow –&gt; Styles –&gt; SketchStyles </strong>clique no controle <strong>TitleLeft-Sketch</strong> e então desenhe no topo da página. Com um duplo clique no controle você poderá editar o texto ou então utlizar a barra de propriedades no grupo <strong>Common Properties</strong> propriedade <strong>Text</strong>.</p>
<p><strong>Figura 2 – Selecionando o controle.</strong></p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image2.png"><img style="border-right-width: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb2.png" width="600" height="449" /></a></p>
<p><strong>Figura 3 – Controle desenhado no topo da página.</strong></p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image3.png"><img style="border-right-width: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb3.png" width="600" height="210" /></a></p>
<p><strong>Figura 4 – Barra de propriedades.</strong></p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image4.png"><img style="border-right-width: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb4.png" width="340" height="574" /></a></p>
<p>Existem algumas coisas importantes que você precisa saber ao utilizar o <strong>Expression Blend.</strong></p>
<table border="0" cellspacing="0" cellpadding="2" width="597">
<tbody>
<tr>
<td valign="top" width="39"><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image5.png"><img style="border-right-width: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb5.png" width="42" height="460" /></a>&#160;</td>
<td valign="top" width="556">
<table border="0" cellspacing="0" cellpadding="2" width="509">
<tbody>
<tr>
<td valign="top" width="31"><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image6.png"><img style="border-right-width: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb6.png" width="34" height="38" /></a></td>
<td valign="top" width="476">Utilize essa seta, quando você quiser redimensionar os controles.<br />
<table border="0" cellspacing="0" cellpadding="2" width="407">
<tbody>
<tr>
<td valign="top" width="405">Quando o controle estiver selecionado ele ficará de forma parecida como o da imagem abaixo, mostrando as áreas em que você pode manipular o mouse para redimensionar o controle.<a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image7.png">                            <br /><img style="border-right-width: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb7.png" width="396" height="305" /></a>                           <br />Podemos também manipular as âncoras do controle.                           <br />Quando a âncora está habilitada ela fica dessa forma&#160; <a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image8.png"><img style="border-right-width: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb8.png" width="39" height="39" /></a> e quando desabilitada dessa <a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image9.png"><img style="border-right-width: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb9.png" width="27" height="30" /></a>.                           </p>
<p>Quando habilitada; a medida em que a página for redimensionada o controle também será. Isso depende das configurações de âncora que você definiu, nesse caso o controle é redimensionado quando todas as âncoras estão habilitadas.                           </p>
<p>Para habilitar ou desabilitar as âncoras basta dar um clique em cima dela.</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td valign="top" width="31"><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image10.png"><img style="border-right-width: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb10.png" width="44" height="43" /></a></td>
<td valign="top" width="476">Utilize essa seta, quando você quiser mover os controles.</td>
</tr>
<tr>
<td valign="top" width="31"><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image11.png"><img style="border-right-width: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb11.png" width="39" height="41" /></a></td>
<td valign="top" width="476">Utilize a “Mãozinha” para mover a página dentro do <strong>Expression Blend </strong>sem desorganizar os controles.</td>
</tr>
<tr>
<td valign="top" width="31"><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image12.png"><img style="border-right-width: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb12.png" width="37" height="39" /></a></td>
<td valign="top" width="476">Utilize a Lupa para aumentar o zoom da página. Mantenha a tecla <strong>ALT</strong> pressionada enquanto clica para reduzir o zoom.</td>
</tr>
<tr>
<td valign="top" width="31"><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image13.png"><img style="border-right-width: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb13.png" width="39" height="40" /></a></td>
<td valign="top" width="476">Utilize para inserir textos na página. BasicTextBlock-Sketch para Labels e BasicTextBox-Sketch para caixas de texto.                  </p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image14.png"><img style="border-right-width: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb14.png" width="219" height="123" /></a></td>
</tr>
<tr>
<td valign="top" width="31"><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image15.png"><img style="border-right-width: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb15.png" width="40" height="40" /></a></td>
<td valign="top" width="476">Utilize para inserir controles de usuário como botões, caixas de seleção, etc…                  </p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image16.png"><img style="border-right-width: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb16.png" width="197" height="244" /></a>                   </td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>Agora, vamos criar um subtítulo para a tela, para isso em <strong>Assets –&gt; Sketch Styles </strong>selecione <strong>SubtitleLeft-Sketch</strong> e adicione o controle logo abaixo do título,&#160; então altere o texto para “Vendas hora por vendedor”. Você pode encontrar os controles facilmente fazendo buscas conforme a figura 5.</p>
<p><strong>Figura 5 – Localizando os controles mais facilmente.</strong></p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image17.png"><img style="border-right-width: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb17.png" width="600" height="165" /></a></p>
<p>Mude o tamanho da fonte do controle para 14, através da barra de propriedades conforme a figura&#160; 6.</p>
<p><strong>Figura 6 – Mudando o tamanho da fonte</strong></p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image18.png"><img style="border-right-width: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb18.png" width="442" height="415" /></a></p>
<p>Agora vamos inserir um retangulo abaixo do subtítulo para simular uma caixa de listagem, para isso pesquise em <strong>Assets </strong>por rect para localizar o controle <strong>Rectangle-Sketch. </strong></p>
<p>A sua página deverá ficar como a figura 7 ao executar o protótipo. Para executar o protótipo pressione a tecla F5 ou vá para o menu <strong>Project </strong>e clique na opção<strong> Run Project </strong>.</p>
<p><strong>Figura 7 – Página esperada até o momento.</strong></p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image19.png"><img style="border-right-width: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb19.png" width="600" height="332" /></a></p>
<p>Em algum momento teremos de redimensionar a página que está sendo criada. Uma coisa que você precisa saber é que toda a página ou <strong>UserControl</strong> criado pelo <strong>Expression Blend</strong> por padrão tem um controle <strong>Grid</strong> nomeado de <strong>LayoutRoot </strong>é nele que adicionamos os nossos controles. Através da barra de ferramentas<strong> Objects and Timeline </strong>podemos observar como os nosso controles estão organizados. Veja a figura 8.</p>
<p><strong>Figura 8 – Objects and Timeline</strong></p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image20.png"><img style="border-right-width: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb20.png" width="408" height="498" /></a></p>
<p>Todos os controles que estão no UserControl podem ser observados através dessa barra de ferramenta. Cada controle possui um símbolo de um olho <a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image21.png"><img style="border-right-width: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb21.png" width="26" height="25" /></a>, clique nele para ocultar ou mostrar os controles que estão na página. Você também pode travar os controles evitando que eles se movam acidentalmente, para isso clique ao lado do símbolo do olho para habilitar o cadeado.</p>
<p><strong>Figura 9 – TextBlock Travado.</strong></p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image22.png"><img style="border-right-width: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb22.png" width="335" height="34" /></a></p>
<p>&#160;</p>
<p>O controle <strong>Grid</strong> “LayoutRoot” é redimensionado junto com a página, pois todas as suas âncoras estão habilitadas por padrão. Como queremos aumentar a página devemos clicar em <strong>UserControl</strong> na barra <strong>Objects and Timeline </strong>e então clicar na seta de redimensionamento <a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image23.png"><img style="border-right-width: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb23.png" width="36" height="39" /></a> e redimensionar a página conforme o desejado. </p>
<p>Quando estamos redimensionando a página podemos notar que os controles acompanham o redimensionamento do controle pai. Caso você não queira que eles acompanhem desabilite as âncoras.</p>
<p>Agora vamos inserir alguns retângulos dentro do rentâgulo criado anteriormente e dentro de cada retângulo adicione um controle <strong>BasicTextBlock-Sketch </strong>com o nome do vendedor.</p>
<p><strong>Figura 10 – Selecionando o controle <strong>BasicTextBlock-Sketch </strong></strong></p>
<p><strong><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image24.png"><img style="border-right-width: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb24.png" width="215" height="121" /></a></strong></p>
<p>Deixe o nome dos vendedores em negrito selecionando <strong>B</strong> “Bold” através da barra de propriedades no grupo <strong>Text.</strong></p>
<p><strong>Figura 11</strong></p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image25.png"><img style="border-right-width: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb25.png" width="401" height="138" /></a></p>
<p>&#160;</p>
<p>A página deverá ficar conforme a figura 12.</p>
<p><strong>Figura 12</strong></p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image26.png"><img style="border-right-width: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb26.png" width="600" height="431" /></a></p>
<p>Vamos redimensionar a página e adicionar mais controles até que ela fique da seguinte forma.</p>
<p><strong>Figura 13</strong></p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image27.png"><img style="border-right-width: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb27.png" width="600" height="323" /></a></p>
<p>As setas do lado direito foram desenhas através dos controles<strong> Block Arrow Down Sketch</strong> e <strong>Block Arrow Up Sketch, </strong>elas foram redimensionadas até que ficassem dessa forma. </p>
<p>As cores dos retângulos foram aplicadas através do grupo <strong>Brushes </strong>da barra de propriedades, selecionando <strong>Background</strong> e aplicando a cor desejada.</p>
<p><strong>Figura 14</strong></p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image28.png"><img style="border-right-width: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 0px" border="0" alt="image" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb28.png" width="356" height="402" /></a></p>
<p>Nesse post conhecemos o <strong>SketchFlow</strong> e aprendemos diversos detalhes do <strong>Expression Blend. </strong>Aprendemos como adicionar controles a página, redimensioná-los e alterar suas propriedades. </p>
<p>No próximo post adicionaremos fluxos de navegação a esse protótipo, e será demonstrado como o cliente pode fornecer um feedback para a equipe de desenvolvimento.</p>
<p>Veja o protótipo desse post clicando <a href="http://flexdev.com.br/rodrigo/purchaserequestsample/">aqui</a> ou um mais completo <a href="http://flexdev.com.br/rodrigo/clinicaleditor/">aqui</a>. </p>
<p>Continue acompanhando novidades através do blog da <strong>FlexDev </strong>e do meu <a href="http://rodrigobrito.wordpress.com/">blog</a> no wordpress, até o próximo artigo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexdev.com.br/home/criando-mockups-com-o-microsoft-sketchflow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Esferas 3D no Photoshop</title>
		<link>http://www.flexdev.com.br/home/esferas-3d-no-photoshop-2/</link>
		<comments>http://www.flexdev.com.br/home/esferas-3d-no-photoshop-2/#comments</comments>
		<pubDate>Thu, 19 May 2011 16:29:41 +0000</pubDate>
		<dc:creator>Katriny</dc:creator>
				<category><![CDATA[Diversos]]></category>

		<guid isPermaLink="false">http://www.flexdev.com.br/home/?p=298</guid>
		<description><![CDATA[TweetTweetOlá meu nome é Katriny e hoje iremos aprender como se fazer uma esfera 3D no Photoshop CS5 Para começarmos, abra seu photoshop e pressiona as teclas: Ctrl + N para criarmos uma novo documento Mude as propriedades conforme a imagem mostrada e clique em “Ok”. 1º Passo: Pressione as teclas: Ctrl+Shift+Alt+N e escolha a opção [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.flexdev.com.br/home/esferas-3d-no-photoshop-2/&via=flexdevbr&text=Esferas 3D no Photoshop&related=FlexDev:FlexDev&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.flexdev.com.br/home/esferas-3d-no-photoshop-2/&via=flexdevbr&text=Esferas 3D no Photoshop&related=FlexDev:FlexDev&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><p>Olá meu nome é <a href="http://www.tecnoria.com.br" target="_blank">Katriny</a> e hoje iremos aprender como se fazer uma esfera 3D no Photoshop CS5</p>
<p>Para começarmos, abra seu photoshop e pressiona as teclas: Ctrl + N para criarmos uma novo documento</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image.png"><img style="border-width: 0px" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/image_thumb.png" border="0" alt="image" width="462" height="348" /></a></p>
<p>Mude as propriedades conforme a imagem mostrada e clique em “Ok”.</p>
<p>1º Passo: Pressione as teclas: Ctrl+Shift+Alt+N e escolha a opção cor, conforme a imagem indica:</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/foto2.jpg"><img style="border-width: 0px" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/foto2_thumb.jpg" border="0" alt="foto2" width="562" height="162" /></a></p>
<p>Clique sobre a opção: Set the text color e mude a cor para #000cff, dessa forma:</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/foto3.jpg"><img style="border-width: 0px" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/foto3_thumb.jpg" border="0" alt="foto3" width="427" height="293" /></a></p>
<p>2º Passo: Pressione a tecla G de seu teclado e clique na opção: Gradiente Tool e selecione Paint Bucket Tool, depois clique sobre o documento, assim preenchemos com a cor que selecionamos.</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/foto4.png"><img style="border-width: 0px" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/foto4_thumb.png" border="0" alt="foto4" width="284" height="358" /></a></p>
<p>3º Passo: Pressionamos novamente as teclas: Ctrl+Shift+Alt+N para criamos uma nova Layer.</p>
<p>4º Passo: Pressione a tecla M do seu teclado e escolhendo a opção: Rectangular Marquee Tool</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/foto5.png"><img style="border-width: 0px" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/foto5_thumb.png" border="0" alt="foto5" width="285" height="279" /></a></p>
<p>5º Passo: Na barra de ferramentas clique no icone: Add to Selection</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/foto6.png"><img style="border-width: 0px" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/foto6_thumb.png" border="0" alt="foto6" width="374" height="188" /></a></p>
<p>6º Passo: Crie três seleções</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/foto7.png"><img style="border-width: 0px" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/foto7_thumb.png" border="0" alt="foto7" width="430" height="251" /></a></p>
<p>7º Passo: Na barra de ferramentas, clique na opção: Edit –&gt; Fill, e mude para as propriedades conforme a imagem e clique em “Ok”</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/foto8.png"><img style="border-width: 0px" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/foto8_thumb.png" border="0" alt="foto8" width="320" height="253" /></a></p>
<p>8º Passo: Pressione a tecla Shift e clique sobre o segundo Layer</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/foto9.png"><img style="border-width: 0px" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/foto9_thumb.png" border="0" alt="foto9" width="203" height="267" /></a></p>
<p>9º Passo: Na barra de ferramentas clique na opção: 3D – New Shape From Layer – Sphere</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/foto10.png"><img style="border-width: 0px" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/foto10_thumb.png" border="0" alt="foto10" width="297" height="234" /></a></p>
<p>No final você terá em sua tela do photoshop essa imagem:</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/foto11.png"><img style="border-width: 0px" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/foto11_thumb.png" border="0" alt="foto11" width="392" height="223" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexdev.com.br/home/esferas-3d-no-photoshop-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Colocar um Efeito de Vidro no texto &#8211; Adobe Fireworks</title>
		<link>http://www.flexdev.com.br/home/colocar-um-efeito-de-vidro-no-texto-adobe-fireworks/</link>
		<comments>http://www.flexdev.com.br/home/colocar-um-efeito-de-vidro-no-texto-adobe-fireworks/#comments</comments>
		<pubDate>Thu, 19 May 2011 12:45:50 +0000</pubDate>
		<dc:creator>Andre</dc:creator>
				<category><![CDATA[Diversos]]></category>

		<guid isPermaLink="false">http://www.flexdev.com.br/home/?p=294</guid>
		<description><![CDATA[TweetTweetOlá, meu nome é André Almeida e hoje vou mostrar como colocar um efeito bem bacana em um texto, pra você que queira, por exemplo, dar um novo “ar” no logo da empresa, ou em um topo de um site. Trata-se de inserir um reflexo na imagem, dando a impressão de algo como se fosse [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.flexdev.com.br/home/colocar-um-efeito-de-vidro-no-texto-adobe-fireworks/&via=flexdevbr&text=Colocar um Efeito de Vidro no texto &ndash; Adobe Fireworks&related=FlexDev:FlexDev&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.flexdev.com.br/home/colocar-um-efeito-de-vidro-no-texto-adobe-fireworks/&via=flexdevbr&text=Colocar um Efeito de Vidro no texto &ndash; Adobe Fireworks&related=FlexDev:FlexDev&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><p>Olá, meu nome é <a href="http://www.tecnoria.com.br" target="_blank">André Almeida</a> e hoje vou mostrar como colocar um efeito bem bacana em um texto, pra você que queira, por exemplo, dar um novo “ar” no logo da empresa, ou em um topo de um site. Trata-se de inserir um reflexo na imagem, dando a impressão de algo como se fosse vidro ou algo parecido.</p>
<p>Com o Adobe Fireworks aberto, vamos criar um <em>New Document</em>, com as dimensões de 500&#215;500 pixels e um fundo transparente:</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/01.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/01_thumb.png" border="0" alt="Criando Novo Documento" width="431" height="351" /></a></p>
<p>&nbsp;</p>
<p>Agora, insira um texto que você queira aplicar o efeito, no exemplo, coloquei “FlexDev”.</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/02.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/02_thumb.png" border="0" alt="02" width="244" height="96" /></a></p>
<p>&nbsp;</p>
<p>Selecione a camada do texto, copie e cole (Ctrl+C / Ctrl+V, ou segure Alt e arraste a imagem) para termos 2 palavras para trabalhar:</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/03.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/03_thumb.png" border="0" alt="Fazendo uma cópia" width="312" height="250" /></a></p>
<p>&nbsp;</p>
<p><strong>Atenção que agora só iremos trabalhar com a ‘cópia’.</strong> Selecione o texto e vá no menu <em>Text –&gt; Convert to Paths</em>, ou Ctrl+Shift+P. Em seguida, vá na opção <em>Modify –&gt; Ungroup</em> (ou Ctrl+Shift+G), para desagrupar o texto:</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/05.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/05_thumb.png" border="0" alt="05" width="244" height="84" /></a></p>
<p>&nbsp;</p>
<p>Vamos aplicar o efeito, para isso, com as letras selecionadas, mudaremos o <em>fill</em> para <em>Gradient –&gt; Linear:</em></p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/04.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border: 0px" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/04_thumb.png" border="0" alt="Aplicando Gradient" width="387" height="297" /></a></p>
<p>Clicamos na caixa de cores ao lado do baldinho, e alteramos as cores do <strong>branco</strong> para o <strong>branco</strong>:</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/06.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border: 0px" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/06_thumb.png" border="0" alt="Do branco para o branco" width="438" height="336" /></a></p>
<p><span style="text-decoration: underline"> </span></p>
<p>No mesmo lugar, mudaremos a opacidade do branco da direita para <strong>0</strong>:</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/07.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border: 0px" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/07_thumb.png" border="0" alt="Mudando a opacidade para 0" width="371" height="291" /></a></p>
<p>Com a <em>Pen Tool</em> (tecla de atalho: ‘<strong>P’</strong>), vamos criar uma forma parecida como da imagem abaixo:</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/08.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/08_thumb.png" border="0" alt="Utilizando a ferramenta Pen Tool" width="328" height="136" /></a></p>
<p>&nbsp;</p>
<p>Com o texto e o objeto que acabamos de criar selecionados, vamos em <em>Modify –&gt; Combine Paths –&gt; Punch</em>:</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/09.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border: 0px" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/09_thumb.png" border="0" alt="Punch" width="493" height="403" /></a></p>
<p>&nbsp;</p>
<p>E finalmente, arrastamos o nosso efeito e colocamos sobre o texto original, ficando assim:</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/10.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border: 0px" src="http://www.flexdev.com.br/home/wp-content/uploads/2011/05/10_thumb.png" border="0" alt="Resultado final" width="244" height="75" /></a></p>
<p>Até a próxima!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexdev.com.br/home/colocar-um-efeito-de-vidro-no-texto-adobe-fireworks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tá na hora de abrir sua própria empresa!</title>
		<link>http://www.flexdev.com.br/home/ta-na-hora-de-abrir-sua-propria-empresa/</link>
		<comments>http://www.flexdev.com.br/home/ta-na-hora-de-abrir-sua-propria-empresa/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 12:01:05 +0000</pubDate>
		<dc:creator>Ebercom</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Carreira]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Diversos]]></category>

		<guid isPermaLink="false">http://www.flexdev.com.br/home/?p=174</guid>
		<description><![CDATA[empresa, negócios]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.flexdev.com.br/home/ta-na-hora-de-abrir-sua-propria-empresa/&via=flexdevbr&text=Tá na hora de abrir sua própria empresa!&related=FlexDev:FlexDev&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.flexdev.com.br/home/ta-na-hora-de-abrir-sua-propria-empresa/&via=flexdevbr&text=Tá na hora de abrir sua própria empresa!&related=FlexDev:FlexDev&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><p>Através de um convite feito pelo meu amigo <a href="http://www.twitter.com/vedovelli">@vedovelli</a> através do seu <a href="http://www.vedovelli.com.br/?p=1299">blog</a>, obrigado pelo convite e parabéns pelo texto, vou expor rapidamente alguns pontos de vista que desenvolvi nesses quase 2 anos de empresa.</p>
<p>Bom vamos lá.</p>
<p>1 &#8211; Motivação para abrir uma empresa é uma coisa importante, se você hoje é empregado deve pensar em abrir a sua se nela enxergar uma oportunidade e não uma fuga, se você acha que abrindo sua empresa vai trabalhar menos e ganhar mais, está enganado, a curto prazo isso é muito difícil.</p>
<p>2 &#8211; Já de início faça a coisa certa e organize-se, comandar uma empresa é como educar um filho se você esperar ele ficar adolescente para lhe ensinar boas maneiras estará perdido, então mesmo que sua equipe seja pequena implemente metodologias de trabalho para que tudo funcione de maneira organizada. Muitas pessoas confundem organização com maneiras de vigiar seu colaborador ou coisas assim, não é disso que estou falando, a organização é em primeiro lugar uma maneira de dar feed back para o próprio colaborador de como está o trabalho dele e o que os clientes querem.</p>
<p>3 &#8211; Não contrate funcionários, faça amigos. Com certeza você vai precisar de ajuda e muita, e é muito melhor você ter amigos trabalhando ao seu lado do que apenas um funcionário, e procure ter a mesma sinceridade que tem com seus amigos com eles, sempre.</p>
<p>4 &#8211; Sócio(s), esse assunto é complicado, eu não tenho hoje nenhum sócio mas acredito ser um mal necessário, quando for a hora certa encontrarei um e contarei a vocês <img src='http://www.flexdev.com.br/home/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>5 &#8211; Financeiro, nesse ponto se você é um profissional que vem da área técnica e não tem nenhuma experiência em administrar uma empresa é melhor procurar ajuda, dinheiro é um recurso complicado de gerenciar no início, eu mesmo posso lhes dizer que no início sofri e ainda sofro de um mal que os empresários iniciantes na sua maioria tem, achar que o que a empresa tem de receita é o salário dele, se você acha isso está com sérios problemas. Recentemente contratamos uma consultoria empresarial que está nos ajudando quanto isso, estamos desenvolvendo planos financeiros, de rh e marketing e eis que vos falo amigo, a coisa é necessária <img src='http://www.flexdev.com.br/home/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>6 &#8211; Não tenha vergonha de pedir ajuda, e se possível pague por ela, assim como comentei no tópico anterior sentimos a necessidade de alguém especializado em administrar negócios e por isso corremos atrás. Se você vai iniciar sua empresa e não tem conhecimento algum de como gerir o negócio, não espere.</p>
<p>7 &#8211; Clientes, essa é a parte boa de uma empresa, ou pelo menos deveria ser. Não sei se vou conseguir expressar o que penso em poucas palavras, mas para mim, você como empresa não está ali para atender clientes mas sim para dar o que for necessário a seus colaboradores para fazer isso, ou seja, são eles que atendem os clientes. Quanto a modelos de contratação e relacionamento com o cliente acredito que exista várias abordagens, mas sempre deixe claro para o cliente que você trabalha no estilo em que ele ganha e você também, tudo é uma parceria e não uma competição.</p>
<p>Bom pessoal se for continuar falando vai faltar tempo e paciência de vocês para continuar lendo, mas o que coloquei acima não são nem dicas nem conselhos mas pontos de vista no quais eu acredito.</p>
<p>Agora para continuar falando sobre o assunto convido uma pessoa que hoje é referência para nós, nosso amigo <a href="http://www.twitter.com/egenial">@carlos</a> da <a href="http://www.egenial.com.br/">E-Genial</a>, uma empresa que é &#8220;Simplesmente notável!&#8221;. Vai la Carlinhos.</p>
<p>Grande abraço a todos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexdev.com.br/home/ta-na-hora-de-abrir-sua-propria-empresa/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Manifesto Flex For Kids</title>
		<link>http://www.flexdev.com.br/home/manifesto-flex-for-kids/</link>
		<comments>http://www.flexdev.com.br/home/manifesto-flex-for-kids/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 17:54:37 +0000</pubDate>
		<dc:creator>Ebercom</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Diversos]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Flex For Kids]]></category>

		<guid isPermaLink="false">http://www.flexdev.com.br/home/manifesto-flex-for-kids/</guid>
		<description><![CDATA[TweetTweet Durante anos estivemos dedicados ao desenvolvimento de Aplicações Ricas. Durante anos estivemos dedicados a tecnologias como o Adobe Flex, BlazeDS, LiveCycle Data Services, Zend AMF, AMF PHP, Adobe Flash Professional, Flash Media Server, etc. Mas, principalmente, durante anos estivemos dedicados a compartilhar o nosso conhecimento com a comunidade. Na Flex Brasil , na FlexDev [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.flexdev.com.br/home/manifesto-flex-for-kids/&via=flexdevbr&text=Manifesto Flex For Kids&related=FlexDev:FlexDev&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.flexdev.com.br/home/manifesto-flex-for-kids/&via=flexdevbr&text=Manifesto Flex For Kids&related=FlexDev:FlexDev&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><p><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="SDC12008-238x300" border="0" alt="SDC12008-238x300" align="left" src="http://www.flexdev.com.br/home/wp-content/uploads/2010/01/SDC12008238x300.jpg" width="194" height="244" /> Durante anos estivemos dedicados ao desenvolvimento de Aplicações Ricas. Durante anos estivemos dedicados a tecnologias como o Adobe Flex, BlazeDS, LiveCycle Data Services, Zend AMF, AMF PHP, Adobe Flash Professional, Flash Media Server, etc. Mas, principalmente, durante anos estivemos dedicados a compartilhar o nosso conhecimento com a comunidade. <a href="http://br.groups.yahoo.com/group/flex-brasil">Na Flex Brasil</a> , na <a href="http://groups.google.com.br/group/flexdev">FlexDev</a> e em nossos blogs é provável que você já tenha encontrado algo que procura. E nunca pedimos nada em troca.</p>
<p>O que nos move não é nada material, mas sim a paixão pelo que fazemos e a convicção de que ao nos doar um pouco para a comunidade estamos ajudando e evoluindo conseqüentemente. Por estes mesmos motivos, estaremos todos reunidos dia 06 de fevereiro de 2010.</p>
<p>Temos muitas coisas que amamos para compartilhar com vocês. Porém, desta vez, queremos algo em troca. Algo que com certeza não lhe fará falta, mas que fará a diferença na vida <a href="http://www.cotolengo.com.br/">das crianças do Cotolengo</a> . Ganham vocês. Ganhamos nós. E, principalmente, ganham <a href="http://www.cotolengo.com.br/">as crianças do Cotolengo</a>.</p>
<p><strong>Assinam o Manifesto: </strong>    <br /><a href="http://www.becklog.org/">Beck Novaes</a><a>, </a><a href="http://blog.egenial.com.br/">Carlos Eduardo, </a><a href="http://blog.areacriacoes.com.br/">Daniel Lopes</a>, <a href="http://www.flexdev.com.br/site/">Ebertom Consolim</a>, <a href="https://twitter.com/ericoc">Eric Cavalcanti</a>, <a href="http://vedovelli.com.br/">Fabio Vedovelli</a>, <a href="http://www.gabriela.trindade.com.br/">Gabriela Perry</a>, <a href="http://www.igorcosta.com/blog">Igor Costa</a>, <a href="http://www.igormusardo.com.br/">Igor Musardo</a>, <a href="http://blog.mariojunior.com/">Mario Junior</a> e <a href="http://twitter.com/macieljr">Vicente Maciel Junior</a>.</p>
<p><a href="http://www.flexforkids.com/inscriptions"><strong>Registre-se agora no Flex for Kids</strong></a> e <a href="http://www.cotolengo.com.br/">ajude as crianças do Cotolengo</a> . Porque alguém, já ajudou você um dia (e de quebra assista palestras que estão sendo preparadas com a mesma paixão de sempre).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexdev.com.br/home/manifesto-flex-for-kids/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex For Kids 2010</title>
		<link>http://www.flexdev.com.br/home/flex-for-kids-2010/</link>
		<comments>http://www.flexdev.com.br/home/flex-for-kids-2010/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 13:03:02 +0000</pubDate>
		<dc:creator>Ebercom</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Diversos]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Palestra Online]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Flex For Kids]]></category>
		<category><![CDATA[Palestra]]></category>

		<guid isPermaLink="false">http://www.flexdev.com.br/home/flex-for-kids-2010/</guid>
		<description><![CDATA[TweetTweet “O Flex for Kids é uma maratona de palestras on-line que será realizado no dia 06/02/2010 e contará com grandes nomes da comunidade Adobe Flex brasileira.” “Todo dinheiro arrecadado será doado ao Cotolengo de Mato Grosso do Sul. Para conhecer a Cotolengo clique aqui.” Fica aqui o convite para você também fazer parte dessa [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.flexdev.com.br/home/flex-for-kids-2010/&via=flexdevbr&text=Flex For Kids 2010&related=FlexDev:FlexDev&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.flexdev.com.br/home/flex-for-kids-2010/&via=flexdevbr&text=Flex For Kids 2010&related=FlexDev:FlexDev&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><p><a href="http://www.flexforkids.com" target="_blank"><img title="Flex for Kids" alt="Flex for Kids" src="http://www.flexforkids.com/images/flex_for_kids_728x90.jpg" /></a></p>
<p>“O Flex for Kids é uma maratona de palestras on-line que será realizado no dia 06/02/2010 e contará com grandes nomes da comunidade Adobe Flex brasileira.”</p>
<p>“Todo dinheiro arrecadado será doado ao Cotolengo de Mato Grosso do Sul. Para conhecer a Cotolengo <a href="http://www.flexforkids.com/site/favored" target="_blank">clique aqui</a>.”</p>
<p>Fica aqui o convite para você também fazer parte dessa iniciativa muito legal. Estarei palestrando.</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2009/12/palestra.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="palestra" border="0" alt="palestra" src="http://www.flexdev.com.br/home/wp-content/uploads/2009/12/palestra_thumb.png" width="585" height="412" /></a> </p>
<p>Para maiores detalhes sobre o evento e fazer sua inscrição clique <a href="http://www.flexforkids.com/" target="_blank">aqui</a>.</p>
<p>Abraço a todos e até lá.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexdev.com.br/home/flex-for-kids-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex Mania &#8211; Participe</title>
		<link>http://www.flexdev.com.br/home/flex-mania-participe/</link>
		<comments>http://www.flexdev.com.br/home/flex-mania-participe/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 18:27:40 +0000</pubDate>
		<dc:creator>Ebercom</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Diversos]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Flex Mania; Evento; Palestra]]></category>

		<guid isPermaLink="false">http://www.flexdev.com.br/home/flex-mania-participe/</guid>
		<description><![CDATA[TweetTweet Flex Mania é um evento que será realizado totalmente on-line, onde vários palestrantes vão falar dos mais variados assuntos sobre desenvolvimento web e design. Participe.]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.flexdev.com.br/home/flex-mania-participe/&via=flexdevbr&text=Flex Mania - Participe&related=FlexDev:FlexDev&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.flexdev.com.br/home/flex-mania-participe/&via=flexdevbr&text=Flex Mania - Participe&related=FlexDev:FlexDev&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><p><a href="http://www.flexmania.com.br"><img title="banner" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="292" alt="banner" src="http://www.flexdev.com.br/home/imagens/FlexManiaParticipe_D963/banner.jpg" width="689" border="0" /></a> </p>
<p>Flex Mania é um evento que será realizado totalmente on-line, onde vários palestrantes vão falar dos mais variados assuntos sobre desenvolvimento web e design.</p>
<p><a href="http://www.flexmania.com.br/participar.html" target="_blank"><img title="inscreva-se" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="43" alt="inscreva-se" src="http://www.flexdev.com.br/home/imagens/FlexManiaParticipe_D963/inscrevase.png" width="141" border="0" /></a> <a href="http://www.flexmania.com.br/palestrantes.html" target="_blank"><img title="palestrantes" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="43" alt="palestrantes" src="http://www.flexdev.com.br/home/imagens/FlexManiaParticipe_D963/palestrantes.png" width="141" border="0" /></a> <a href="http://www.flexmania.com.br/calendario.html" target="_blank"><img title="calendario" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="43" alt="calendario" src="http://www.flexdev.com.br/home/imagens/FlexManiaParticipe_D963/calendario.png" width="141" border="0" /></a> </p>
<p>Participe.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexdev.com.br/home/flex-mania-participe/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Aguardem&#8230;</title>
		<link>http://www.flexdev.com.br/home/aguardem/</link>
		<comments>http://www.flexdev.com.br/home/aguardem/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 03:15:16 +0000</pubDate>
		<dc:creator>Ebercom</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Diversos]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Palestra Online]]></category>

		<guid isPermaLink="false">http://www.flexdev.com.br/home/aguardem/</guid>
		<description><![CDATA[TweetTweetVoc&#234; acha que a comunidade Flex est&#225; &#34;meio parada&#34; &#250;ltimamente. Ent&#227;o se preparem&#8230; Mais informa&#231;&#245;es em breve&#8230;.]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.flexdev.com.br/home/aguardem/&via=flexdevbr&text=Aguardem...&related=FlexDev:FlexDev&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.flexdev.com.br/home/aguardem/&via=flexdevbr&text=Aguardem...&related=FlexDev:FlexDev&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><p>Voc&#234; acha que a comunidade Flex est&#225; &quot;meio parada&quot; &#250;ltimamente. Ent&#227;o se preparem&#8230;</p>
<p><a href="http://www.flexdev.com.br/home/wp-content/uploads/2009/06/wait.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="402" alt="wait" src="http://www.flexdev.com.br/home/wp-content/uploads/2009/06/wait-thumb.jpg" width="662" border="0" /></a> </p>
<p> Mais informa&#231;&#245;es em breve&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexdev.com.br/home/aguardem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

