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

<channel>
	<title>Daniel Fonseca Castro</title>
	<atom:link href="http://danielfonsecacastro.com.br/feed/" rel="self" type="application/rss+xml" />
	<link>http://danielfonsecacastro.com.br</link>
	<description>Trabalho &#38; Disciplina</description>
	<lastBuildDate>Sun, 28 Nov 2010 09:40:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Ebook Windows Phone 7 grátis</title>
		<link>http://danielfonsecacastro.com.br/2010/11/24/ebook-windows-phone-7-gratis/</link>
		<comments>http://danielfonsecacastro.com.br/2010/11/24/ebook-windows-phone-7-gratis/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 22:05:13 +0000</pubDate>
		<dc:creator>Daniel Fonseca Castro</dc:creator>
				<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://danielfonsecacastro.com.br/?p=80</guid>
		<description><![CDATA[Quer aprender Windows Phone 7 ? O time da framework preparou um presentão! E falo presentão porque o livro é completo 24 capítulos em mais de 1000 paginas com código fonte, o livro esta dividido em 3 partes. A primeira parte mostra o básico ,a segunda fala sobre Silverlight e a terceira sobre XNA. Enquanto [...]]]></description>
			<content:encoded><![CDATA[<p>Quer aprender Windows Phone 7 ? O time da framework preparou um presentão!</p>
<p>E falo presentão porque o livro é completo 24 capítulos em mais de 1000 paginas com código fonte, o livro esta dividido em 3 partes. A primeira parte mostra o básico ,a segunda fala sobre Silverlight e a terceira sobre XNA.</p>
<p>Enquanto espero com muita ansiedade a chegada dos aparelhos aqui no Brasil, vou me divertindo com esse presentão!</p>
<p>Segue o link e bom estudo</p>
<p><a href="http://blogs.msdn.com/b/microsoft_press/archive/2010/10/28/free-ebook-programming-windows-phone-7-by-charles-petzold.aspx" target="_blank"></p>
<p>http://blogs.msdn.com/b/microsoft_press/archive/2010/10/28/free-ebook-programming-windows-phone-7-by-charles-petzold.aspx</a></p>
<p><strong>Daniel Fonseca Castro</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://danielfonsecacastro.com.br/2010/11/24/ebook-windows-phone-7-gratis/feed/</wfw:commentRss>
		<slash:comments>175</slash:comments>
		</item>
		<item>
		<title>Meu primeiro projeto com Android</title>
		<link>http://danielfonsecacastro.com.br/2010/10/22/meu-primeiro-projeto-com-android/</link>
		<comments>http://danielfonsecacastro.com.br/2010/10/22/meu-primeiro-projeto-com-android/#comments</comments>
		<pubDate>Fri, 22 Oct 2010 02:21:00 +0000</pubDate>
		<dc:creator>Daniel Fonseca Castro</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">/post/Meu-primeiro-projeto-com-Android.aspx</guid>
		<description><![CDATA[Recentemente inicie um projeto com Android e confesso que estou surpreso com os resultados, espera uma curva de aprendizado grande e uma instala&#231;&#227;o de ambiente complicada mais encontrei outro cen&#225;rio, claro que patinei em algumas coisas b&#225;sicas mais acredito que isso faz parte do aprendizado. Para quem quer se aventurar nesta praia criei uma pequena [...]]]></description>
			<content:encoded><![CDATA[<p>Recentemente inicie um projeto com Android e confesso que estou surpreso com os resultados, espera uma curva de aprendizado grande e uma instala&ccedil;&atilde;o de ambiente complicada mais encontrei outro cen&aacute;rio, claro que patinei em algumas coisas b&aacute;sicas mais acredito que isso faz parte do aprendizado. Para quem quer se aventurar nesta praia criei uma pequena lista com os alguns links essenciais.</p>
<p>Claro o primeiro passo deve ser a prepara&ccedil;&atilde;o do ambiente, voc&ecirc; pode escolhe quais vers&otilde;es que deseja baixar do Android SDK ou simplesmente baixar todas (se escolhe todas da mais de 1 GB), depois da SDK baixe o Eclipse e o ADT Plugin for Eclipse.</p>
<p><a href="http://developer.android.com/sdk/index.html" target="_blank">http://developer.android.com/sdk/index.html</a></p>
<p>A temida classe &ldquo;R&rdquo;, ela realmente da medo, basicamente ela &eacute; uma classe gerada automaticamente com classes internas com constantes do tipo inteiro, todo recurso ou qualquer coisa que voc&ecirc; crie dentro do diret&oacute;rio &ldquo;res&rdquo; ser&aacute; refletido nesta classe em forma de constante identificada pelo nome do recurso, por exemplo,um XML de uma tela com os seus controles s&atilde;o acessados por essa classe, resumindo sem essa classe n&atilde;o tem aplica&ccedil;&atilde;o. Confesso que essa foi a parte que eu n&atilde;o gostei do Android, mais n&atilde;o chega a ser um problema.</p>
<p><a href="http://developer.android.com/reference/android/R.html" target="_blank">http://developer.android.com/reference/android/R.html</a></p>
<p>As Activity s&atilde;o simplesmente as telas da aplica&ccedil;&atilde;o, cada Activity roda em uma Thread que &eacute; gerenciada pelo SO, entender seu funcionamento e ciclo de vida &eacute; fundamental.</p>
<p><a href="http://developer.android.com/reference/android/app/Activity.html" target="_blank">http://developer.android.com/reference/android/app/Activity.html</a></p>
<p>Para iniciar uma Activity voc&ecirc; sempre precisa configurar uma Intent.</p>
<p><a href="http://developer.android.com/reference/android/content/Intent.html" target="_blank">http://developer.android.com/reference/android/content/Intent.html</a></p>
<p>Esse pacote &eacute; sensacional , eles pensaram nos programadores que se preocupam com a qualidade do seu trabalho e criaram mocks para as classes de infra, se voc&ecirc; cria testes unit&aacute;rios voc&ecirc; vai precisa!</p>
<p><a href="http://developer.android.com/reference/android/test/mock/package-summary.html" target="_blank">http://developer.android.com/reference/android/test/mock/package-summary.html</a></p>
<p>Google Android do Ricardo R. Lecheta &eacute; um bom livro para iniciantes aprendi bastante com esse livro, em alguns momentos ele &eacute; um pouco repetitivo, mais mesmo assim &eacute; uma boa leitura.</p>
<p><a href="http://novatec.com.br/livros/googleand/" target="_blank">http://novatec.com.br/livros/googleand/</a></p>
<p>Acredito que os links acima s&atilde;o &uacute;teis para um iniciante como eu na plataforma, tem material para algumas semanas, ent&atilde;o bom estudo e at&eacute; a pr&oacute;xima!</p>
<p><p><strong>Daniel Fonseca Castro</strong></p></p>
]]></content:encoded>
			<wfw:commentRss>http://danielfonsecacastro.com.br/2010/10/22/meu-primeiro-projeto-com-android/feed/</wfw:commentRss>
		<slash:comments>90</slash:comments>
		</item>
		<item>
		<title>Tech-ed Brasil 2010</title>
		<link>http://danielfonsecacastro.com.br/2010/08/28/tech-ed-brasil-2010/</link>
		<comments>http://danielfonsecacastro.com.br/2010/08/28/tech-ed-brasil-2010/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 20:18:00 +0000</pubDate>
		<dc:creator>Daniel Fonseca Castro</dc:creator>
				<category><![CDATA[Evento]]></category>

		<guid isPermaLink="false">/post/Tech-ed-Brasil-2010.aspx</guid>
		<description><![CDATA[Minha agenda no tech-ed deste ano, tem também Kinect e Windows Phone 7, serão três dias intenso! Programação do dia 13/09/2010 13:45 &#8211; 15:00 Título: Desenvolvendo para Azure &#160; Palestrante (s): Otavio Pecego Coelho, Sala: Jaçanã 2 Público: Desenvolvedores / Profissionais de TI 15:30 &#8211; 16:45 Título: Arquitetura de Soluções com o Windows Server AppFabric, [...]]]></description>
			<content:encoded><![CDATA[<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:10.0pt;
	margin-left:0cm;
	line-height:115%;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
h3
	{mso-style-link:"Título 3 Char";
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:3.75pt;
	margin-left:0cm;
	line-height:110%;
	font-size:15.0pt;
	font-family:"Times New Roman","serif";
	color:#006E12;
	font-weight:normal;}
span.Ttulo3Char
	{mso-style-name:"Título 3 Char";
	mso-style-link:"Título 3";
	font-family:"Times New Roman","serif";
	color:#006E12;}
span.skypenamemark
	{mso-style-name:skype_name_mark;
	display:none;}
span.skypenamehighlightoffline
	{mso-style-name:skype_name_highlight_offline;}
.MsoPapDefault
	{margin-bottom:10.0pt;
	line-height:115%;}
@page WordSection1
	{size:595.3pt 841.9pt;
	margin:70.85pt 3.0cm 70.85pt 3.0cm;}
div.WordSection1
	{page:WordSection1;}
-->
</style>
<p>Minha agenda no tech-ed deste ano, tem também <a href="http://www.xbox.com/pt-BR/kinect" target="_blank">Kinect</a> e <a href="http://www.windowsphone7.com/" target="_blank">Windows Phone 7</a>, serão três dias intenso!</p>
<div class="WordSection1">
<p class="MsoNormal" style="margin-bottom: 3.75pt; line-height: 110%;"><span style="font-size: 12.5pt; line-height: 110%; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(0, 110, 18);">Programação do dia 13/09/2010</span></p>
<table class="MsoNormalTable" style="width: 100%; border-collapse: collapse;" width="100%" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td style="padding: 0cm; width: 20%;" width="20%" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;" align="center"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">13:45 &#8211; 15:00 </span></p>
</td>
<td style="padding: 0cm;" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Título:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Desenvolvendo para Azure &nbsp;<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Palestrante (s):</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Otavio Pecego Coelho, <br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Sala:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Jaçanã 2<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Público:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Desenvolvedores / Profissionais de TI</span></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"><span style="display: none;"><br />
<input value="41" type="hidden"></span><span style="display: none;"><br />
<input value="3" type="hidden"></span></span></p>
</td>
</tr>
<tr>
<td style="padding: 0cm; width: 20%;" width="20%" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;" align="center"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">15:30 &#8211; 16:45 </span></p>
</td>
<td style="padding: 0cm;" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Título:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Arquitetura de Soluções com o Windows<br />
  Server AppFabric, WCF e WF &#8211; Patterns de Aplicações, Serviços e<br />
  Workflows&nbsp;<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Palestrante (s):</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Waldemir Cambiucci, <br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Sala:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Jaçanã 1<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Público:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Desenvolvedores / Profissionais de TI</span></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"><span style="display: none;"><br />
<input value="2" type="hidden"></span><span style="display: none;"><br />
<input value="3" type="hidden"></span></span></p>
</td>
</tr>
<tr>
<td style="padding: 0cm; width: 20%;" width="20%" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;" align="center"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">17:15 &#8211; 18:30 </span></p>
</td>
<td style="padding: 0cm;" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Título:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Tudo o que você precisa saber sobre<br />
  Scrum e Visual Studio ALM em 150 min &#8211; Parte 1&nbsp;<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Palestrante (s):</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> André Dias, Giovanni Bassi</span><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42); display: none;"> begin_of_the_skype_highlighting</span><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="display: none;">end_of_the_skype_highlighting</span></span><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">, <br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Sala:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Cantareira 5<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Público:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Desenvolvedores / Profissionais de TI</span></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"><span style="display: none;"><br />
<input value="80" type="hidden"></span><span style="display: none;"><br />
<input value="3" type="hidden"></span></span></p>
</td>
</tr>
<tr>
<td style="padding: 0cm; width: 20%;" width="20%" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;" align="center"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">18:45 &#8211; 20:00 </span></p>
</td>
<td style="padding: 0cm;" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Título:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Tudo o que você precisa saber sobre<br />
  Scrum e Visual Studio ALM em 150 min &#8211; Parte 2&nbsp;<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Palestrante (s):</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> André Dias, Giovanni Bassi</span><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42); display: none;"> begin_of_the_skype_highlighting</span><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="display: none;">end_of_the_skype_highlighting</span></span><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">, <br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Sala:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Cantareira 5<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Público:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Desenvolvedores / Profissionais de TI</span></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"><span style="display: none;"><br />
<input value="192" type="hidden"></span><span style="display: none;"><br />
<input value="3" type="hidden"></span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">&nbsp;</span></p>
<p class="MsoNormal" style="margin-bottom: 3.75pt; line-height: 110%;"><span style="font-size: 12.5pt; line-height: 110%; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(0, 110, 18);">Programação do dia 14/09/2010</span></p>
<table class="MsoNormalTable" style="width: 100%; border-collapse: collapse;" width="100%" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td style="padding: 0cm; width: 20%;" width="20%" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;" align="center"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">09:00 &#8211; 10:15 </span></p>
</td>
<td style="padding: 0cm;" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Título:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Criando Rich Internet Applications<br />
  (RIA) com ASP.NET AJAX e jQuery&nbsp;<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Palestrante (s):</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Fernando Cerqueira, <br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Sala:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Cantareira 3<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Público:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Desenvolvedores / Profissionais de TI</span></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"><span style="display: none;"><br />
<input value="182" type="hidden"></span><span style="display: none;"><br />
<input value="3" type="hidden"></span></span></p>
</td>
</tr>
<tr>
<td style="padding: 0cm; width: 20%;" width="20%" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;" align="center"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">10:45 &#8211; 12:00 </span></p>
</td>
<td style="padding: 0cm;" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Título:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Tudo que você sempre quis saber sobre o<br />
  Windows Presentation Foundation (WPF) 4&nbsp;<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Palestrante (s):</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Bruno Sonnino, <br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Sala:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Cantareira 5<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Público:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Desenvolvedores / Profissionais de TI</span></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"><span style="display: none;"><br />
<input value="40" type="hidden"></span><span style="display: none;"><br />
<input value="3" type="hidden"></span></span></p>
</td>
</tr>
<tr>
<td style="padding: 0cm; width: 20%;" width="20%" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;" align="center"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">13:45 &#8211; 15:00 </span></p>
</td>
<td style="padding: 0cm;" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Título:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Trace, Log, Provisionamento e<br />
  Monitoração no Azure&nbsp;<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Palestrante (s):</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Luciano Condé, <br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Sala:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Jaçanã 2<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Público:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Desenvolvedores / Profissionais de TI</span></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"><span style="display: none;"><br />
<input value="43" type="hidden"></span><span style="display: none;"><br />
<input value="3" type="hidden"></span></span></p>
</td>
</tr>
<tr>
<td style="padding: 0cm; width: 20%;" width="20%" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;" align="center"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">15:30 &#8211; 16:45 </span></p>
</td>
<td style="padding: 0cm;" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Título:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Implementando Serviços RESTful usando o<br />
  Microsoft .NET Framework&nbsp;<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Palestrante (s):</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Israel Aece, <br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Sala:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Cantareira 5<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Público:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Desenvolvedores / Profissionais de TI</span></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"><span style="display: none;"><br />
<input value="71" type="hidden"></span><span style="display: none;"><br />
<input value="3" type="hidden"></span></span></p>
</td>
</tr>
<tr>
<td style="padding: 0cm; width: 20%;" width="20%" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;" align="center"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">17:15 &#8211; 18:30 </span></p>
</td>
<td style="padding: 0cm;" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Título:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Plataforma Azure AppFabric &#8211; utilizando<br />
  o Service Bus e o Access Control Services&nbsp;<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Palestrante (s):</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Rafael Godinho, <br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Sala:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Jaçanã 1<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Público:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Desenvolvedores / Profissionais de TI</span></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"><span style="display: none;"><br />
<input value="44" type="hidden"></span><span style="display: none;"><br />
<input value="3" type="hidden"></span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">&nbsp;</span></p>
<p class="MsoNormal" style="margin-bottom: 3.75pt; line-height: 110%;"><span style="font-size: 12.5pt; line-height: 110%; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(0, 110, 18);">Programação do dia 15/09/2010</span></p>
<table class="MsoNormalTable" style="width: 100%; border-collapse: collapse;" width="100%" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td style="padding: 0cm; width: 20%;" width="20%" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;" align="center"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">09:00 &#8211; 10:15 </span></p>
</td>
<td style="padding: 0cm;" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Título:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Usando o pattern MVVM<br />
  (Model-View-ViewModel) para desenvolvimento em WPF e Silverlight&nbsp;<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Palestrante (s):</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Bruno Sonnino, <br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Sala:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Jardim São Paulo<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Público:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Desenvolvedores / Profissionais de TI</span></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"><span style="display: none;"><br />
<input value="70" type="hidden"></span><span style="display: none;"><br />
<input value="3" type="hidden"></span></span></p>
</td>
</tr>
<tr>
<td style="padding: 0cm; width: 20%;" width="20%" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;" align="center"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">10:45 &#8211; 12:00 </span></p>
</td>
<td style="padding: 0cm;" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Título:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Como e onde devo utilizar o Managed<br />
  Extensibility Framework (MEF) &nbsp;<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Palestrante (s):</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Rogério Moraes de Carvalho,<br />
  <br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Sala:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Jardim São Paulo<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Público:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Desenvolvedores / Profissionais de TI</span></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"><span style="display: none;"><br />
<input value="68" type="hidden"></span><span style="display: none;"><br />
<input value="3" type="hidden"></span></span></p>
</td>
</tr>
<tr>
<td style="padding: 0cm; width: 20%;" width="20%" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;" align="center"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">13:45 &#8211; 15:00 </span></p>
</td>
<td style="padding: 0cm;" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Título:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Segurança da informação: os perigos da<br />
  Internet e seus riscos legais&nbsp;<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Palestrante (s):</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Rony Vainzof, <br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Sala:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Horto Florestal<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Público:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Desenvolvedores / Profissionais de TI</span></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"><span style="display: none;"><br />
<input value="133" type="hidden"></span><span style="display: none;"><br />
<input value="3" type="hidden"></span></span></p>
</td>
</tr>
<tr>
<td style="padding: 0cm; width: 20%;" width="20%" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;" align="center"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">15:30 &#8211; 16:45 </span></p>
</td>
<td style="padding: 0cm;" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Título:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Entendendo a Plataforma de Aplicações<br />
  do Windows Phone 7&nbsp;<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Palestrante (s):</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Galileu Vieira, Luciano<br />
  Condé, <br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Sala:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Cantareira 5<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Público:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Desenvolvedores / Profissionais de TI</span></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"><span style="display: none;"><br />
<input value="82" type="hidden"></span><span style="display: none;"><br />
<input value="3" type="hidden"></span></span></p>
</td>
</tr>
<tr>
<td style="padding: 0cm; width: 20%;" width="20%" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;" align="center"><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">17:15 &#8211; 18:30 </span></p>
</td>
<td style="padding: 0cm;" valign="top">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Título:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Escalabilidade de Soluções Database<br />
  Oriented através do SQL Server Service Broker&nbsp;<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Palestrante (s):</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Marcondes Faria, <br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Sala:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Cantareira 6<br />
  </span><b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);">Público:</span></b><span style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: rgb(42, 42, 42);"> Desenvolvedores / Profissionais de TI</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal">&nbsp;</p>
</div>
<p>Encontro você lá!</p>
<p><strong>Daniel Fonseca Castro</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://danielfonsecacastro.com.br/2010/08/28/tech-ed-brasil-2010/feed/</wfw:commentRss>
		<slash:comments>54</slash:comments>
		</item>
		<item>
		<title>O que  testar nos Controllers?</title>
		<link>http://danielfonsecacastro.com.br/2010/06/25/o-que-testar-nos-controllers/</link>
		<comments>http://danielfonsecacastro.com.br/2010/06/25/o-que-testar-nos-controllers/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 15:03:00 +0000</pubDate>
		<dc:creator>Daniel Fonseca Castro</dc:creator>
				<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[ASP.NET MVC 2]]></category>
		<category><![CDATA[Unit Test]]></category>

		<guid isPermaLink="false">/post/O-que-testar-nos-Controllers.aspx</guid>
		<description><![CDATA[Além do coração da sua aplicação e quando falo “coração” estou me referindo às regras de negócio, você precisa testar os Controllers da aplicação e é claro que você não espalha as suas regras de negócio pelos Controllers, eu acredito que a cobertura de testes nos Controllers pode ser menor que a cobertura das regras [...]]]></description>
			<content:encoded><![CDATA[<p>Além do coração da sua aplicação e quando falo “coração” estou me referindo às regras de negócio, você precisa testar os Controllers da aplicação e é claro que você não espalha as suas regras de negócio pelos Controllers, eu acredito que a cobertura de testes nos Controllers pode ser menor que a cobertura das regras de negócio, no meu caso acredito que no mínimo 70% dos meus controllers deve estar protegido.</p>
<p>Não importa como você desenha a suas aplicação, mais o papel dos Controllers  em uma aplicação ASP.NET MVC é muito claro ,as Actions dentro dos Controllers  recebem uma solicitação(request), e retorna (response) alguma coisa, eu liste os tipos de retorno disponíveis em um outro post <a href="/post/2009/07/15/Conheca-os-ActionResult-disponiveis.aspx">Conheça os ActionResult disponíveis.</a></p>
<p>Quando eu testo os meus Controllers eu faço a seguinte pergunta, dado um request o response esta correto?  O template padrão do ASP.NET MVC mostra um exemplo muito claro de teste de Controllers, talvez os nomes dos teste não seja o melhor exemplo, mais refatorando ficaria assim.</p>
<pre class="brush: c#;toolbar: false">[TestClass]
public class Home_Controller_Quando_Action_Index
{
    [TestMethod]
    public void Executada_Com_Sucesso()
    {
        // Arrange
        HomeController controller = new HomeController();

        // Act
        ViewResult result = controller.Index() as ViewResult;

        // Assert
        ViewDataDictionary viewData = result.ViewData;
        Assert.AreEqual("Welcome to ASP.NET MVC!", viewData["Message"]);
    }
}

[TestClass]
public class Home_Controller_Quando_Action_About
{
    [TestMethod]
    public void Executada_Com_Sucesso()
    {
        // Arrange
        HomeController controller = new HomeController();

        // Act
        ViewResult result = controller.About() as ViewResult;

        // Assert
        Assert.IsNotNull(result);
    }
}</pre>
<p>Galera é isso, no próximo post vou falar um pouco de Mock até lá!</p>
<p><strong>Daniel Fonseca Castro</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://danielfonsecacastro.com.br/2010/06/25/o-que-testar-nos-controllers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Não faz teste porque não quer!</title>
		<link>http://danielfonsecacastro.com.br/2010/06/20/nao-faz-teste-porque-nao-quer/</link>
		<comments>http://danielfonsecacastro.com.br/2010/06/20/nao-faz-teste-porque-nao-quer/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 18:56:00 +0000</pubDate>
		<dc:creator>Daniel Fonseca Castro</dc:creator>
				<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[ASP.NET MVC 2]]></category>
		<category><![CDATA[Unit Test]]></category>

		<guid isPermaLink="false">/post/Nao-faz-teste-porque-nao-quer!.aspx</guid>
		<description><![CDATA[Conversando com um amigo ele disse que é difícil praticar teste, ele disse que ainda esta na faculdade e tem acesso apenas a versão express do Visual Studio, as versões express não suporta nenhum tipo de add-in,etc&#8230; Para resolver esse problema existe varias opções de framework, mais vou falar somente do NUnit.O NUnit é uma [...]]]></description>
			<content:encoded><![CDATA[<p>Conversando com um amigo ele disse que é difícil praticar teste, ele disse que ainda esta na faculdade e tem acesso apenas a versão express do Visual Studio, as versões express não suporta nenhum tipo de add-in,etc&#8230;</p>
<p>  Para resolver esse problema existe varias opções de framework, mais vou falar somente do NUnit.O NUnit é uma framework para unit test open source para todas as linguagens .NET  com a possibilidade de rodar os testes fora do Visual Studio, sendo assim o problema esta resolvido, você pode escrever os testes com as ferramentas express e depois rodar os testes com o NUnit, vamos ver como isso funciona na pratica.</p>
<p>Você precisa baixar o NUnit <a href="http://www.nunit.org/?p=download" target="_blank">http://www.nunit.org/?p=download</a> o setup inclui a framework de teste, outra de mock e um executável que vamos utilizar para rodar os testes, antes de iniciar vale uma olhada no Quick Start para conhece os atributos básicos <a href="http://www.nunit.org/index.php?p=quickStart&amp;r=2.5.5" target="_blank">http://www.nunit.org/index.php?p=quickStart&amp;r=2.5.5</a> , feito isso crie um  projeto ASP.NET MVC e um projeto do tipo Class Library que será o nosso projeto de teste, para esse exemplo estou  utilizando o Microsoft Visual Web Developer 2010 Express, para o projeto Class Library (projeto de teste) siga os passos abaixo:</p>
<ul style="list-style-type: decimal;">
<li>
	Adicione referência a DLL nunit.framework no projeto de teste, essa DLL esta dentro da pasta framework do diretório de instalação do NUnit, no meu caso ela ficou neste caminho  C:\Program Files (x86)\NUnit 2.5.5\bin\net-2.0\framework\nunit.framework.dll
  </li>
<li>Agora adicione as referências para o projeto ASP.NET MVC e para DLL System.Web.Mvc</li>
<li>Agora é só escreve os testes veja um exemplo abaixo</li>
</ul>
<pre class="brush: c#;toolbar: false">[TestFixture]
public class HomeControllerTest
{
    [Test]
    public void Index()
    {
        // Arrange
        HomeController controller = new HomeController();

        // Act
        ViewResult result = controller.Index() as ViewResult;

        // Assert
        ViewDataDictionary viewData = result.ViewData;
        Assert.AreEqual("Welcome to ASP.NET MVC!", viewData["Message"]);
    }

    [Test]
    public void About()
    {
        // Arrange
        HomeController controller = new HomeController();

        // Act
        ViewResult result = controller.About() as ViewResult;

        // Assert
        Assert.IsNotNull(result);
    }
}</pre>
<p>Para rodar os teste você precisa abrir o NUnit, no menu Project selecionar Add Assembly , procure a DLL do projeto Class Library, selecione os teste que deseja executar e clicar em Run, veja o resultado na imagem abaixo</p>
<p><img src="/imagens/nao-pratica-teste-porque-nao-quer-resultado.jpg" alt="Resultado Esperado"></p>
<p>Amigos é isso ai, motivos para testar você tem mais de mil, framework para teste não falta, então vamos testar!</p>
<p>Antes de finalizar vou deixar alguns links com outras opções, eu gosto muito do MbUnit <a href="http://www.mbunit.com/" target="_blank">http://www.mbunit.com/</a>, com o Gallio  fica melhor ainda <a href="http://www.gallio.org/" target="_blank">http://www.gallio.org/</a> e para executar os testes a partir do Visual Studio você pode utilizar o TestDriven.NET <a href="http://www.testdriven.net/" target="_blank">http://www.testdriven.net/</a>. Nem precisa dizer que o TestDriven.NET não funciona com as versões express </p>
<p>Baixe <a href="/arquivos/ProjetoAspNetMvc.rar">aqui</a> o projeto de exemplo é até a próxima!</p>
<p><strong>Daniel Fonseca Castro</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://danielfonsecacastro.com.br/2010/06/20/nao-faz-teste-porque-nao-quer/feed/</wfw:commentRss>
		<slash:comments>62</slash:comments>
		</item>
		<item>
		<title>Não se assuste esse ainda é o meu blog!</title>
		<link>http://danielfonsecacastro.com.br/2010/06/17/nao-se-assuste-esse-ainda-e-o-meu-blog/</link>
		<comments>http://danielfonsecacastro.com.br/2010/06/17/nao-se-assuste-esse-ainda-e-o-meu-blog/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 11:34:00 +0000</pubDate>
		<dc:creator>Daniel Fonseca Castro</dc:creator>
				<category><![CDATA[OFF]]></category>

		<guid isPermaLink="false">/post/Nao-se-assuste-esse-ainda-e-o-meu-blog!.aspx</guid>
		<description><![CDATA[Ainda não esta 100% falta alguns detalhes de layout , mais estou satisfeito com o resultado atual é muito ruim navegar pela web é encontrar outros blogs com o mesmo layout, acho que isso não vai mais acontece! . O legal desta repaginação foi descobrir alguns bugs, a próxima etapa é corrigir esses pequenos problemas [...]]]></description>
			<content:encoded><![CDATA[<p>Ainda não esta 100% falta alguns detalhes de layout , mais estou satisfeito com o resultado atual é  muito ruim navegar pela web  é encontrar outros blogs com o mesmo layout, acho que isso não vai mais acontece! .</p>
<p>O legal desta repaginação foi descobrir alguns bugs, a próxima etapa é corrigir esses pequenos problemas e fechar 100% das alterações de layout.</p>
<p>Você gostou da  nova cara do blog? Deixe seu comentário!</p>
<p><strong>Daniel Fonseca Castro</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://danielfonsecacastro.com.br/2010/06/17/nao-se-assuste-esse-ainda-e-o-meu-blog/feed/</wfw:commentRss>
		<slash:comments>56</slash:comments>
		</item>
		<item>
		<title>Select simples mais perigoso</title>
		<link>http://danielfonsecacastro.com.br/2010/06/12/select-simples-mais-perigoso/</link>
		<comments>http://danielfonsecacastro.com.br/2010/06/12/select-simples-mais-perigoso/#comments</comments>
		<pubDate>Sat, 12 Jun 2010 07:38:00 +0000</pubDate>
		<dc:creator>Daniel Fonseca Castro</dc:creator>
				<category><![CDATA[Entity Framework]]></category>

		<guid isPermaLink="false">/post/Select-simples-mais-perigoso.aspx</guid>
		<description><![CDATA[Sabe aquele obstáculo que parece ser a coisa mais simples do mundo? Pois é! Em um novo projeto com EF 1.0 surgiu uma necessidade simples, fazer um select utilizando Linq to Entites que retornasse todos os ids de um array de inteiro , como no exemplo abaixo: static void Main(string[] args) { NorthwindEntities context = [...]]]></description>
			<content:encoded><![CDATA[<p>Sabe aquele obstáculo que parece ser a coisa mais simples do mundo?</p>
<p>Pois é! Em um novo projeto com EF 1.0 surgiu uma necessidade simples, fazer um select utilizando Linq to Entites que retornasse todos os ids de um array de inteiro , como no exemplo abaixo:</p>
<pre class="brush: c#;toolbar: false">static void Main(string[] args)
{
    NorthwindEntities context = new NorthwindEntities();
    int[] ids = new int[] { 1, 2, 3 };
    var resultado = from product in context.Products
                    where ids.Contains(product.ProductID)
                    select product;

    foreach (var item in resultado)
        Console.WriteLine("Nome: {0}", item.ProductName);

    Console.Read();
}</pre>
<p>Super simples, esse código inclusive funciona perfeitamente no L2Q, mais no EF 1.0 uma exception do tipo NotSupportedException é lançada  com a seguinte mensagem de erro:</p>
<p><em>&#8220;LINQ to Entities não reconhece o método &#8216;Boolean Contains[Int32](System.Collections.Generic.IEnumerable`1[System.Int32], Int32)&#8217;, que não pode ser convertido em uma expressão de armazenamento.&#8221;</em></p>
<p>Fui pesquisar como resolver esse problema e a maioria das soluções que encontrei  &#8220;cheirava mal&#8221;, e as que não tinha cheiro nenhum eram complicadas demais para um problema tão pontual, quase todas as soluções seguia a lógica abaixo , com pouquíssimas variações.</p>
<pre class="brush: c#;toolbar: false">static void Main(string[] args)
{
    NorthwindEntities context = new NorthwindEntities();
    int[] ids = new int[] { 1, 2, 3 };
    var resultado = from product in context.Products.AsEnumerable()
                    where ids.Contains(product.ProductID)
                    select product;

    foreach (var item in resultado)
        Console.WriteLine("Nome: {0}", item.ProductName);

    Console.Read();
}</pre>
<p>Note a presença do método <strong>AsEnumerable()</strong> isso resolveu o problema, mais  conversando com outra pessoa questionei que esse código provavelmente trazia todos os dados da tabela para depois aplicar o filtro.</p>
<p>Utilize uma ferramenta open source <a target="_blank" href="http://code.google.com/p/sqlexpressprofiler/">http://code.google.com/p/sqlexpressprofiler/</a> para verifica se a afirmação estava correta, veja abaixo a consulta SQL gerada.</p>
<pre class="brush: c#;toolbar: false">SELECT 1 AS [C1],
[Extent1].[ProductID] AS [ProductID],
[Extent1].[ProductName] AS [ProductName],
[Extent1].[QuantityPerUnit] AS [QuantityPerUnit],
[Extent1].[UnitPrice] AS [UnitPrice],
[Extent1].[UnitsInStock] AS [UnitsInStock],
[Extent1].[UnitsOnOrder] AS [UnitsOnOrder],
[Extent1].[ReorderLevel] AS [ReorderLevel],
[Extent1].[Discontinued] AS [Discontinued],
[Extent1].[CategoryID] AS [CategoryID],
[Extent1].[SupplierID] AS [SupplierID]
FROM [dbo].[Products] AS [Extent1]</pre>
<p><strong>Para tudo!</strong> Select sem where e pedi para DBA pegar no seu pé e &#8220;tacar o pau&#8221; em todos ORMs do mundo! </p>
<p>Eu resolvi esse problema utilizando Entity SQL, veja o código abaixo:</p>
<pre class="brush: c#;toolbar: false">static void Main(string[] args)
{
    NorthwindEntities context = new NorthwindEntities();
    var resultado = context.Products.Where("it.ProductID IN {1,2,3}");

    foreach (var item in resultado)
        Console.WriteLine("Nome: {0}", item.ProductName);

    Console.Read();
}</pre>
<p>Talvez a minha solução não seja a mais adequada mais com certeza o select será gerado de forma correta, para finalizar eu tenho uma boa noticia nada disso é problema para o EF 4, então corra para VS 2010!</p>
<p><strong>Daniel Fonseca Castro</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://danielfonsecacastro.com.br/2010/06/12/select-simples-mais-perigoso/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Vídeo de demonstração do ASP.NET MVC Scaffold – Beta 1.0</title>
		<link>http://danielfonsecacastro.com.br/2010/05/24/video-de-demonstracao-do-asp-net-mvc-scaffold-%e2%80%93-beta-1-0/</link>
		<comments>http://danielfonsecacastro.com.br/2010/05/24/video-de-demonstracao-do-asp-net-mvc-scaffold-%e2%80%93-beta-1-0/#comments</comments>
		<pubDate>Mon, 24 May 2010 00:25:00 +0000</pubDate>
		<dc:creator>Daniel Fonseca Castro</dc:creator>
				<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[ASP.NET MVC 2]]></category>
		<category><![CDATA[ASP.NET MVC Scaffold]]></category>

		<guid isPermaLink="false">/post/Video-de-demonstracao-do-ASPNET-MVC-Scaffold-e28093-Beta-10.aspx</guid>
		<description><![CDATA[Segue vídeo de demonstração da versão atual do ASP.NET MVC Scaffold Link para o vídeo anterior http://www.danielfonsecacastro.com.br/post/2010/04/18/ASPNET-MVC-Scaffold-Video-de-demonstracao-da-versao-Preview-10.aspx Link para código fonte http://aspnetmvcscaffold.codeplex.com/SourceControl/list/changesets Link para versão setup http://aspnetmvcscaffold.codeplex.com/releases/view/45717 Daniel Fonseca Castro]]></description>
			<content:encoded><![CDATA[<p>Segue vídeo de demonstração da versão atual do ASP.NET MVC Scaffold</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/RsIZYLxsh0w&amp;hl=pt_BR&amp;fs=1&amp;"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/RsIZYLxsh0w&amp;hl=pt_BR&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></object></p>
<p>Link para o vídeo anterior </p>
<p><a href="/post/2010/04/18/ASPNET-MVC-Scaffold-Video-de-demonstracao-da-versao-Preview-10.aspx">http://www.danielfonsecacastro.com.br/post/2010/04/18/ASPNET-MVC-Scaffold-Video-de-demonstracao-da-versao-Preview-10.aspx</a></p>
<p>Link para código fonte </p>
<p><a href="http://aspnetmvcscaffold.codeplex.com/SourceControl/list/changesets">http://aspnetmvcscaffold.codeplex.com/SourceControl/list/changesets</a></p>
<p>Link para versão setup</p>
<p><a href="http://aspnetmvcscaffold.codeplex.com/releases/view/45717">http://aspnetmvcscaffold.codeplex.com/releases/view/45717</a></p>
<p><strong>Daniel Fonseca Castro</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://danielfonsecacastro.com.br/2010/05/24/video-de-demonstracao-do-asp-net-mvc-scaffold-%e2%80%93-beta-1-0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ASP.NET MVC Scaffold – Beta 1.0</title>
		<link>http://danielfonsecacastro.com.br/2010/05/22/asp-net-mvc-scaffold-%e2%80%93-beta-1-0/</link>
		<comments>http://danielfonsecacastro.com.br/2010/05/22/asp-net-mvc-scaffold-%e2%80%93-beta-1-0/#comments</comments>
		<pubDate>Sat, 22 May 2010 22:58:00 +0000</pubDate>
		<dc:creator>Daniel Fonseca Castro</dc:creator>
				<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[ASP.NET MVC 2]]></category>
		<category><![CDATA[ASP.NET MVC Scaffold]]></category>

		<guid isPermaLink="false">/post/ASPNET-MVC-Scaffold-e28093-Beta-10.aspx</guid>
		<description><![CDATA[Disponibilizei a versão beta do ASP.NET MVC Scaffold ,essa versão corrige muitos problemas da versão anterior, por exemplo , o projeto de setup esta mais inteligente, a integração com Visual Studio também esta melhor e os templates edit e details agora utilizam os HTML helpers EditorForModel e DisplayForModel possibilitando a utilização de T4. Baixe a [...]]]></description>
			<content:encoded><![CDATA[<p>Disponibilizei a versão beta do ASP.NET MVC Scaffold ,essa versão corrige muitos problemas da versão anterior, por exemplo , o projeto de setup esta mais inteligente, a integração com Visual Studio também esta melhor e os templates edit  e details agora utilizam os HTML helpers EditorForModel e DisplayForModel possibilitando a utilização de T4. Baixe a versão atual neste link <a href="http://aspnetmvcscaffold.codeplex.com/releases/view/45717" target="_blank">http://aspnetmvcscaffold.codeplex.com/releases/view/45717</a>  e deixe seu comentário. </p>
<p>O mais rápido possível vou disponibilizar um vídeo de demonstração desta versão, até la!</p>
<p><strong>Daniel Fonseca Castro</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://danielfonsecacastro.com.br/2010/05/22/asp-net-mvc-scaffold-%e2%80%93-beta-1-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JQuery: ASP.NET MVC com AJAX retornando JSON</title>
		<link>http://danielfonsecacastro.com.br/2010/04/20/jquery-asp-net-mvc-com-ajax-retornando-json/</link>
		<comments>http://danielfonsecacastro.com.br/2010/04/20/jquery-asp-net-mvc-com-ajax-retornando-json/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 18:00:00 +0000</pubDate>
		<dc:creator>Daniel Fonseca Castro</dc:creator>
				<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[ASP.NET MVC 2]]></category>
		<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">/post/JQuery-ASPNET-MVC-com-AJAX-retornando-JSON.aspx</guid>
		<description><![CDATA[O JQuery oferece algumas opções para fazer suas solicitações AJAX com retorno JSON, neste post vamos analisar três opções, uma utilizando o método getJSON outra com método post e por fim uma com o método ajax. Antes de começar os exemplos com JQuery precisamos preparar a aplicação no lado do servidor. Para o modelo vou [...]]]></description>
			<content:encoded><![CDATA[<p>O JQuery oferece algumas opções para fazer suas solicitações AJAX com  retorno JSON, neste post  vamos analisar três opções, uma utilizando o método getJSON outra com método post e por fim uma com o método ajax.</p>
<p>Antes de começar os exemplos com JQuery precisamos preparar a aplicação no lado do servidor. Para o modelo vou utilizar o Entity Framework com o  banco de dados Northwind , no EF vou manter todas as configurações padrão e vou utilizar a entidade Customers, após as configurações do EF podemos criar o &#8220;CustomersController&#8221;, conforme o código abaixo.</p>
<pre class="brush: c#;toolbar: false">public class CustomersController : Controller
{
    //
    // GET: /Customers/

    public ActionResult Index()
    {
        return View();
    }

    public ActionResult ActionGetJSON(string termo)
    {
        Entities context = new Entities();
        var resultado = from customer in context.Customers
                        where customer.CompanyName.Contains(termo)
                        select new { CompanyName = customer.CompanyName, CustomerID = customer.CustomerID };
        return Json(resultado, JsonRequestBehavior.AllowGet);
    }

    [HttpPost]
    public ActionResult ActionPostJSON(string termo)
    {
        Entities context = new Entities();
        var resultado = from customer in context.Customers
                        where customer.CompanyName.Contains(termo)
                        select new { CompanyName = customer.CompanyName, CustomerID = customer.CustomerID };
        return Json(resultado);
    }
}</pre>
<p>Para montar os nosso exemplos vou utilizar as Actions &#8220;ActionGetJSON &#8221; e &#8220;ActionPostJSON&#8221;, como você já deve ter percebido uma é acessada via GET e a outra via POST, note que a Action acessada via GET passa dois parâmetros para o método Json que é responsável pela serialização do objeto, se você não passar o segundo parâmetro indicando que o GET é permitido uma execption será lançada.</p>
<p>Agora podemos definir a view Index,veja o código abaixo.</p>
<pre class="brush: c#;toolbar: false">&lt;div&gt;
    &lt;%=Html.TextBox("termo") %&gt;
    &lt;button id="btnBuscarComGetJson"&gt;Buscar com mÃ©todo getJSON&lt;/button&gt;
    &lt;button id="btnBuscarComPost"&gt;Buscar com mÃ©todo  post&lt;/button&gt;
    &lt;button id="btnBuscarComAjax"&gt;Buscar com mÃ©todo ajax&lt;/button&gt;
&lt;/div&gt;

&lt;div id="resultado"&gt;&lt;/div&gt;</pre>
<p>Vamos definir os eventos onclick dos três botões abaixo, em um arquivo JavaScript  separado do HTML, esse arquivo será criado no decorrer do post.</p>
<p><strong>Método getJSON</strong></p>
<p>O nome do método define o que ele faz, ele faz uma solicitação get e espera um retorno JSON, ele espera três parâmetros url,data e callback.O parâmetro url: define a url da solicitação,data: define os parâmetros da solicitação e callback: define a função que vai tratar o retorno do servidor, a função de callback será executada somente se a solicitação for executada com sucesso.</p>
<pre class="brush: javascript;toolbar: false">function btnBuscarComGetJson_click() {
    $.getJSON("/customers/ActionGetJSON/", { termo: $("#termo").val() }, function(data) {
        $("#resultado").empty();
        $("#resultado").append("&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Company Name&lt;/th&gt;&lt;th&gt;Customer ID&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody id='bodyTable'&gt;");

        $(data).each(function() {
            $("#bodyTable").append("&lt;tr&gt;&lt;td&gt;" + this.CompanyName + "&lt;/td&gt;&lt;td&gt;" + this.CustomerID + "&lt;/td&gt;&lt;/tr&gt;");
        });

        $("#resultado").append("&lt;/tbody&gt;&lt;/table&gt;");
    });
}</pre>
<p>O código acima define o método que trata o evento onclick do botão &#8220;btnBuscarComGetJson&#8221;, a função de callback que foi definida de forma anônima escreve uma table dentro da DIV &#8220;resultado&#8221;.</p>
<p><strong>Método post</strong></p>
<p>Esse método também diz o que faz, ele faz uma solicitação post, você pode passar quatro parâmetros para esse método url,data,callback que já conhecemos e dataType.O parâmetro dataType defini o tipo de retorno, ele é um parâmetro opcional caso você não defina o tipo de retorno ele será identificado automaticamente.</p>
<pre class="brush: javascript;toolbar: false">function btnBuscarComPost_click() {
    $.post("/customers/ActionPostJSON/", { termo: $("#termo").val() }, function(data) {
        $("#resultado").empty();
        $("#resultado").append("&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Company Name&lt;/th&gt;&lt;th&gt;Customer ID&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody id='bodyTable'&gt;");

        $(data).each(function() {
            $("#bodyTable").append("&lt;tr&gt;&lt;td&gt;" + this.CompanyName + "&lt;/td&gt;&lt;td&gt;" + this.CustomerID + "&lt;/td&gt;&lt;/tr&gt;");
        });

        $("#resultado").append("&lt;/tbody&gt;&lt;/table&gt;");
    },"json");
}</pre>
<p>O método acima define a função que vai tratar o evento onclick do botão &#8220;btnBuscarComPost&#8221;, ele é muito parecido com o método  &#8220;getJSON&#8221;, a única diferença é o quarto parâmetro que foi definido como JSON.</p>
<p><strong>Método ajax</strong></p>
<p>O método ajax é o mais completo de todos, ele recebe apenas um parâmetro que é um objeto com todas configurações, para esse exemplo eu vou definir um objeto com sete propriedades, você pode ver a lista completa de opção na documentação <a href="http://api.jquery.com/jQuery.ajax/" target="_blank">http://api.jquery.com/jQuery.ajax/</a></p>
<pre class="brush: javascript;toolbar: false">function btnBuscarComAjax_click() {
    $.ajax({
        url: "/customers/ActionPostJSON/",
        data: { termo: $("#termo").val() },
        type:"post",
        dataType: "json",
        beforeSend: function(XMLHttpRequest) {
            alert('Inicio....');
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            alert('Erro....');
        },
        success: function(data, textStatus, XMLHttpRequest) {
            $("#resultado").empty();
            $("#resultado").append("&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Company Name&lt;/th&gt;&lt;th&gt;Customer ID&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody id='bodyTable'&gt;");

            $(data).each(function() {
                $("#bodyTable").append("&lt;tr&gt;&lt;td&gt;" + this.CompanyName + "&lt;/td&gt;&lt;td&gt;" + this.CustomerID + "&lt;/td&gt;&lt;/tr&gt;");
            });

            $("#resultado").append("&lt;/tbody&gt;&lt;/table&gt;");
        }
    });
}</pre>
<p>O método acima define a função que vai tratar o evento onclick do botão &#8220;btnBuscarComAjax&#8221;,  o objeto de configuração passado como parâmetro para a função ajax possui sete propriedades:</p>
<p>url :define a url da solicitação.</p>
<p>data: defini os parâmetros.</p>
<p>type: define o tipo de solicitação os mais comuns são GET ou POST.</p>
<p>dataType: define o tipo de retorno os mais comuns são xml, json, script, ou html.</p>
<p>beforeSend: define a função que será executada antes da solicitação, você pode utilizar esse método para fazer confirmações e validações, essa função pode ser utilizada também  para mostrar um modal com uma animação ou um simples &#8220;Aguarde&#8230;&#8221;.</p>
<p>error: define a função que será executada caso ocorra algum erro na solicitação.</p>
<p>success: define a função que vai tratar o resultado quando a função for executada com sucesso.</p>
<p>Para finalizar falta apenas adicionar o código que registra o evento click para os três botões.</p>
<pre class="brush: javascript;toolbar: false">$(document).ready(function() {
    $("#btnBuscarComGetJson").click(btnBuscarComGetJson_click);
    $("#btnBuscarComPost").click(btnBuscarComPost_click);
    $("#btnBuscarComAjax").click(btnBuscarComAjax_click);
});</pre>
<p>Acho que deu para perceber que o método ajax é o mais flexível de todos, a partir deste método você pode criar rotinas  especificas para sua aplicação, por exemplo, você pode criar um método  que utiliza o método ajax e colocar um loading padrão para todas solicitações, colocar uma mensagem de erro padrão,tratar o resultado de forma padrão em fim as possibilidades são muitas.</p>
<p>Os método getJSON e post são excelentes opções, mais por padrão eles não tem suporte a métodos auxiliares ,por exemplo, se eu quiser fazer algum tratamento antes das minhas solicitações ou tratar erros  eles não possui definições para isso, você poderia utilizar métodos globais que o JQuery disponibiliza para resolver esse problema, mais isso é assunto para outro post.</p>
<p><a href="/arquivos/JQueryJsonExemplo.rar">Baixe aqui o fonte em C# ou VB.NET</a></p>
<p><strong>Daniel Fonseca Castro</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://danielfonsecacastro.com.br/2010/04/20/jquery-asp-net-mvc-com-ajax-retornando-json/feed/</wfw:commentRss>
		<slash:comments>151</slash:comments>
		</item>
	</channel>
</rss>

