<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Rodrigo da Silva Brito</title>
	<atom:link href="http://rodrigobrito.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://rodrigobrito.wordpress.com</link>
	<description>C#, XAML, WCF, WPF, Silverlight, NHibernate, Software Architecture, Patterns and Practices</description>
	<lastBuildDate>Sat, 28 May 2011 00:08:05 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='rodrigobrito.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/6fb53840a131108ebfd1dd76b2d0b772?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Rodrigo da Silva Brito</title>
		<link>http://rodrigobrito.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://rodrigobrito.wordpress.com/osd.xml" title="Rodrigo da Silva Brito" />
	<atom:link rel='hub' href='http://rodrigobrito.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Criando Mockups com o Microsoft SketchFlow</title>
		<link>http://rodrigobrito.wordpress.com/2011/05/27/criando-mockups-com-o-microsoft-sketchflow/</link>
		<comments>http://rodrigobrito.wordpress.com/2011/05/27/criando-mockups-com-o-microsoft-sketchflow/#comments</comments>
		<pubDate>Fri, 27 May 2011 21:32:10 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[Sem-categoria]]></category>

		<guid isPermaLink="false">https://rodrigobrito.wordpress.com/2011/05/27/criando-mockups-com-o-microsoft-sketchflow/</guid>
		<description><![CDATA[Mock-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 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rodrigobrito.wordpress.com&amp;blog=1462944&amp;post=162&amp;subd=rodrigobrito&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<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://rodrigobrito.files.wordpress.com/2011/05/image.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb.png?w=582&#038;h=534" 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://rodrigobrito.files.wordpress.com/2011/05/image1.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb1.png?w=600&#038;h=449" width="600" height="449" /></a></p>
<p><strong>Figura 3 – Controle desenhado no topo da página.</strong></p>
<p><a href="http://rodrigobrito.files.wordpress.com/2011/05/image2.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb2.png?w=600&#038;h=210" width="600" height="210" /></a></p>
<p><strong>Figura 4 – Barra de propriedades.</strong></p>
<p><a href="http://rodrigobrito.files.wordpress.com/2011/05/image3.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb3.png?w=340&#038;h=574" 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://rodrigobrito.files.wordpress.com/2011/05/image4.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb4.png?w=42&#038;h=460" 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://rodrigobrito.files.wordpress.com/2011/05/image5.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb5.png?w=34&#038;h=38" 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://rodrigobrito.files.wordpress.com/2011/05/image6.png">                            <br /><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb6.png?w=396&#038;h=305" 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://rodrigobrito.files.wordpress.com/2011/05/image7.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb7.png?w=39&#038;h=39" width="39" height="39" /></a> e quando desabilitada dessa <a href="http://rodrigobrito.files.wordpress.com/2011/05/image8.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb8.png?w=27&#038;h=30" 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://rodrigobrito.files.wordpress.com/2011/05/image9.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb9.png?w=44&#038;h=43" 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://rodrigobrito.files.wordpress.com/2011/05/image10.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb10.png?w=39&#038;h=41" 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://rodrigobrito.files.wordpress.com/2011/05/image11.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb11.png?w=37&#038;h=39" 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://rodrigobrito.files.wordpress.com/2011/05/image12.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb12.png?w=39&#038;h=40" 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://rodrigobrito.files.wordpress.com/2011/05/image13.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb13.png?w=219&#038;h=123" width="219" height="123" /></a></td>
</tr>
<tr>
<td valign="top" width="31"><a href="http://rodrigobrito.files.wordpress.com/2011/05/image14.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb14.png?w=40&#038;h=40" 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://rodrigobrito.files.wordpress.com/2011/05/image15.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb15.png?w=197&#038;h=244" 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://rodrigobrito.files.wordpress.com/2011/05/image16.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb16.png?w=600&#038;h=165" 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://rodrigobrito.files.wordpress.com/2011/05/image17.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb17.png?w=442&#038;h=415" 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://rodrigobrito.files.wordpress.com/2011/05/image18.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb18.png?w=600&#038;h=332" 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://rodrigobrito.files.wordpress.com/2011/05/image19.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb19.png?w=408&#038;h=498" 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://rodrigobrito.files.wordpress.com/2011/05/image20.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb20.png?w=26&#038;h=25" 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://rodrigobrito.files.wordpress.com/2011/05/image21.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb21.png?w=335&#038;h=34" 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://rodrigobrito.files.wordpress.com/2011/05/image22.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb22.png?w=36&#038;h=39" 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://rodrigobrito.files.wordpress.com/2011/05/image23.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb23.png?w=215&#038;h=121" 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://rodrigobrito.files.wordpress.com/2011/05/image24.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb24.png?w=401&#038;h=138" 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://rodrigobrito.files.wordpress.com/2011/05/image25.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb25.png?w=600&#038;h=431" 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://rodrigobrito.files.wordpress.com/2011/05/image26.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb26.png?w=600&#038;h=323" 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://rodrigobrito.files.wordpress.com/2011/05/image27.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb27.png?w=356&#038;h=402" 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><a href="http://www.flexdev.com.br/home/">FlexDev</a>.</strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rodrigobrito.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rodrigobrito.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rodrigobrito.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rodrigobrito.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rodrigobrito.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rodrigobrito.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rodrigobrito.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rodrigobrito.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rodrigobrito.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rodrigobrito.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rodrigobrito.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rodrigobrito.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rodrigobrito.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rodrigobrito.wordpress.com/162/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rodrigobrito.wordpress.com&amp;blog=1462944&amp;post=162&amp;subd=rodrigobrito&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rodrigobrito.wordpress.com/2011/05/27/criando-mockups-com-o-microsoft-sketchflow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6fefb602d68afc94df75a8aa8b573838?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">Rodrigo</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb6.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb7.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb8.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb9.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb10.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb11.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb12.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb13.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb14.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb15.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb16.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb17.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb18.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb19.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb20.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb21.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb22.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb23.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb24.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb25.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb26.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/05/image_thumb27.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Visual Studio 2010 WallPapers</title>
		<link>http://rodrigobrito.wordpress.com/2011/03/09/visual-studio-2010-wallpapers/</link>
		<comments>http://rodrigobrito.wordpress.com/2011/03/09/visual-studio-2010-wallpapers/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 02:04:41 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[Sem-categoria]]></category>

		<guid isPermaLink="false">http://rodrigobrito.wordpress.com/?p=103</guid>
		<description><![CDATA[Diversos papéis de parede do Visual Studio 2010. Muito legal! Clique aqui para fazer o download.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rodrigobrito.wordpress.com&amp;blog=1462944&amp;post=103&amp;subd=rodrigobrito&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Diversos papéis de parede do Visual Studio 2010. Muito legal! Clique <a href="http://cid-d5bf6c318790e76d.skydrive.live.com/redir.aspx?page=play&amp;resid=D5BF6C318790E76D!363">aqui </a>para fazer o download.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rodrigobrito.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rodrigobrito.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rodrigobrito.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rodrigobrito.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rodrigobrito.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rodrigobrito.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rodrigobrito.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rodrigobrito.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rodrigobrito.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rodrigobrito.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rodrigobrito.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rodrigobrito.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rodrigobrito.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rodrigobrito.wordpress.com/103/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rodrigobrito.wordpress.com&amp;blog=1462944&amp;post=103&amp;subd=rodrigobrito&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rodrigobrito.wordpress.com/2011/03/09/visual-studio-2010-wallpapers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>-23.334690 -50.072937</georss:point>
		<geo:lat>-23.334690</geo:lat>
		<geo:long>-50.072937</geo:long>
		<media:content url="http://0.gravatar.com/avatar/6fefb602d68afc94df75a8aa8b573838?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">Rodrigo</media:title>
		</media:content>
	</item>
		<item>
		<title>Colis&#245;es de Nomes</title>
		<link>http://rodrigobrito.wordpress.com/2011/03/09/colises-de-nomes/</link>
		<comments>http://rodrigobrito.wordpress.com/2011/03/09/colises-de-nomes/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 01:23:11 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[Domain Driven Design]]></category>
		<category><![CDATA[Patterns and Practices]]></category>
		<category><![CDATA[PoEAA]]></category>

		<guid isPermaLink="false">https://rodrigobrito.wordpress.com/2011/03/09/colises-de-nomes/</guid>
		<description><![CDATA[A algum tempo atrás, a comunidade J2EE [Alur et al.] estava usando o termo “VO” (Value Object) para significar um “DTO” (Data Transfer Object), o que causou uma tempestade em um copo d&#8217;água na comunidade de padrões. Esta é apenas uma daquelas colisões sobre nomes que acontecem o tempo todo neste negócio. Por volta de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rodrigobrito.wordpress.com&amp;blog=1462944&amp;post=98&amp;subd=rodrigobrito&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A algum tempo atrás, a comunidade J2EE [Alur et al.] estava usando o termo “<strong>VO”</strong> (Value Object) para significar um “<strong>DTO</strong>” (Data Transfer Object), o que causou uma tempestade em um copo d&#8217;água na comunidade de padrões. Esta é apenas uma daquelas colisões sobre nomes que acontecem o tempo todo neste negócio. Por volta de 2004 [Alur et al.] decidiram usar o termo <strong>Transfer Object</strong>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rodrigobrito.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rodrigobrito.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rodrigobrito.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rodrigobrito.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rodrigobrito.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rodrigobrito.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rodrigobrito.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rodrigobrito.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rodrigobrito.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rodrigobrito.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rodrigobrito.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rodrigobrito.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rodrigobrito.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rodrigobrito.wordpress.com/98/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rodrigobrito.wordpress.com&amp;blog=1462944&amp;post=98&amp;subd=rodrigobrito&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rodrigobrito.wordpress.com/2011/03/09/colises-de-nomes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>-23.334690 -50.072937</georss:point>
		<geo:lat>-23.334690</geo:lat>
		<geo:long>-50.072937</geo:long>
		<media:content url="http://0.gravatar.com/avatar/6fefb602d68afc94df75a8aa8b573838?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">Rodrigo</media:title>
		</media:content>
	</item>
		<item>
		<title>Objetos de Valor ou Value Objects famosos VO&#8217;s</title>
		<link>http://rodrigobrito.wordpress.com/2011/03/08/objetos-de-valor-ou-value-objects-famosos-vos/</link>
		<comments>http://rodrigobrito.wordpress.com/2011/03/08/objetos-de-valor-ou-value-objects-famosos-vos/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 21:33:08 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[Domain Driven Design]]></category>

		<guid isPermaLink="false">https://rodrigobrito.wordpress.com/2011/03/08/objetos-de-valor-ou-value-objects-famosos-vos/</guid>
		<description><![CDATA[Um objeto que representa um aspecto descritivo do domínio sem nenhuma identidade conceitual é chamado de OBJETO DE VALOR. OBJETOS DE VALOR são instanciados para representar elementos do design com os quais só nos preocupamos pelo que eles são, e não quem ou quais são. Quando uma criança está desenhando, ela está preocupada com a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rodrigobrito.wordpress.com&amp;blog=1462944&amp;post=86&amp;subd=rodrigobrito&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://rodrigobrito.files.wordpress.com/2011/03/lapis.jpg"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Lapis" border="0" alt="Lapis" src="http://rodrigobrito.files.wordpress.com/2011/03/lapis_thumb.jpg?w=244&#038;h=184" width="244" height="184" /></a></p>
<p>Um objeto que representa um aspecto descritivo do domínio sem nenhuma identidade conceitual é chamado de <strong>OBJETO DE VALOR. OBJETOS DE VALOR </strong>são instanciados para representar elementos do design com os quais só nos preocupamos pelo <em>que</em> eles são, e não <em>quem</em> ou <em>quais</em> são.</p>
<p>Quando uma criança está desenhando, ela está preocupada com a cor do lápis que vai escolher, e pode estar preocupada com a espessura da ponta. Mas se houver dois lápis da mesma cor e de mesmo formato, ela provavelmente não vai se importar em qual deles está utilizando. Se um lápis se perder e for substituído por outro da mesma cor, ela pode recomeçar o seu trabalho sem se preocupar com a troca.</p>
<p>Pergunte a uma criança sobre vários desenhos exibidos em uma escola, e ela rapidamente vai distinguir aqueles que ela fez dos que foram feitos por outros alunos. Os desenhos dos alunos possuem identidades úteis. Mas imagine como seria para uma criança ter que rastrear quais linhas de desenho foram feitas por cada lápis. Desenhar já não seria uma diversão para as crianças.</p>
<p>As cores são um exemplo de <strong>OBJETO DE VALOR,</strong> assim também são as strings e os números. (Você não se importa com qual “4” ou qual “Q” você tem). Esses exemplos básicos são simples, mas <strong>OBJETOS DE VALOR </strong>não são necessariamente simples.</p>
<p>Objetos de valor normalmente são transmitidos como parâmetros em menssagens entre objetos. Eles são freqüentemente transitórios, criados por uma operação e em seguida descartados. Objetos de valor são usados como atributos de <strong>ENTIDADES</strong> (e outros VALORES). <a href="http://rodrigobrito.files.wordpress.com/2011/03/vosample.jpg"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="VoSample" border="0" alt="VoSample" src="http://rodrigobrito.files.wordpress.com/2011/03/vosample_thumb.jpg?w=600&#038;h=205" width="600" height="205" /></a></p>
<p><strong></strong></p>
<p><strong>Figura 1</strong>. A vigência é um atributo do contrato e é um objeto de valor.</p>
<p>Os atributos que formam um <strong>OBJETO DE VALOR</strong> devem formar um todo conceitual. Por exemplo, rua, cidade e código postal não devem ser atributos separados de um objeto Pessoa. Eles fazem parte de um único endereço completo, que torna uma Pessoa mais simples e um <strong>OBJETO DE VALOR</strong> mais coerente.</p>
<p><a href="http://rodrigobrito.files.wordpress.com/2011/03/vo-coerente.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="VO Coerente" border="0" alt="VO Coerente" src="http://rodrigobrito.files.wordpress.com/2011/03/vo-coerente_thumb.png?w=389&#038;h=299" width="389" height="299" /></a></p>
<p><strong>Figura 2.</strong> Um <strong>OBJETO DE VALOR</strong> pode fornecer mais informações sobre uma <strong>ENTIDADE</strong>. Ele deve ser conceitualmente completo.</p>
<p>&#160;</p>
<blockquote><p><font>Endereço é <strong>OBJETO DE VALOR</strong>? Quem está perguntando?</font></p>
<p><font>Em um software para uma empresa de compras via correio, é necessário ter o endereço para a confirmar o cartão de crédito, e para endereçar a encomenda. Mas se um colega que divide o apartamento com uma pessoa também fizer o pedido na mesma empresa, não é importante saber se eles estão na mesma localização. O endereço é um <strong>OBJETO DE VALOR.</strong></font></p>
<p><font>Em um software para os correios, com o intuito de organizar as rotas de entrega, o país poderia ser formado em uma hierarquia de regiões, cidades, regiões postais e quarteirões, terminando no endereço da pessoa. Esses objetos de endereço receberiam seus códigos postais de seus geradores na hierarquia, e se o serviço de correio decidisse redesignar as regiões postais, todos os endereços daquela faixa entrariam no mesmo barco. Aqui o Endereço é ume <strong>ENTIDADE</strong>.</font></p>
<p><font>Em um software para uma empresa prestadora de serviços de eletricidade, um endereço corresponde a um destino para as linhas e serviços da empresa. Se duas pessoas que dividem o mesmo apartamento telefonassem para solicitar um serviço de conserto na parte elétrica, a empresa precisaria perceber isto.&#160; O Endereço é uma <strong>ENTIDADE</strong>. Outra opção é que o modelo poderia associar o serviço da prestadora com uma “residência”, uma ENTIDADE com um atributo endereço. Neste caso o Endereço seria um <strong>OBJETO DE VALOR.</strong></font></p>
</blockquote>
<p>Este post é um esboço sobre Domain Driven Design.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rodrigobrito.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rodrigobrito.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rodrigobrito.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rodrigobrito.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rodrigobrito.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rodrigobrito.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rodrigobrito.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rodrigobrito.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rodrigobrito.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rodrigobrito.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rodrigobrito.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rodrigobrito.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rodrigobrito.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rodrigobrito.wordpress.com/86/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rodrigobrito.wordpress.com&amp;blog=1462944&amp;post=86&amp;subd=rodrigobrito&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rodrigobrito.wordpress.com/2011/03/08/objetos-de-valor-ou-value-objects-famosos-vos/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<georss:point>-23.334690 -50.072937</georss:point>
		<geo:lat>-23.334690</geo:lat>
		<geo:long>-50.072937</geo:long>
		<media:content url="http://0.gravatar.com/avatar/6fefb602d68afc94df75a8aa8b573838?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">Rodrigo</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/03/lapis_thumb.jpg" medium="image">
			<media:title type="html">Lapis</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/03/vosample_thumb.jpg" medium="image">
			<media:title type="html">VoSample</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2011/03/vo-coerente_thumb.png" medium="image">
			<media:title type="html">VO Coerente</media:title>
		</media:content>
	</item>
		<item>
		<title>Inversion of Control And Inversion of Control Container</title>
		<link>http://rodrigobrito.wordpress.com/2011/01/14/inversion-of-control-and-inversion-of-control-container/</link>
		<comments>http://rodrigobrito.wordpress.com/2011/01/14/inversion-of-control-and-inversion-of-control-container/#comments</comments>
		<pubDate>Fri, 14 Jan 2011 18:29:27 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[Patterns and Practices]]></category>

		<guid isPermaLink="false">https://rodrigobrito.wordpress.com/2011/01/14/inversion-of-control-and-inversion-of-control-container/</guid>
		<description><![CDATA[Inversão de Controle é um princípio usado por frameworks como uma forma de permitir os desenvolvedores estenderem ou criarem aplicações. A idéia básica é que o framework conhece os objetos do programador e faz chamadas sobre eles. Este é o oposto de usar uma API, onde o código do desenvolvedor faz chamadas ao código da [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rodrigobrito.wordpress.com&amp;blog=1462944&amp;post=79&amp;subd=rodrigobrito&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Inversão de Controle</strong> é um princípio usado por frameworks como uma forma de permitir os desenvolvedores estenderem ou criarem aplicações. A idéia básica é que o framework conhece os objetos do programador e faz chamadas sobre eles. Este é o oposto de usar uma API, onde o código do desenvolvedor faz chamadas ao código da API. Assim os frameworks invertem o controle, eles fazem chamadas aos objetos do programador com base em alguns estímulos. O padrão <a href="http://en.wikipedia.org/wiki/Template_method_pattern">Template Method</a> “Não me ligue eu ligo para você” funciona desta maneira.</p>
<p><strong>Inversion of Control Container </strong>Possibilita a criação e destruição dos objetos, fornecendo&#160; todas as dependências e configurações exigidas por uma classe. Desta maneira não é preciso obter e configurar as classes da qual uma classe depende. Isso reduz drasticamente o acoplamento de um sistema e como consequência facilita a reutilização e a testabilidade.</p>
<p>Existe uma confusão criada por pessoas que pensam que &quot;Inversão de Controle&quot;é um sinônimo de &quot;Inversão de Controle de Contêineres. Como foi dito, Inversão de controle é um princípio mais amplo.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rodrigobrito.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rodrigobrito.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rodrigobrito.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rodrigobrito.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rodrigobrito.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rodrigobrito.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rodrigobrito.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rodrigobrito.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rodrigobrito.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rodrigobrito.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rodrigobrito.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rodrigobrito.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rodrigobrito.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rodrigobrito.wordpress.com/79/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rodrigobrito.wordpress.com&amp;blog=1462944&amp;post=79&amp;subd=rodrigobrito&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rodrigobrito.wordpress.com/2011/01/14/inversion-of-control-and-inversion-of-control-container/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>-23.334690 -50.072937</georss:point>
		<geo:lat>-23.334690</geo:lat>
		<geo:long>-50.072937</geo:long>
		<media:content url="http://0.gravatar.com/avatar/6fefb602d68afc94df75a8aa8b573838?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">Rodrigo</media:title>
		</media:content>
	</item>
		<item>
		<title>Falando de Desempenho</title>
		<link>http://rodrigobrito.wordpress.com/2010/10/11/falando-de-desempenho/</link>
		<comments>http://rodrigobrito.wordpress.com/2010/10/11/falando-de-desempenho/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 13:06:47 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[Patterns and Practices]]></category>
		<category><![CDATA[PoEAA]]></category>
		<category><![CDATA[Fowler]]></category>

		<guid isPermaLink="false">https://rodrigobrito.wordpress.com/2010/10/11/falando-de-desempenho/</guid>
		<description><![CDATA[Esses dias lendo o livro do Fowler (PoEAA), ele comenta um pouco sobre desempenho e como muitos dos termos de desempenho são usados de forma inconsistente. Para melhorar a comunicação de equipes de desenvolvimento de software resolvi publicar alguns termos e seus respectivos significados. Tempo de Resposta É a quantidade de tempo que o sistema [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rodrigobrito.wordpress.com&amp;blog=1462944&amp;post=75&amp;subd=rodrigobrito&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Esses dias lendo o livro do Fowler (PoEAA), ele comenta um pouco sobre desempenho e como muitos dos termos de desempenho são usados de forma inconsistente. Para melhorar a comunicação de equipes de desenvolvimento de software resolvi publicar alguns termos e seus respectivos significados.</p>
<ol>
<li><b>Tempo de Resposta</b><br />
<blockquote>
<p>É a quantidade de tempo que o sistema leva para processar uma solicitação externa. Pode ser uma ação na interface com o usuário, como o pressionamento de um botão, ou uma chamada de API do servidor.</p>
</blockquote>
</li>
<li><b>Agilidade de Resposta</b><br />
<blockquote>
<p>A agilidade de resposta diz respeito ao quão rapidamente o sistema reconhece uma solicitação (em oposição ao tempo que leva para processá-la). Isso é importante em muitos sistemas porque os usuários podem ficar frustrados se um sistema demorar para responder a uma solicitação, ainda que seu tempo de resposta seja bom. Se o seu sistema esperar durante toda uma solicitação, então sua agilidade de resposta e o seu tempo de resposta são os mesmos. Entretanto se você indicar que recebeu a solicitação antes de completá-la, então sua agilidade de resposta é melhor. </p>
</blockquote>
</li>
<li><b>Latência</b><br />
<blockquote>
<p>É o tempo mínimo requerido para obter qualquer forma de resposta, mesmo se não houver nenhum trabalho a fazer. Se eu pedir a um programa para não fazer nada, então devo receber uma resposta quase instantânea se o programa rodar na minha máquina local. Entretanto, se o programa rodar em um computador remoto, pode demorar alguns segundos devido ao tempo gasto para que a solicitação e a resposta cheguem a seu destino através da conexão. Como desenvolvedor de aplicações, geralmente, nada posso fazer para melhorar a latência. A latência é o motivo pelo qual devemos minimizar chamadas remotas.</p>
</blockquote>
</li>
<li><b>Throughput</b><br />
<blockquote>
<p>É a quantidade de coisas que você pode fazer em uma dada quantidade de tempo. Se você estiver contabilizando o tempo gasto na cópia de um arquivo, o throughput poderia ser medido em bytes por segundo. Para aplicações corporativas, ume medida típica é o número de transações por segundo (tps), mas o problema é que isso depende da complexidade da sua transação. </p>
<p>Nesta terminologia, <b>desempenho </b>pode significar tanto throughput quanto tempo de resposta – o que for mais importante para você. Às vezes, pode ser difícil falar sobre desempenho quando uma técnica melhora o throughput, mas piora o tempo de resposta. Assim é melhor usar o termo mais preciso. Da perspectiva de um usuário a agilidade de resposta em detrimento do tempo de resposta ou do throughput aumentará o desempenho.</p>
</blockquote>
</li>
<li><b>Carga</b><br />
<blockquote>
<p>A carga é uma medida da pressão a que o sistema está submetido, que poderia ser medida pelo número de usuários a ele conectados em um determinado instante de tempo. A carga é geralmente um contexto para alguma outra medida, como um tempo de resposta. Assim, você pode dizer que o tempo de resposta para alguma solicitação é de 0,5 segundo com 10 usuários e de 2 segundos com 20 usuários.<b></b></p>
</blockquote>
</li>
<li><b>Sensibilidade de carga</b><br />
<blockquote>
<p>É uma medida de como o tempo de resposta varia com a carga. Digamos que o sistema A tenha um tempo de resposta de 0,5 segundo para um número de usuários entre 10 e 20, e o sistema B tenha um tempo de resposta de 0,2 segundo para 10 usuários que aumenta para 2 segundos com 20 usuários. Neste caso o sistema A tem uma sensibilidade de carga menor do que o sistema B. </p>
</blockquote>
</li>
<li><b>Eficiência</b><br />
<blockquote>
<p>A eficiência é o desempenho dividido pelos recursos. Um sistema que obtenha 30 tps com duas CPUs é mais eficiente que uma que obtenha 40 tps com quatro CPUs idênticas.</p>
</blockquote>
</li>
<li><b>Capacidade</b><br />
<blockquote>
<p>A capacidade de um sistema é uma indicação do máximo throughput efetivo ou máxima carga efetiva. Este poderia ser um máximo absoluto ou um ponto a partir do qual o desempenho caia abaixo de um limite aceitável.</p>
</blockquote>
</li>
<li><b>Escalabilidade</b> </li>
</ol>
<blockquote><ol>
<p>A escalabilidade é ume medida de como o acréscimo de recursos (normalmente hardware) afeta o desempenho. Um sistema escalável é aquele que lhe permite adicionar hardware e obter uma melhora de desempenho proporcional, como dobrar o número de servidores disponíveis para dobrar o throughput. A <b>escalabilidade vertical</b>, ou <b>escalar para cima, </b>significa adicionar mais poder a um único servidor (por exemplo, acrescentar memória). A <b>escalabilidade horizontal</b>, ou <b>escalar para fora</b>, significa adicionar mais servidores. </p>
<p> O problema aqui é que as decisões de projeto não afetam todos esses fatores de desempenho de forma igual. Digamos que temos dois sistemas de software rodando em um servidor: a capacidade do Peixe-Espada é de 20 tps, enquanto a do Camelo é de 40 tps. Qual dos dois tem melhor desempenho? Qual é mais escalável? Não podemos responder a questão de escalabilidade com estes dados, e a única coisa que podemos dizer é que o Camelo é mais eficiente em um único servidor. Se adicionarmos outro servidor, percebemos que o Peixe-Espada agora trata 35 tps, e o camelo 50 tps. A capacidade do Camelo ainda é melhor, mas parece que o Peixe-Espada pode ter melhor escalabilidade. Se continuarmos adicionando servidores, descobriremos que o Peixe-Espada obtém 15 tps por servidor adicional e que o Camelo obtém 10. Com esses dados, podemos dizer que o Peixe-Espada tem uma melhor escalabilidade horizontal, ainda que o Camelo seja mais eficiente com menos de cinco servidores.</ol>
<p>Os projetistas muitas vezes fazem coisas complicadas que aumentam a capacidade de uma plataforma específica de hardware quando, em verdade, poderia ser mais barato comprar mais hardwares. Se o Camelo tem um custo maior do que o Peixe-Espada, e esse custo maior é equivalente a um par de servidores, então o Peixe-Espada acaba sendo mais barato, mesmo se você precisar de apenas 40 tps. Está na moda reclamar por ter que depender de hardware melhor para fazer o nosso software rodar apropriadamente. No entanto, adquirir hardware mais novo é com freqüência mais barato do que fazer o software rodar em sistemas menos poderosos. De forma semelhante, adicionar mais servidores é freqüentemente mais barato do que adicionar mais programadores – desde que o sistema seja escalável.</p>
</blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rodrigobrito.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rodrigobrito.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rodrigobrito.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rodrigobrito.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rodrigobrito.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rodrigobrito.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rodrigobrito.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rodrigobrito.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rodrigobrito.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rodrigobrito.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rodrigobrito.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rodrigobrito.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rodrigobrito.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rodrigobrito.wordpress.com/75/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rodrigobrito.wordpress.com&amp;blog=1462944&amp;post=75&amp;subd=rodrigobrito&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rodrigobrito.wordpress.com/2010/10/11/falando-de-desempenho/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>-23.334690 -50.072937</georss:point>
		<geo:lat>-23.334690</geo:lat>
		<geo:long>-50.072937</geo:long>
		<media:content url="http://0.gravatar.com/avatar/6fefb602d68afc94df75a8aa8b573838?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">Rodrigo</media:title>
		</media:content>
	</item>
		<item>
		<title>O que é o Silverlight</title>
		<link>http://rodrigobrito.wordpress.com/2010/07/22/o-que-o-silverlight/</link>
		<comments>http://rodrigobrito.wordpress.com/2010/07/22/o-que-o-silverlight/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 20:15:19 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Samples]]></category>

		<guid isPermaLink="false">https://rodrigobrito.wordpress.com/2010/07/22/o-que-o-silverlight/</guid>
		<description><![CDATA[Silverlight é um plugin multibrowser e multiplataforma para o desenvolvimento de aplicações RIA e para facilitar a integração com media. Ele reuniu as capacidades de aplicações desktop, aplicações web, funcionalidades do servidor e do cliente, desenvolvimento com linguagens scripts ou orientada a objetos. O que devemos ter em mente é que o Silverlight é mais [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rodrigobrito.wordpress.com&amp;blog=1462944&amp;post=64&amp;subd=rodrigobrito&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Silverlight é um plugin multibrowser e multiplataforma para o desenvolvimento de aplicações RIA e para facilitar a integração com media. Ele reuniu as capacidades de aplicações desktop, aplicações web, funcionalidades do servidor e do cliente, desenvolvimento com linguagens scripts ou orientada a objetos. </p>
<p>O que devemos ter em mente é que o Silverlight é mais do que simplesmente um container para executar aplicações ricas e interativas na web. O silverlight é uma plataforma para desenvolvimento de aplicações, cross-plataforma e cross-browser. </p>
<p>No silverlight o conteúdo é declarado utilizando o <a href="http://en.wikipedia.org/wiki/Extensible_Application_Markup_Language" target="_blank">XAML</a>. O <a href="http://en.wikipedia.org/wiki/Extensible_Application_Markup_Language" target="_blank">XAML</a> é um arquivo XML onde é possível declarar elementos visuais da interface, incluindo animações. </p>
<p>O Silverlight contém um subset do .Net Framework que inclui bibliotecas e componentes para integração de dados, networking, controles WPF e CLR (Common Language Runtime). Isso permite que desenvolvamos as nossas aplicações utilizando as linguagens mais comuns em .Net, VB.Net e C#, compiladas.</p>
<p>Não é necessário ter o .Net Framework instalado no cliente ou no servidor. Apenas o plug-in do silverlight é necessário.</p>
<p>Para mais informações sobre Rich Internet Application, veja: <a title="http://en.wikipedia.org/wiki/Rich_Internet_application" href="http://en.wikipedia.org/wiki/Rich_Internet_application">http://en.wikipedia.org/wiki/Rich_Internet_application</a></p>
<p>Exemplos de aplicações em silverlight:</p>
<p><a href="http://memorabilia.hardrock.com/">HARD ROCK – MEMORABILIA</a></p>
<p><a href="http://memorabilia.hardrock.com/"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2010/07/image.png?w=600&#038;h=393" width="600" height="393" /></a></p>
<p>&#160;<a href="http://blogs.zibmak.net/">Calculadora interessante</a>…</p>
<p><a href="http://blogs.zibmak.net/"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2010/07/image1.png?w=489&#038;h=598" width="489" height="598" /></a> </p>
<p>&#160;<a href="http://pjd.mscui.net/default.htm">Microsoft Health</a></p>
<p><a href="http://pjd.mscui.net/default.htm"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2010/07/image2.png?w=600&#038;h=375" width="600" height="375" /></a></p>
<p>&#160;</p>
<p><a href="http://www.iis.net/media/experiencesmoothstreaming">Experience IIS Smooth Streaming</a></p>
<p><a href="http://www.iis.net/media/experiencesmoothstreaming"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2010/07/image3.png?w=600&#038;h=384" width="600" height="384" /></a> </p>
<p>&#160;<a href="http://www.microsoft.com/silverlight/silverlight/demos/oob/default.html">Out of Browser</a></p>
<p><a href="http://www.microsoft.com/silverlight/silverlight/demos/oob/default.html"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://rodrigobrito.files.wordpress.com/2010/07/image4.png?w=600&#038;h=456" width="600" height="456" /></a></p>
<p> Mais exemplos em <a title="http://www.silverlight.net/community/samples/silverlight-samples/" href="http://www.silverlight.net/community/samples/silverlight-samples/">http://www.silverlight.net/community/samples/silverlight-samples/</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rodrigobrito.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rodrigobrito.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rodrigobrito.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rodrigobrito.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rodrigobrito.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rodrigobrito.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rodrigobrito.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rodrigobrito.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rodrigobrito.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rodrigobrito.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rodrigobrito.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rodrigobrito.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rodrigobrito.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rodrigobrito.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rodrigobrito.wordpress.com&amp;blog=1462944&amp;post=64&amp;subd=rodrigobrito&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rodrigobrito.wordpress.com/2010/07/22/o-que-o-silverlight/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6fefb602d68afc94df75a8aa8b573838?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">Rodrigo</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2010/07/image.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2010/07/image1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2010/07/image2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2010/07/image3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2010/07/image4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Alguns problemas decorrentes do desenvolvimento tradicional de software e a solução orientada a objetos. A essência da mudança de paradigma.</title>
		<link>http://rodrigobrito.wordpress.com/2010/07/14/alguns-problemas-decorrentes-do-desenvolvimento-tradicional-de-software-e-a-soluo-orientada-a-objetos-a-essncia-da-mudana-de-paradigma/</link>
		<comments>http://rodrigobrito.wordpress.com/2010/07/14/alguns-problemas-decorrentes-do-desenvolvimento-tradicional-de-software-e-a-soluo-orientada-a-objetos-a-essncia-da-mudana-de-paradigma/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 21:41:09 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[Patterns and Practices]]></category>
		<category><![CDATA[Arquitetura]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Domain]]></category>
		<category><![CDATA[Fowler]]></category>
		<category><![CDATA[GOF]]></category>
		<category><![CDATA[Model]]></category>
		<category><![CDATA[OO]]></category>
		<category><![CDATA[Paradigma]]></category>
		<category><![CDATA[Patterns]]></category>
		<category><![CDATA[PoEAA]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Transaction]]></category>

		<guid isPermaLink="false">https://rodrigobrito.wordpress.com/2010/07/14/alguns-problemas-decorrentes-do-desenvolvimento-tradicional-de-software-e-a-soluo-orientada-a-objetos-a-essncia-da-mudana-de-paradigma/</guid>
		<description><![CDATA[Segundo Fowler (PoEAA), a noção de camadas tornou-se mais visível nos anos 90, com o surgimento dos sistemas cliente-servidores. Estes eram sistemas em duas camadas: O cliente era a interface de usuário com algum código e o servidor era normalmente algum sistema gerenciador de banco de dados relacional. Ferramentas comuns utilizadas para o desenvolvimento do [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rodrigobrito.wordpress.com&amp;blog=1462944&amp;post=55&amp;subd=rodrigobrito&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Segundo Fowler (<a href="http://martinfowler.com/books.html#eaa" target="_blank">PoEAA</a>), a noção de camadas tornou-se mais visível nos anos 90, com o surgimento dos sistemas <strong>cliente-servidores. </strong>Estes eram sistemas em duas camadas: O cliente era a interface de usuário com algum código e o servidor era normalmente algum sistema gerenciador de banco de dados relacional. Ferramentas comuns utilizadas para o desenvolvimento do cliente eram: VB, Powerbuilder e Delphi. Essas ferramentas tornam fácil o desenvolvimento de aplicações que fazem uso intensivo de dados, uma vez que elas disponibilizam componentes visuais que trabalham com SQL. Assim, você pode criar uma tela arrastando controles para um formulário e alterar as suas propriedades para conectar a um banco de dados. </p>
<p>Se a aplicação tem que exibir e fazer atualizações simples nos dados relacionais, então esse sistema cliente-servidor funciona muito bem. Porém o problema surge com a lógica de domínio: regras de negócio, validações, cálculos, etc…. Normalmente as pessoas que trabalham com essa arquitetura escrevem a lógica no cliente, embutindo a lógica diretamente nas telas de interface com o usuário. À medida que a lógica do domínio se torna mais complexa, fica muito mais difícil trabalhar com esse código. </p>
<p>Embutir a lógica nas telas facilita a duplicação de código, o que significa que alterações simples resultam em busca de código semelhante em muitas telas. Este problema pode, em parte, ser tratado fatorando-se o código comum em sub-rotinas, mas mesmo assim, muito da duplicação é complicada de ser removida e mais difícil ainda de ser localizada. A aplicação resultante pode acabar sendo uma teia confusa de sub-rotinas sem uma estrutura clara. Uma alternativa é colocar a lógica de domínio no banco de dados na forma de procedimentos armazenados (Store Procedures). Estes, no entanto fornecem mecanismos limitados de estruturação, o que leva mais uma vez a código confuso. Muitas pessoas gostam de bancos de dados relacionais porque SQL é um padrão, o que lhes permite a qualquer momento mudar de fornecedor de banco de dados. Ainda que poucas pessoas realmente fizessem isso, muitas gostariam de ter a opção de mudar de fornecedor sem que isso implicasse em custo de migração alto demais. Por a maioria dos sistemas gerenciadores de banco de dados ser proprietária os procedimentos armazenados eliminam essa opção. </p>
<p>Ao mesmo tempo em que a arquitetura cliente-servidor estava ganhando popularidade, o mundo orientado a objetos estava ascendendo. <strong>A comunidade orientada a objetos tinha a resposta para o problema da lógica de domínio: </strong>migrar para um sistema de três camadas. Nesta abordagem você tem a camada de apresentação a sua interface com o usuário, uma camada de domínio para a sua lógica de domínio e uma camada de dados. Desta maneira, você pode tirar toda a complexa lógica de domínio da interface com o usuário e colocá-la em uma camada na qual você pode estruturá-la apropriadamente utilizando objetos. Embora a abordagem de três camadas tivesse muitos benefícios, as ferramentas para o desenvolvimento cliente-servidor eram convincentes se o seu problema fosse simples. A verdade é que muitos sistemas eram simples, ou pelo menos começavam simples. Além disso, as ferramentas para o desenvolvimento cliente-servidor eram difíceis, ou mesmo impossíveis, de usar em uma configuração de três camadas.</p>
<p>O abalo sísmico foi o advento da Web. De repente as pessoas passaram a querer instalar aplicações cliente-servidor usando um navegador Web. No entanto, se toda a sua lógica de negócio estivesse enterrada em um cliente rico, então toda ela precisaria ser refeita para ter uma interface Web. Um sistema bem projetado em três camadas, poderia simplesmente acrescentar uma nova camada de apresentação e estaria pronto.</p>
<table border="0" cellspacing="0" cellpadding="2" width="588">
<tbody>
<tr>
<td valign="top" width="200"><strong>Camada</strong></td>
<td valign="top" width="386"><strong>Responsabilidades</strong></td>
</tr>
<tr>
<td valign="top" width="200">Apresentação</td>
<td valign="top" width="386">Fornecimento de serviços, exibição de informações (p. ex., em Windows ou Html, tratamento de solicitações do usuário (cliques com o mouse, pressionamento de teclas), requisições HTTP, chamadas em linhas de comando)</td>
</tr>
<tr>
<td valign="top" width="200">Domínio</td>
<td valign="top" width="386">Lógica do real propósito do sistema</td>
</tr>
<tr>
<td valign="top" width="200">Fonte de Dados</td>
<td valign="top" width="386">Comunicação com os bancos de dados, sistemas de menssagens, etc&#8230;</td>
</tr>
</tbody>
</table>
<p><font size="2"><strong></strong></font></p>
<p><font size="2"><strong></strong></font></p>
<p><font size="2"><strong>&#160;</strong></font></p>
<p><font size="2"><strong>Padrões </strong><a href="http://martinfowler.com/eaaCatalog/transactionScript.html" target="_blank"><strong>Transaction Script</strong></a><strong> e </strong><a href="http://martinfowler.com/eaaCatalog/domainModel.html" target="_blank"><strong>Domain Model</strong></a></font></p>
<p><font size="2">Usar um <a href="http://martinfowler.com/eaaCatalog/domainModel.html" target="_blank">Domain Model</a> em Oposição ao <a href="http://martinfowler.com/eaaCatalog/transactionScript.html" target="_blank">Transaction Script</a> é a essência da mudança de paradigma que as pessoas de orientação a objetos tanto falam.</font></p>
<p>Um <a href="http://martinfowler.com/eaaCatalog/transactionScript.html" target="_blank">Transaction Script</a> é, essencialmente, um procedimento que recebe os dados de entrada da camada de apresentação, efetua o processamento com validações e cálculos, armazena dados no banco de dados e invoca quaisquer operações necessárias em outros sistemas. Talvez ele responda com mais dados para a apresentação, talvez executando mais cálculos para ajudar a formatar a resposta. Assim, podemos pensar nesse padrão como sendo um roteiro para uma ação ou transação de negócio. Ele não tem de ser constituído, necessariamente de um único procedimento. As partes podem ser separadas em sub-rotinas, e estas podem ser compartilhadas por diferentes <a href="http://martinfowler.com/eaaCatalog/transactionScript.html" target="_blank">Transaction Scripts</a>. Entretanto, a motivação ainda é a de um procedimento para cada ação, de modo que um sistema de varejo possa ter <a href="http://martinfowler.com/eaaCatalog/transactionScript.html" target="_blank">Transaction Scripts</a> para a checagem de saída, para acrescentar algo ao carrinho de compras, para mostrar&#160; a situação atual da entrega e assim por diante.</p>
<p>Um <a href="http://martinfowler.com/eaaCatalog/transactionScript.html" target="_blank">Transaction Script</a> oferece diversas vantagens:</p>
<ul>
<li>É um modelo procedural simples que a maioria dos desenvolvedores compreende. </li>
<li>Funciona bem com uma camada de dados simples. </li>
<li>O modo de estabelecer as fronteiras de transação é uma tarefa óbvia: comece abrindo uma transação e termine fechando-a. É fácil para as ferramentas fazer isso por trás dos panos. </li>
</ul>
<ul>Infelizmente existe muitas desvantagens nesse padrão que tendem a aparecer à medida que a complexidade da lógica de domínio aumenta. Freqüentemente haverá&#160; código duplicado, uma vez que diversas transações precisam fazer coisas parecidas. Como eu já havia citado acima, este problema pode, em parte, ser tratado fatorando-se o código comum em sub-rotinas, mas mesmo assim, muito da duplicação é complicada de ser removida e mais difícil ainda de ser localizada. A aplicação resultante pode acabar sendo uma teia confusa de sub-rotinas sem uma estrutura clara.</ul>
<ul>É claro que a lógica complexa é o cenário ideal para os objetos, e a maneira pela qual a orientação a objetos lida com este problema é por meio de um <a href="http://martinfowler.com/eaaCatalog/domainModel.html" target="_blank">Modelo de Domínio (Domain Model)</a>.</ul>
<p>Com um <a href="http://martinfowler.com/eaaCatalog/domainModel.html" target="_blank">Domain Model</a>, construímos um modelo do nosso domínio o qual, pelo menos em uma primeira aproximação, é organizado primariamente em torno dos nomes de domínio. Assim um sistema de vendas teria classes para a venda, produto, cliente, assim por diante. A lógica para lidar com validações e cálculos seria colocada neste modelo de domínio, de modo que um objeto venda poderia teria um método para calcular o total da venda, calculando o total de produtos, custo de entrega, etc…. </p>
<p>Em vez de uma rotina contendo toda a lógica para uma ação de usuário, cada objeto realiza uma parte da lógica que seja relevante para ele. Se você não estiver acostumado com um <a href="http://martinfowler.com/eaaCatalog/domainModel.html" target="_blank">Domain Model</a>, aprender a trabalhar com um pode ser muito frustrante quando você começa a correr de objeto em objeto tentando descobrir em qual está o comportamento.</p>
<p>Os custos de um <a href="http://martinfowler.com/eaaCatalog/domainModel.html" target="_blank">Domain Model</a> decorrem da complexidade de usá-lo e da complexidade da sua camada de dados. Leva tempo para que as pessoas novatas em modelos ricos de objetos se acostumem a um <a href="http://martinfowler.com/eaaCatalog/domainModel.html" target="_blank">Domain Model</a> rico. Os desenvolvedores freqüentemente precisam gastar diversos meses trabalhando em um projeto que usa este padrão antes que seus paradigmas mudem. No entanto, quando você se acostuma a um <a href="http://martinfowler.com/eaaCatalog/domainModel.html" target="_blank">Domain Model</a>, geralmente está contagiado para o resto da vida e torna-se fácil trabalhar com ele no futuro – é assim que fanáticos por objetos são criados. No entanto, uma minoria significativa de desenvolvedores parece não ser capaz de dar o salto.</p>
<p>Mesmo depois de ter dado o salto, você ainda tem que lidar com o mapeamento do banco de dados. Quanto mais rico for o seu <a href="http://martinfowler.com/eaaCatalog/domainModel.html" target="_blank">Domain Model</a>, mais complexo será o mapeamento para um banco de dados relacional. Uma sofisticada camada de dados se aproxima bastante de um custo fixo – obter uma boa camada de dados custa uma quantidade razoável de dinheiro (se você comprar) ou tempo (se você fizer), mas assim que você tiver uma, pode fazer muito com ela.</p>
<p>Quer mais? Leia <a href="http://martinfowler.com/books.html#eaa" target="_blank">Patterns of Enterprise Application Architecture</a> – <a href="http://martinfowler.com/books.html#eaa" target="_blank">PoEAA</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rodrigobrito.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rodrigobrito.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rodrigobrito.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rodrigobrito.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rodrigobrito.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rodrigobrito.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rodrigobrito.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rodrigobrito.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rodrigobrito.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rodrigobrito.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rodrigobrito.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rodrigobrito.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rodrigobrito.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rodrigobrito.wordpress.com/55/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rodrigobrito.wordpress.com&amp;blog=1462944&amp;post=55&amp;subd=rodrigobrito&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rodrigobrito.wordpress.com/2010/07/14/alguns-problemas-decorrentes-do-desenvolvimento-tradicional-de-software-e-a-soluo-orientada-a-objetos-a-essncia-da-mudana-de-paradigma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6fefb602d68afc94df75a8aa8b573838?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">Rodrigo</media:title>
		</media:content>
	</item>
		<item>
		<title>Criando a Sua Primeira Aplica&#231;&#227;o em Silverlight</title>
		<link>http://rodrigobrito.wordpress.com/2010/07/12/criando-a-sua-primeira-aplicao-em-silverlight/</link>
		<comments>http://rodrigobrito.wordpress.com/2010/07/12/criando-a-sua-primeira-aplicao-em-silverlight/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 13:15:53 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">https://rodrigobrito.wordpress.com/2010/07/12/criando-a-sua-primeira-aplicao-em-silverlight/</guid>
		<description><![CDATA[Para começarmos você vai precisar ter instalado em sua máquina o Microsoft Visual Studio 2010. Neste artigo estarei utilizando a versão Premium, precisaremos também do Microsoft Silverlight 4 Tools for Visual Studio 2010 que é um pré requisito para desenvolver aplicações em Silverlight 4 e aplicações Ria Services através do Visual Studio 2010. Precisaremos também [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rodrigobrito.wordpress.com&amp;blog=1462944&amp;post=47&amp;subd=rodrigobrito&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Para começarmos você vai precisar ter instalado em sua máquina o <a href="http://www.microsoft.com/visualstudio/en-us/download">Microsoft Visual Studio 2010</a>. Neste artigo estarei utilizando a versão <b>Premium</b>, precisaremos também do <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=eff8a0da-0a4d-48e8-8366-6ddf2ecad801&amp;displaylang=en">Microsoft Silverlight 4 Tools for Visual Studio 2010</a> que é um pré requisito para desenvolver aplicações em Silverlight 4 e aplicações Ria Services através do Visual Studio 2010. Precisaremos também do <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=88484825-1b3c-4e8c-8b14-b05d025e1541&amp;displaylang=en">Microsoft Expression Blend® 4 Release Candidate (RC).</a></p>
<p><u></u></p>
<p>1. Inicie o Microsoft Visual Studio 2010</p>
<p>2. No menu File passe o mouse sobre New, e então selecione New Project</p>
<p><a href="http://rodrigobrito.files.wordpress.com/2010/07/clip_image002.jpg"><img style="display:inline;margin-left:0;margin-right:0;border-width:0;" title="clip_image002" border="0" alt="clip_image002" src="http://rodrigobrito.files.wordpress.com/2010/07/clip_image002_thumb.jpg?w=516&#038;h=138" width="516" height="138" /></a></p>
<p>3. A caixa de diálogo New Project será exibida</p>
<p><a href="http://rodrigobrito.files.wordpress.com/2010/07/clip_image004.jpg"><img style="display:inline;border-width:0;" title="clip_image004" border="0" alt="clip_image004" src="http://rodrigobrito.files.wordpress.com/2010/07/clip_image004_thumb.jpg?w=600&#038;h=416" width="600" height="416" /></a></p>
<p>4. Em <i>Installed Templates</i> no lado esquerdo da janela selecione <i>Visual C#</i> e então selecione <i>Silverlight. S</i>elecione <i>Silverlight Application e </i>verifique se na caixa de seleção superior está selecionado o <i>.NET Framework 4</i>. Em <i>Name</i> colocaremos o nome de nossa aplicação no caso <i>FirstSilverlightApplication </i>e então click em OK.</p>
<p><i>5. </i>Na caixa de diálogo <i>New Silverlight Application </i>desselecione <i>Host the Silverlight application in a new Web site e </i>em <i>Silverlight Version</i> verifique se <i>Silverlight 4</i> está selecionado e então click em OK.<i></i></p>
<p><i><u><a href="http://rodrigobrito.files.wordpress.com/2010/07/clip_image006.jpg"><img style="display:inline;border-width:0;" title="clip_image006" border="0" alt="clip_image006" src="http://rodrigobrito.files.wordpress.com/2010/07/clip_image006_thumb.jpg?w=482&#038;h=386" width="482" height="386" /></a></u></i><i></i></p>
<p>6. Após clicado em OK você terá uma tela como esta.</p>
<p>&#160;<a href="http://rodrigobrito.files.wordpress.com/2010/07/clip_image008.jpg"><img style="display:inline;border-width:0;" title="clip_image008" border="0" alt="clip_image008" src="http://rodrigobrito.files.wordpress.com/2010/07/clip_image008_thumb.jpg?w=600&#038;h=466" width="600" height="466" /></a></p>
<p><b>Criando Controles</b></p>
<p><b></b></p>
<p><b></b></p>
<p>Os controles podem ser adicionados a aplicação usando o ToolBox do Visual Studio ou editando o texto <a href="http://en.wikipedia.org/wiki/Extensible_Application_Markup_Language">XAML</a> diretamente no editor <a href="http://en.wikipedia.org/wiki/Extensible_Application_Markup_Language">XAML</a>. </p>
<p>1. Selecione o controle <i>TextBlock</i> e o arraste a <i>MainPage</i>.xaml. <u></u></p>
<p><u></u></p>
<p>A. Altere a propriedade <i>Text do controle </i>para Contatos.<u></u></p>
<p>B. Altere o tamanho da fonte do controle para 14, através da propriedade <i>FontSize.</i><u></u></p>
<p>C. Deixe a fonte em negrito através da propriedade <i>FontWeight</i> selecionando <i>Bold</i>.<u></u></p>
<p><u></u></p>
<p><u></u></p>
<p>2. Selecione o controle <i>Border</i> e o arraste a <i>MainPage</i>.xaml, altere a propriedade <i>CornerRadius</i> para 5.</p>
<p><a href="http://rodrigobrito.files.wordpress.com/2010/07/clip_image010.jpg"><img style="display:inline;border-width:0;" title="clip_image010" border="0" alt="clip_image010" src="http://rodrigobrito.files.wordpress.com/2010/07/clip_image010_thumb.jpg?w=600&#038;h=416" width="600" height="416" /></a></p>
<p>3. Arraste o controle <i>Grid</i> para dentro do controle <i>Border</i>, então resete as propriedades Height e Width do <i>Grid</i>.</p>
<p><a href="http://rodrigobrito.files.wordpress.com/2010/07/clip_image012.jpg"><img style="display:inline;border-width:0;" title="clip_image012" border="0" alt="clip_image012" src="http://rodrigobrito.files.wordpress.com/2010/07/clip_image012_thumb.jpg?w=444&#038;h=266" width="444" height="266" /></a></p>
<p>4. Arraste controles <i>TextBlock</i> e <i>TextBox</i> para dentro do controle <i>Grid</i> de forma que a página fique conforme a figura abaixo.<u></u></p>
<p><u></u></p>
<p><u><a href="http://rodrigobrito.files.wordpress.com/2010/07/clip_image014.jpg"><img style="display:inline;border-width:0;" title="clip_image014" border="0" alt="clip_image014" src="http://rodrigobrito.files.wordpress.com/2010/07/clip_image014_thumb.jpg?w=588&#038;h=408" width="588" height="408" /></a></u></p>
<p><u></u></p>
<p>Como você já deve ter percebido, todas as mudanças feitas através da <i>ToolBox Properties são </i>refletidas instantaneamente no código <i>XAML</i>. Veja abaixo o código <i>XAML</i> referente ao controles <i>TextBlock</i> e <i>TextBox</i> que adicionamos dentro do grid.</p>
<p><font face="Consolas"><span style="color:#a31515;">&#160;</span><span style="color:blue;">&lt;</span><span style="color:#a31515;">Grid</span><span style="color:blue;">&gt;</span>       <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBlock</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;20&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;6,9,0,0&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;74&quot;</span><span style="color:red;"> Text</span><span style="color:blue;">=&quot;Nome:&quot;</span><span style="color:red;"> TextAlignment</span><span style="color:blue;">=&quot;Right&quot; /&gt;</span>       <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBox</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;23&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;86,6,0,0&quot;</span><span style="color:red;"> Name</span><span style="color:blue;">=&quot;txtNome&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;282&quot; /&gt;</span>       <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBlock</span><span style="color:red;"> Text</span><span style="color:blue;">=&quot;Empresa:&quot;</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;20&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;6,37,0,0&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;74&quot;</span><span style="color:red;"> TextAlignment</span><span style="color:blue;">=&quot;Right&quot; /&gt;</span>       <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBlock</span><span style="color:red;"> Text</span><span style="color:blue;">=&quot;Cargo:&quot;</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;20&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;6,66,0,0&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;74&quot;</span><span style="color:red;"> TextAlignment</span><span style="color:blue;">=&quot;Right&quot; /&gt;</span>       <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBlock</span><span style="color:red;"> Text</span><span style="color:blue;">=&quot;E-mail:&quot;</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;20&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;6,94,0,0&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;74&quot;</span><span style="color:red;"> TextAlignment</span><span style="color:blue;">=&quot;Right&quot; /&gt;</span>       <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBlock</span><span style="color:red;"> Text</span><span style="color:blue;">=&quot;Telefone:&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;6,123,0,107&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;74&quot;</span><span style="color:red;"> TextAlignment</span><span style="color:blue;">=&quot;Right&quot; /&gt;</span>       <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBlock</span><span style="color:red;"> Text</span><span style="color:blue;">=&quot;Observações:&quot;</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;20&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;0,149,0,0&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;80&quot;</span><span style="color:red;"> TextAlignment</span><span style="color:blue;">=&quot;Right&quot; /&gt;</span>       <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBox</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;23&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;86,35,0,0&quot;</span><span style="color:red;"> Name</span><span style="color:blue;">=&quot;txtEmpresa&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;282&quot; /&gt;</span>       <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBox</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;23&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;86,64,0,0&quot;</span><span style="color:red;"> Name</span><span style="color:blue;">=&quot;txtCargo&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;282&quot; /&gt;</span>       <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBox</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;23&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;86,92,0,0&quot;</span><span style="color:red;"> Name</span><span style="color:blue;">=&quot;txtEmail&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;282&quot; /&gt;</span>       <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBox</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;23&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;86,121,0,0&quot;</span><span style="color:red;"> Name</span><span style="color:blue;">=&quot;txtDDI&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;41&quot; /&gt;</span>       <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBox</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;23&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;133,121,0,0&quot;</span><span style="color:red;"> Name</span><span style="color:blue;">=&quot;txtDDD&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;41&quot; /&gt;</span>       <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBox</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;23&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;180,121,0,0&quot;</span><span style="color:red;"> Name</span><span style="color:blue;">=&quot;txtTelefone&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;188&quot; /&gt;</span>       <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBox</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;95&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;86,149,0,0&quot;</span><span style="color:red;"> Name</span><span style="color:blue;">=&quot;txtObservacoes&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;282&quot; /&gt;</span>       <br /><span style="color:#a31515;">&#160;</span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">Grid</span><span style="color:blue;">&gt;</span>       <br /></font></p>
<p>5. Aumente o tamanho da página <i>“Height”</i> e arraste dois controles <i>Button</i>, botões Salvar e Cancelar. Altere as suas propriedades <i>Content</i> e <i>Name</i> respectivamente.</p>
<p><a href="http://rodrigobrito.files.wordpress.com/2010/07/clip_image018.jpg"><img style="display:inline;border-width:0;" title="clip_image018" border="0" alt="clip_image018" src="http://rodrigobrito.files.wordpress.com/2010/07/clip_image018_thumb.jpg?w=372&#038;h=143" width="372" height="143" /></a></p>
<p>Imagem da página criada:</p>
<p><a href="http://rodrigobrito.files.wordpress.com/2010/07/clip_image020.jpg"><img style="display:inline;border-width:0;" title="clip_image020" border="0" alt="clip_image020" src="http://rodrigobrito.files.wordpress.com/2010/07/clip_image020_thumb.jpg?w=600&#038;h=398" width="600" height="398" /></a></p>
<p>Código XAML completo da página:</p>
<div class="Section1">
<p class="MsoNormal"><span style="font-family:consolas;color:blue;font-size:9pt;" lang="EN-US">&lt;</span><span style="font-family:consolas;color:#a31515;font-size:9pt;" lang="EN-US">UserControl</span><span style="font-family:consolas;color:red;font-size:9pt;" lang="EN-US"> x</span><span style="font-family:consolas;color:blue;font-size:9pt;" lang="EN-US">:</span><span style="font-family:consolas;color:red;font-size:9pt;" lang="EN-US">Class</span><span style="font-family:consolas;color:blue;font-size:9pt;" lang="EN-US">=&quot;FirstSilverlightApplication.MainPage&quot;</span><span style="font-family:consolas;font-size:9pt;" lang="EN-US">        <br />&#160;&#160; <span style="color:red;">xmlns</span><span style="color:blue;">=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;</span>         <br />&#160;&#160; <span style="color:red;">xmlns</span><span style="color:blue;">:</span><span style="color:red;">x</span><span style="color:blue;">=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;</span>         <br />&#160;&#160; <span style="color:red;">xmlns</span><span style="color:blue;">:</span><span style="color:red;">d</span><span style="color:blue;">=&quot;http://schemas.microsoft.com/expression/blend/2008&quot;</span>         <br />&#160;&#160; <span style="color:red;">xmlns</span><span style="color:blue;">:</span><span style="color:red;">mc</span><span style="color:blue;">=&quot;http://schemas.openxmlformats.org/markup-compatibility/2006&quot;</span>         <br />&#160;&#160; <span style="color:red;">mc</span><span style="color:blue;">:</span><span style="color:red;">Ignorable</span><span style="color:blue;">=&quot;d&quot;</span>         <br />&#160;&#160; <span style="color:red;">d</span><span style="color:blue;">:</span><span style="color:red;">DesignHeight</span><span style="color:blue;">=&quot;328&quot;</span><span style="color:red;"> d</span><span style="color:blue;">:</span><span style="color:red;">DesignWidth</span><span style="color:blue;">=&quot;400&quot;</span><span style="color:red;"> xmlns</span><span style="color:blue;">:</span><span style="color:red;">sdk</span><span style="color:blue;">=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk&quot;&gt;</span>         <br /><span></span>        <br /><span style="color:#a31515;">&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">Grid</span><span style="color:red;"> x</span><span style="color:blue;">:</span><span style="color:red;">Name</span><span style="color:blue;">=&quot;LayoutRoot&quot;</span><span style="color:red;"> Background</span><span style="color:blue;">=&quot;White&quot;&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBlock</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;28&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;12,12,0,0&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;120&quot;</span><span style="color:red;"> Text</span><span style="color:blue;">=&quot;Contatos&quot;</span><span style="color:red;"> FontSize</span><span style="color:blue;">=&quot;14&quot;</span><span style="color:red;"> FontWeight</span><span style="color:blue;">=&quot;Bold&quot; /&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">Border</span><span style="color:red;"> BorderBrush</span><span style="color:blue;">=&quot;Silver&quot;</span><span style="color:red;"> BorderThickness</span><span style="color:blue;">=&quot;1&quot;</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;252&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;12,36,0,0&quot;</span><span style="color:red;"> Name</span><span style="color:blue;">=&quot;border1&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;376&quot;</span><span style="color:red;"> CornerRadius</span><span style="color:blue;">=&quot;5&quot;&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">Grid</span><span style="color:blue;">&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBlock</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;20&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;6,9,0,0&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;74&quot;</span><span style="color:red;"> Text</span><span style="color:blue;">=&quot;Nome:&quot;</span><span style="color:red;"> TextAlignment</span><span style="color:blue;">=&quot;Right&quot; /&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBox</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;23&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;86,6,0,0&quot;</span><span style="color:red;"> Name</span><span style="color:blue;">=&quot;txtNome&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;282&quot; /&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBlock</span><span style="color:red;"> Text</span><span style="color:blue;">=&quot;Empresa:&quot;</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;20&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;6,37,0,0&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;74&quot;</span><span style="color:red;"> TextAlignment</span><span style="color:blue;">=&quot;Right&quot; /&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBlock</span><span style="color:red;"> Text</span><span style="color:blue;">=&quot;Cargo:&quot;</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;20&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;6,66,0,0&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;74&quot;</span><span style="color:red;"> TextAlignment</span><span style="color:blue;">=&quot;Right&quot; /&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBlock</span><span style="color:red;"> Text</span><span style="color:blue;">=&quot;E-mail:&quot;</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;20&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;6,94,0,0&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;74&quot;</span><span style="color:red;"> TextAlignment</span><span style="color:blue;">=&quot;Right&quot; /&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBlock</span><span style="color:red;"> Text</span><span style="color:blue;">=&quot;Telefone:&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;6,123,0,107&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;74&quot;</span><span style="color:red;"> TextAlignment</span><span style="color:blue;">=&quot;Right&quot; /&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBlock</span><span style="color:red;"> Text</span><span style="color:blue;">=&quot;Observações:&quot;</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;20&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;0,149,0,0&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;80&quot;</span><span style="color:red;"> TextAlignment</span><span style="color:blue;">=&quot;Right&quot; /&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBox</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;23&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;86,35,0,0&quot;</span><span style="color:red;"> Name</span><span style="color:blue;">=&quot;txtEmpresa&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;282&quot; /&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBox</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;23&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;86,64,0,0&quot;</span><span style="color:red;"> Name</span><span style="color:blue;">=&quot;txtCargo&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;282&quot; /&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBox</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;23&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;86,92,0,0&quot;</span><span style="color:red;"> Name</span><span style="color:blue;">=&quot;txtEmail&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;282&quot; /&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBox</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;23&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;86,121,0,0&quot;</span><span style="color:red;"> Name</span><span style="color:blue;">=&quot;txtDDI&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;41&quot; /&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBox</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;23&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;133,121,0,0&quot;</span><span style="color:red;"> Name</span><span style="color:blue;">=&quot;txtDDD&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;41&quot; /&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBox</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;23&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;180,121,0,0&quot;</span><span style="color:red;"> Name</span><span style="color:blue;">=&quot;txtTelefone&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;188&quot; /&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">TextBox</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;95&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;86,149,0,0&quot;</span><span style="color:red;"> Name</span><span style="color:blue;">=&quot;txtObservacoes&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;282&quot; /&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">Grid</span><span style="color:blue;">&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">Border</span><span style="color:blue;">&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">Button</span><span style="color:red;"> Content</span><span style="color:blue;">=&quot;Cancelar&quot;</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;23&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;93,294,0,0&quot;</span><span style="color:red;"> Name</span><span style="color:blue;">=&quot;btnCancelar&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;75&quot; /&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">Button</span><span style="color:red;"> Content</span><span style="color:blue;">=&quot;Salvar&quot;</span><span style="color:red;"> Height</span><span style="color:blue;">=&quot;23&quot;</span><span style="color:red;"> HorizontalAlignment</span><span style="color:blue;">=&quot;Left&quot;</span><span style="color:red;"> Margin</span><span style="color:blue;">=&quot;12,294,0,0&quot;</span><span style="color:red;"> Name</span><span style="color:blue;">=&quot;btnSalvar&quot;</span><span style="color:red;"> VerticalAlignment</span><span style="color:blue;">=&quot;Top&quot;</span><span style="color:red;"> Width</span><span style="color:blue;">=&quot;75&quot; /&gt;</span>         <br /><span style="color:#a31515;">&#160;&#160;&#160; </span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">Grid</span><span style="color:blue;">&gt;</span>         <br /><span style="color:blue;">&lt;/</span><span style="color:#a31515;">UserControl</span><span style="color:blue;">&gt;</span></span><span style="font-size:9pt;" lang="EN-US"></span></p>
</p></div>
<p>Nos próximos artigos de Silverlight estaremos complementando essa pequena aplicação, iremos criar o <i>Grid</i> para a listagem de contatos, botões de inclusão, edição e deleção. Utilizaremos <a href="http://msdn.microsoft.com/en-us/netframework/aa663324.aspx">WCF</a> para acesso aos dados. </p>
<p>O <a href="http://msdn.microsoft.com/en-us/netframework/aa663324.aspx">WCF</a> para quem não conhece é um poderoso framework para a criação de aplicações orientadas a serviço. </p>
<p>Até o próximo artigo!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rodrigobrito.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rodrigobrito.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rodrigobrito.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rodrigobrito.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rodrigobrito.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rodrigobrito.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rodrigobrito.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rodrigobrito.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rodrigobrito.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rodrigobrito.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rodrigobrito.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rodrigobrito.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rodrigobrito.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rodrigobrito.wordpress.com/47/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rodrigobrito.wordpress.com&amp;blog=1462944&amp;post=47&amp;subd=rodrigobrito&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rodrigobrito.wordpress.com/2010/07/12/criando-a-sua-primeira-aplicao-em-silverlight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6fefb602d68afc94df75a8aa8b573838?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">Rodrigo</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2010/07/clip_image002_thumb.jpg" medium="image">
			<media:title type="html">clip_image002</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2010/07/clip_image004_thumb.jpg" medium="image">
			<media:title type="html">clip_image004</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2010/07/clip_image006_thumb.jpg" medium="image">
			<media:title type="html">clip_image006</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2010/07/clip_image008_thumb.jpg" medium="image">
			<media:title type="html">clip_image008</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2010/07/clip_image010_thumb.jpg" medium="image">
			<media:title type="html">clip_image010</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2010/07/clip_image012_thumb.jpg" medium="image">
			<media:title type="html">clip_image012</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2010/07/clip_image014_thumb.jpg" medium="image">
			<media:title type="html">clip_image014</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2010/07/clip_image018_thumb.jpg" medium="image">
			<media:title type="html">clip_image018</media:title>
		</media:content>

		<media:content url="http://rodrigobrito.files.wordpress.com/2010/07/clip_image020_thumb.jpg" medium="image">
			<media:title type="html">clip_image020</media:title>
		</media:content>
	</item>
		<item>
		<title>Iniciando o C#</title>
		<link>http://rodrigobrito.wordpress.com/2007/08/03/oi-mundo/</link>
		<comments>http://rodrigobrito.wordpress.com/2007/08/03/oi-mundo/#comments</comments>
		<pubDate>Fri, 03 Aug 2007 13:30:36 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://rodrigobrito.wordpress.com/2007/08/03/oi-mundo/</guid>
		<description><![CDATA[         Dizem que o C# é um C++ limpo, além disso ele tem várias semelhanças com o JAVA. O C# pronúncia-se &#8220;C-Sharp&#8221;. Semelhanças entre C# e Java   Característica Implementação Inspirado no C/C++ Boa parte da sintaxe de ambas as linguagens foi inspirada no C/C++, especialmente declaração de variáveis, funções e estruturas de controle. Orientação a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rodrigobrito.wordpress.com&amp;blog=1462944&amp;post=1&amp;subd=rodrigobrito&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>         Dizem que o C# é um C++ limpo, além disso ele tem várias semelhanças com o JAVA. O C# pronúncia-se &#8220;C-Sharp&#8221;.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="background:#dddddd;padding:3.75pt;" colspan="2" valign="top">
<p class="Table"><strong><span style="font-size:16pt;">Semelhanças entre C<sup>#</sup> e Java </span></strong></p>
<p class="Table"><strong><span style="font-size:16pt;"> </span></strong></p>
</td>
</tr>
<tr>
<td style="background:#dddddd;padding:3.75pt;" valign="top"><strong>Característica </strong></td>
<td style="background:#dddddd;padding:3.75pt;" valign="top"><strong>Implementação </strong></td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Inspirado no C/C++</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Boa parte da sintaxe de ambas as linguagens foi inspirada no C/C++, especialmente declaração de variáveis, funções e estruturas de controle.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Orientação a objetos</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Ambas as linguagens suportam conceitos de programação orientada a objetos com a palavra reservada <em>class</em>.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Herança</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Herança simples de classes a partir de ancestral comum e herança múltipla de interfaces.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Gerenciamento de memória</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Automático, com “coletor de lixo”.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Tipagem forte</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Todas as atribuições tem os tipos validados. Os “casts” são sempre verificados em tempo de execução. Não é possível violar o sistema de tipos.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Compila para código intermediário</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim. No caso da Microsoft compila para “Intermediate Language” e no Java para “bytecode”.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Tratamento de erro</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table"><em>Exceptions</em>.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Reflections</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Ambas as linguagens suportam “reflections”.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Unicode</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Ambas as linguagens usam o padrão Unicode para representar caracteres e strings.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Classe que não pode ser herdada</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">“final” em Java; “sealed” em C<sup>#</sup>.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Campo constante</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">“static final” em Java; “const” em C<sup>#</sup>.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Operador que verifica compatibilidade de tipos</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">“instanceof” em Java; “is” em C<sup>#</sup>.</p>
</td>
</tr>
</tbody>
</table>
<h2>Novidades do C<sup>#</sup></h2>
<p class="MsoNormal">O C<sup>#</sup> tem diversas novidades que tornam o desenvolvimento de software mais fácil e produtivo, como mostrado a seguir:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="background:#dddddd;padding:3.75pt;" colspan="3" valign="top"><strong><span style="font-size:16pt;">Recursos novos no C<sup>#</sup></span></strong><strong><span style="font-size:16pt;"><sup>  </sup></span></strong></p>
<p><strong><span style="font-size:16pt;"><sup>    </sup></span></strong></td>
</tr>
<tr>
<td style="background:#dddddd;padding:3.75pt;" valign="top"><strong>Característica </strong></td>
<td style="background:#dddddd;padding:3.75pt;" valign="top"><strong>Java </strong></td>
<td style="background:#dddddd;padding:3.75pt;" valign="top"><strong>C<sup>#</sup> </strong></td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Compilado para código nativo</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Raramente. O Java é quase sempre interpretado.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sempre compilado para código nativo. A compilação pode ser feita na instalação ou na primeira execução do programa.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Todos os tipos derivados de ancestral comum</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim, todos os tipos são derivados de <em>object.</em></p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">“Boxing” e “Unboxing” &#8211; conversão de tipos por valor para tipos por referência</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não. Exige conversão manual.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Structs</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Enum</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Passagem de parâmetros por referência</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim, de duas maneiras: <em>ref</em> para parâmetros de entrada e saída e <em>out</em> para parâmetro apenas de saída.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Propriedades</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não. Podem ser simuladas com métodos Get/Set, com alguma dificuldade.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim, diretamente. A criação de “componentes” é bastante facilitada.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Eventos e Delegates</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não, categoricamente (veja link abaixo).</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim. Um “delegate” é um “ponteiro de função orientado a objetos”, permitindo a associação de um evento de uma classe ao código de outra de maneira conceitualmente simples e poderosa.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Atributos</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim, permitindo “etiquetar” o código com características que são interrogadas em tempo de execução através de “reflection”.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Ponteiros</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não suportado diretamente, apenas indiretamente através de “referências”.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">A princípio suporta referências, mas os ponteiros podem ser usados em código “inseguro” por questões de performance ou compatibilidade com DLLs.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sobrecarga de operadores</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Operadores de conversão</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Operadores de cast</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Um, sintaxe semelhante ao C/C++.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Dois, um semelhante ao C/C++ e o outro “as”. Um retorna <em>null</em> e outro dispara <em>exception</em> em casso de erro de conversão.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Inteiros sem sinal</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Tipo numérico pouco sujeito a erros de representação e arredondamento</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim, o tipo <em>decimal</em> pode ser usado em softwares que não toleram facilmente erros de arredondamento, como programas de contabilidade</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Forech: loop para varrer arrays e coleções</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Campo readonly</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Documentação integrada em XML</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim, permitindo que o programador escreva facilmente a documentação enquanto programa. Este documentação pode depois ser extraída do fonte ou usada no próprio ambiente de desenvolvimento.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">Switch com strings</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim, facilitando o desenvolvimento.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Controle sobre “estouro de faixa” numérica</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim. As palavras reservadas <em>checked </em>e <em>unchecked</em> permitem mudar o que o programa faz quando há um “estouro de faixa numérica”: o <em>checked</em> dispara uma <em>exception</em>; o <em>unchecked</em> não.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Funções com número variável de parâmetros</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim, de forma “tipada”, com a palavra reservada params.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Formas do método Main</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Uma.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Quatro. O main pode aceitar um array de strings ou nada; pode retornar inteiro ou nada.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Goto</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim, com a restrição de que não pode entrar em um bloco.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Arquivo “executável” independente do namespace</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Um “package” Java obrigatoriamente está associado a um único arquivo “.class”.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não existe relação direta entre o “namespace” e a DLL que o implementa, dando mais flexibilidade ao desenvolvedor na hora de quebrar seus projetos em pedaços menores.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Especificadores de acesso</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Quatro.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Cinco. O <em>internal</em>, adicional, especifica acesso apenas no mesmo “assembly” (mesma DLL, a grosso modo).</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Diretivas de compilação condicional (<sup>#</sup>ifdef etc)</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Destrutores</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não, mas o método <em>Finalize</em> pode ser usado.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Padronização por algum organismo internacional</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não. Duas submissões da Sun foram posteriormente retiradas.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim. Submetido e aceito pelo ECMA (http://www.ecma.ch).</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Chama APIs do Windows e DLLs</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não. Mesmo o suporte “nativo” de alguns compiladores é extremamente limitado pela falta de ponteiros na linguagem.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Chama objetos COM/COM+</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim.</p>
</td>
</tr>
<tr>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Cria objetos COM/COM+</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Não.</p>
</td>
<td style="padding:3.75pt;" valign="top">
<p class="Table">Sim.</p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal">Existem alguns pontos importantes por trás dos tópicos acima:</p>
<p class="MsoNormal">O C<sup>#</sup> implementa características interessantes do C++ que foram removidas no Java, como passagem de parâmetros por referência, enum, struct, sobrecarga de operadores, operadores de conversão e compilação condicional;</p>
<p class="MsoNormal">O C<sup>#</sup> tem vários recursos que melhoram a performance, como uso de “tipos por valor” (<em>structs</em> e <em>enums</em>) em situações simples onde o uso de uma classe seria muito “caro” e suporte direto a ponteiros;</p>
<p class="MsoNormal">Suporte direto a componentes, através de a propriedades e eventos;</p>
<p class="MsoNormal">A unificação do sistema de tipos (tudo é derivado de <em>object</em>) e a conversão de valores para referências através de “boxing” são recursos que, ao mesmo tempo simplificam a programação, como também permitem melhores abstrações;</p>
<p class="MsoNormal">Boa integração com código anterior escrito para Windows: suporte a ponteiros, chamar DLLs, chamar objetos COM e criar objetos COM. Não é necessário abandonar o C<sup>#</sup> para usar alguma facilidade não contemplada pela biblioteca de classes;</p>
<p class="MsoNormal">Diversos recursos que facilitam a programação, como <em>switch</em> com strings, “loop” <em>foreach</em> para varrer todos os elementos de uma coleção ou <em>array</em>, campo <em>readonly</em>;</p>
<p class="MsoNormal"><strong>Leitura interessante na Web<br />
</strong>Introdução ao C<sup>#</sup>:<br />
<a href="http://msdn.microsoft.com/vstudio/nextgen/technology/csharpintro.asp"><span style="color:#0000ff;">http://msdn.microsoft.com/vstudio/nextgen/technology/csharpintro.asp</span></a></p>
<p class="MsoNormal">Artigo da MSDN Magazine:<br />
<a href="http://msdn.microsoft.com/msdnmag/issues/0900/csharp/csharp.asp"><span style="color:#0000ff;">http://msdn.microsoft.com/msdnmag/issues/0900/csharp/csharp.asp</span></a></p>
<p class="MsoNormal">Artigo da Doctor Dobb’s Journal sobre C<sup>#</sup>:<br />
<a href="http://www.ddj.com/articles/2000/0065/0065g/0065g.htm"><span style="color:#0000ff;">http://www.ddj.com/articles/2000/0065/0065g/0065g.htm</span></a></p>
<p class="MsoNormal">Site de C<sup>#</sup> da O’Reyley, com vários artigos comparativos:<br />
<a href="http://www.oreillynet.com/pub/a/dotnet/2001/06/07/csharp_java.html?page=4"><span style="color:#0000ff;">http://www.oreillynet.com/topics/dotnet/csharp.net</span></a></p>
<p class="MsoNormal">Artigo da Sun “explicando” porque o Java não tem nem terá delegates:<br />
<a href="http://java.sun.com/docs/white/delegates.html"><span style="color:#0000ff;">http://java.sun.com/docs/white/delegates.html</span></a></p>
<p class="MsoNormal">Resposta da Microsoft mostrando porque os delegates são úteis:<br />
<a href="http://msdn.microsoft.com/archive/default.asp?url=/ARCHIVE/en-us/dnarvj/html/msdn_deltruth.asp"><span style="color:#0000ff;">http://msdn.microsoft.com/archive/default.asp?url=/ARCHIVE/en-us/dnarvj/html/msdn_deltruth.asp</span></a></p>
<p class="MsoNormal">Sobre o prêmio da DDJ a Anders Hejlsberg, o criador do C<sup>#</sup>:<br />
<a href="http://www.ddj.com/articles/2001/0105/0105a/0105a.htm"><span style="color:#0000ff;">http://www.ddj.com/articles/2001/0105/0105a/0105a.htm</span></a></p>
<p class="MsoNormal">Entrevista de Anders Hejlsberg:<br />
<a href="http://www.dnjonline.com/teched2001/Hejlsberg_head2head.html"><span style="color:#0000ff;">http://www.dnjonline.com/teched2001/Hejlsberg_head2head.html</span></a></p>
<p class="MsoNormal">Mais uma entrevista com Anders Hejlsberg:<br />
<a href="http://news.cnet.com/news/0-1003-200-5677521.html?tag=tp_pr"><span style="color:#0000ff;">http://news.cnet.com/news/0-1003-200-5677521.html?tag=tp_pr</span></a></p>
<p class="MsoNormal">Coluna fictícia de Anders Hejlsberg:<br />
<a href="http://www.ddj.com/columns/stob/2001/0106vs001.htm"><span style="color:#0000ff;">http://www.ddj.com/columns/stob/2001/0106vs001.htm</span></a></p>
<p class="MsoNormal">Autor: Mauro Sant’Anna</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rodrigobrito.wordpress.com/1/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rodrigobrito.wordpress.com/1/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rodrigobrito.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rodrigobrito.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rodrigobrito.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rodrigobrito.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rodrigobrito.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rodrigobrito.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rodrigobrito.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rodrigobrito.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rodrigobrito.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rodrigobrito.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rodrigobrito.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rodrigobrito.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rodrigobrito.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rodrigobrito.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rodrigobrito.wordpress.com&amp;blog=1462944&amp;post=1&amp;subd=rodrigobrito&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rodrigobrito.wordpress.com/2007/08/03/oi-mundo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6fefb602d68afc94df75a8aa8b573838?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">Rodrigo</media:title>
		</media:content>
	</item>
	</channel>
</rss>
