<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>ScottGu's Blog em Português</title><link>http://weblogs.asp.net/scottguportuguese/default.aspx</link><description>Scott Guthrie vive em Seattle, EUA e trabalha para a Microsoft</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/scottguportuguese" type="application/rss+xml" /><item><title>Instalador da Plataforma Web da Microsoft</title><link>http://feedproxy.google.com/~r/scottguportuguese/~3/G_0WKa2dXiM/instalador-da-plataforma-web-da-microsoft.aspx</link><pubDate>Tue, 02 Jun 2009 06:21:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7110506</guid><dc:creator>Leniel Macaferi</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://weblogs.asp.net/scottguportuguese/rsscomments.aspx?PostID=7110506</wfw:commentRss><wfw:comment>http://weblogs.asp.net/scottguportuguese/commentapi.aspx?PostID=7110506</wfw:comment><comments>http://weblogs.asp.net/scottguportuguese/archive/2009/06/02/instalador-da-plataforma-web-da-microsoft.aspx#comments</comments><description>&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;Um dos lançamentos interessantes que estão aparecendo neste ano é um pequeno gerenciador de downloads - o Instalador da Plataforma Web da Microsoft - que torna a instalação e configuração das camadas do servidor web e do desenvolvimento para web extremamente fácil. Esta é uma ferramenta grátis, a qual está disponível para download a partir do site &lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;a href="http://www.microsoft.com/web" target="_blank"&gt;www.microsoft.com/web&lt;/a&gt; (aqui está o &lt;/font&gt;&lt;/font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;a href="http://www.microsoft.com/web/downloads/platform.aspx" target="_blank"&gt;link direto para o instalador&lt;/a&gt;&lt;/font&gt;&lt;/font&gt; &lt;font&gt;&lt;font face="arial" size="2"&gt; – escolha a versão 2.0). A ferramenta funciona com Windows XP, Vista, Windows 7, Windows Server 2003 e Windows Server 2008.&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;    
&lt;p&gt;O Instalador da Plataforma Web provê uma maneira fácil para rapidamente instalar e customizar todo o software que você precisa para desenvolver e publicar web sites e aplicações em uma máquina Windows. A ferramenta automaticamente analisa o que o seu sistema já tem instalado, permite a você facilmente marcar componentes adicionais para serem incluídos e então automatiza o processo de instalação de todos os componentes de uma só vez quando você clica no botão instalar (evitando que você instale manualmente cada componente).&lt;/p&gt;

&lt;p&gt;&lt;img src="http://scottguimages.s3.amazonaws.com/webpi2.PNG" mce_src="http://scottguimages.s3.amazonaws.com/webpi2.PNG" width="690" height="512"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Por exemplo, você pode clicar na seção Servidor Web "Web Server" acima para customizar os módulos individuais do servidor web IIS instalado na máquina. Isto inclui ambos os módulos pré-instalados que acompanham o Windows (como o módulo para navegação em diretório), como também módulos adicionais disponíveis através de downloads separados. A seguir eu selecionei dois módulos adicionais &lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;– os módulos de Roteamento de Requisições da Aplicação &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;(Application
 Request Routing)&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt; e Reescrita de URL (&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;URL 
Rewrite)&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;– para que os mesmos sejam instalados:&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;img src="http://scottguimages.s3.amazonaws.com/webpi3.PNG" mce_src="http://scottguimages.s3.amazonaws.com/webpi3.PNG" width="690" height="512"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;O módulo para Reescrita de URL é um módulo gratuito da Microsoft que permite a você publicar URLs customizadas para seus sites visando otimizá-los para os motores de busca (search engine optimization - SEO). Você pode reforçar as regras de SEO (tornar o uso de letras maiúsculas/minúsculas consistente, inclusão de palavras-chave, etc) e customizar como seu site aparecerá em uma perspectiva externa da maneira que você quiser (a ferramenta de administração irá ajudá-lo até mesmo a escrever regras usando expressões regulares):&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;img src="http://scottguimages.s3.amazonaws.com/webpi4.PNG" mce_src="http://scottguimages.s3.amazonaws.com/webpi4.PNG" width="690" height="512"&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;O módulo de &lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;Roteamento de Requisições da Aplicação é um módulo gratuito da Microsoft que suporta cenários no estilo de &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt; forward-proxy e permite o balanceamento de carga dinâmico das requisições feitas a múltiplas máquinas servidoras web (permitindo a você expandir, mover máquinas para dentro do perímetro de um firewall DMZ e trazer máquinas para dentro ou para fora de uma fazenda de servidores sem causar interrupção do serviço).&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Em adição à Reescrita de URL e &lt;font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;Roteamento de Requisições da Aplicação, existem dezenas de outros módulos para o servidor web que você pode selecionar para habilitar WebDAV, FTP seguro, publicação automatizada, gerenciamento remoto de banco de dados através da ferramenta admin do IIS para cenários de hospedagem, cenários de streaming a partir de um servidor multimídia, e mais. Você pode também instalar componentes adicionais relativos à arquitetura web como ASP.NET MVC, .NET 3.5 SP1, SQL Express e ferramentas de administração associadas, &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt; Visual Web 
Developer 
2008 Express, e mais.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;h3&gt;&lt;u&gt;Galeria de Aplicações Web do Windows&lt;/u&gt;&lt;/h3&gt;
    
&lt;p&gt;O instalador da plataforma web também está integrado com a nova Galeria de Aplicações Web do Windows agora online: &lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;a href="http://www.microsoft.com/web/gallery" title="http://www.microsoft.com/web/gallery" target="_blank"&gt;www.microsoft.com/web/gallery&lt;/a&gt;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
    
&lt;p&gt;Esta galeria permite a você facilmente instalar aplicações web existentes no seu servidor. A galeria contém uma variedade de aplicações .NET populares e de código aberto (como &lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;DotNetNuke, ScrewTurn Wiki e Umbraco CMS) como também aplicações de código aberto PHP (incluindo &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;
WordPress e Drupal). Você pode facilmente navegar e instalá-las usando o Instalador da Plataforma Web como também (simplesmente clicar na aba Aplicações Web "Web Applications" e marcar as aplicações que você quer instalar):&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;img src="http://scottguimages.s3.amazonaws.com/webpi5.PNG" mce_src="http://scottguimages.s3.amazonaws.com/webpi5.PNG" width="690" height="512"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;Além de fazer o download da aplicação, o instalador da plataforma web irá criar um novo site/aplicação raiz e configurará os detalhes apropriados e opcionalmente pode instalar o banco de dados. &lt;br&gt;&lt;/p&gt;
    &lt;h3&gt;&lt;u&gt;Sumário&lt;/u&gt;&lt;/h3&gt;    
&lt;p&gt;Se você ainda não fez o download do Instalador da Plataforma Web eu recomendaria que você desse uma olhada nele. Eu acho que você perceberá que o instalador torna muito mais fácil configurar e obter uma máquina pronta para uso, e torna muito mais fácil encontrar e instalar vários componentes da pilha do servidor web do Windows, como também encontrar e instalar aplicações para usar no servidor web.&lt;br&gt;Com o tempo você nos verá entregando mais e mais funcionalidades desta forma.&lt;/p&gt;

&lt;p&gt;Você pode fazer o&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt; &lt;a href="http://www.microsoft.com/web/downloads/platform.aspx" target="_blank"&gt;download&lt;/a&gt; e começar a usar o Instalador da Plataforma Web 2.0 Beta hoje. Nós lançaremos a versão final neste verão.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; &lt;/p&gt;
    
&lt;p&gt;Espero que ajude,&lt;/p&gt;
    
&lt;p&gt;Scott&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;span style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: 12px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px;" class="Apple-style-span"&gt;Texto
 traduzido do&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2009/06/02/microsoft-web-platform-installer.aspx" style="color: rgb(51, 153, 255);" target="_blank" mce_href="http://weblogs.asp.net/scottgu/archive/2009/06/02/microsoft-web-platform-installer.aspx"&gt;post&lt;/a&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;original por&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://leniel.net" style="color: rgb(0, 102, 204);" title="Leniel Macaferi's blog" target="_blank" mce_href="http://leniel.net"&gt;Leniel Macaferi&lt;/a&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;/p&gt;
&lt;/font&gt;&lt;/p&gt;
    &lt;/font&gt; &lt;/p&gt;
&lt;/font&gt;&lt;/p&gt;

&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7110506" width="1" height="1"&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/p0AOlkUdRPWrXEcX39WI6zk38g8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/p0AOlkUdRPWrXEcX39WI6zk38g8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/p0AOlkUdRPWrXEcX39WI6zk38g8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/p0AOlkUdRPWrXEcX39WI6zk38g8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scottguportuguese/~4/G_0WKa2dXiM" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Novidades+da+Comunidade/default.aspx">Novidades da Comunidade</category><feedburner:origLink>http://weblogs.asp.net/scottguportuguese/archive/2009/06/02/instalador-da-plataforma-web-da-microsoft.aspx</feedburner:origLink></item><item><title>LIDNUG: Chat Virtual Gratuito Comigo Hoje </title><link>http://feedproxy.google.com/~r/scottguportuguese/~3/o57SML4Tgp4/LIDNUG-Chat-Virtual-Gratuito-Comigo-Hoje.aspx</link><pubDate>Wed, 27 May 2009 03:47:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7104434</guid><dc:creator>Leniel Macaferi</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://weblogs.asp.net/scottguportuguese/rsscomments.aspx?PostID=7104434</wfw:commentRss><wfw:comment>http://weblogs.asp.net/scottguportuguese/commentapi.aspx?PostID=7104434</wfw:comment><comments>http://weblogs.asp.net/scottguportuguese/archive/2009/05/27/LIDNUG-Chat-Virtual-Gratuito-Comigo-Hoje.aspx#comments</comments><description>&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* Link unit 728x15, created 7/3/09 */
google_ad_slot = "8718436762";
google_ad_width = 728;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;

&lt;p&gt;LIDNUG (&lt;font&gt;&lt;font face="arial" size="2"&gt;Linked .NET Users Group - &lt;/font&gt;&lt;/font&gt;Grupo de Usuários .NET Unidos) está sediando um chat online comigo hoje (Quarta-feira) a partir das 03:30 até 05:00 da tarde. Todos estão liberados para participar do chat e os assuntos discutidos estão abertos ao público - assim, traga suas perguntas!&lt;/p&gt;

&lt;p&gt;Clique &lt;a href="http://events.linkedin.com/LIDNUG-ScottGu-talks-shop-developers/pub/60571" target="_blank" mce_href="http://events.linkedin.com/LIDNUG-ScottGu-talks-shop-developers/pub/60571"&gt;aqui&lt;/a&gt; para mais informações sobre como se registrar e participar.&lt;/p&gt;

&lt;p&gt;Espero conversar mais com você,&lt;/p&gt;

&lt;p&gt;Scott &lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Atualização do dia 30 de Maio&lt;/b&gt;: Se você perdeu o chat, você pode vê-lo online aqui: &lt;a href="http://www.lidnug.org/" target="_blank" mce_href="http://www.lidnug.org/"&gt;http://www.lidnug.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;span style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: 12px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px;" class="Apple-style-span"&gt;(Texto
 traduzido do&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2009/05/27/lidnug-free-online-virtual-chat-with-me-today.aspx" style="color: rgb(51, 153, 255);" target="_blank" mce_href="http://weblogs.asp.net/scottgu/archive/2009/05/27/lidnug-free-online-virtual-chat-with-me-today.aspx"&gt;post&lt;/a&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;original por&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://leniel.net" style="color: rgb(0, 102, 204);" title="Leniel Macaferi's blog" target="_blank" mce_href="http://leniel.net"&gt;Leniel Macaferi&lt;/a&gt;.)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; &lt;br&gt;&lt;/p&gt;

&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7104434" width="1" height="1"&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mXU26jVPjsxwdBIsRsh8WVO3HQk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mXU26jVPjsxwdBIsRsh8WVO3HQk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mXU26jVPjsxwdBIsRsh8WVO3HQk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mXU26jVPjsxwdBIsRsh8WVO3HQk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scottguportuguese/~4/o57SML4Tgp4" height="1" width="1"/&gt;</description><feedburner:origLink>http://weblogs.asp.net/scottguportuguese/archive/2009/05/27/LIDNUG-Chat-Virtual-Gratuito-Comigo-Hoje.aspx</feedburner:origLink></item><item><title>Tutorial ASP.NET MVC “NerdDinner” Grátis agora em HTML</title><link>http://feedproxy.google.com/~r/scottguportuguese/~3/jwAezBXYjjY/Tutorial-ASP.NET-MVC-_1C20_NerdDinner_1D20_-Gratis-agora-em-HTML.aspx</link><pubDate>Tue, 28 Apr 2009 02:44:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7070113</guid><dc:creator>Leniel Macaferi</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://weblogs.asp.net/scottguportuguese/rsscomments.aspx?PostID=7070113</wfw:commentRss><wfw:comment>http://weblogs.asp.net/scottguportuguese/commentapi.aspx?PostID=7070113</wfw:comment><comments>http://weblogs.asp.net/scottguportuguese/archive/2009/04/28/Tutorial-ASP.NET-MVC-_1C20_NerdDinner_1D20_-Gratis-agora-em-HTML.aspx#comments</comments><description>&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* Link unit 728x15, created 7/3/09 */
google_ad_slot = "8718436762";
google_ad_width = 728;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;&lt;img src="http://weblogs.asp.net/blogs/scottgu/bookcover1_6CAECF94.png" mce_src="http://weblogs.asp.net/blogs/scottgu/bookcover1_6CAECF94.png" width="190" align="right" height="240"&gt;Mês passado eu postei sobre um tutorial ASP.NET MVC grátis de ponta a ponta chamado "NerdDinner" que escrevi para o livro &lt;font&gt;&lt;font face="arial" size="2"&gt; &lt;a href="http://www.amazon.com/gp/product/0470384611?ie=UTF8&amp;amp;tag=scoblo04-20&amp;amp;linkCode=xm2&amp;amp;camp=1789&amp;amp;creativeASIN=0470384611" target="_blank"&gt;Professional ASP.NET MVC 1.0&lt;/a&gt; da Wrox Press. O livro já foi lançado e está sendo entregue pela &lt;/font&gt;&lt;/font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt; &lt;a href="http://www.amazon.com/gp/product/0470384611?ie=UTF8&amp;amp;tag=scoblo04-20&amp;amp;linkCode=xm2&amp;amp;camp=1789&amp;amp;creativeASIN=0470384611" target="_blank"&gt;Amazon&lt;/a&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;O tutorial NerdDinner ensina como construir uma pequena, mas completa aplicação usando ASP.NET MVC e introduz alguns dos conceitos chave por trás desta tecnologia. Você pode fazer o download de uma versão em PDF do tutorial &lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;a href="http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-nerdinner_v1.pdf" target="_blank"&gt;aqui&lt;/a&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
    
&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;&lt;b&gt;Tutorial NerdDinner Agora Também Disponível em  HTML&lt;/b&gt;&lt;/p&gt;
    
&lt;p&gt;Alguns minutos atrás eu terminei de publicar uma&lt;a href="http://nerddinnerbook.s3.amazonaws.com/Intro.htm" target="_blank" mce_href="http://nerddinnerbook.s3.amazonaws.com/Intro.htm"&gt; versão em HTML do tutorial NerdDinner&lt;/a&gt;. Você pode ler o mesmo de graça&amp;nbsp;&lt;font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;a href="http://nerddinnerbook.s3.amazonaws.com/Intro.htm" target="_blank"&gt;aqui&lt;/a&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
    
&lt;p&gt;Eu dividi o tutorial em 12 segmentos para tornar a leitura mais agradável. Eu também aumentei o tamanho das screenshots, e usei um&amp;nbsp;&lt;font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;a href="http://code.google.com/p/syntaxhighlighter/" target="_blank"&gt;ótimo
destacador de sintaxe&lt;/a&gt; que &lt;a href="http://www.hanselman.com/blog/" target="_blank"&gt;Scott Hanselman&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; me ajudou a usar. Eu realmente acho que o resultado final é muito mais fácil de ler do que uma versão em PDF.&lt;br&gt;&lt;/p&gt;
    
&lt;p&gt;A seguir estão links para diferentes seguimentos do tutorial NerdDinner:&lt;/p&gt;
&lt;/font&gt;&lt;font face="arial" size="2"&gt;
&lt;ul&gt;
&lt;li style="padding: 2px;"&gt;&lt;a href="http://nerddinnerbook.s3.amazonaws.com/Intro.htm"&gt;Introdução ao Tutorial NerdDinner&lt;/a&gt;&lt;/li&gt;

&lt;li style="padding: 2px;"&gt;&lt;a href="http://nerddinnerbook.s3.amazonaws.com/Part1.htm"&gt;Como criar um novo Projeto ASP.NET MVC&lt;/a&gt;&lt;/li&gt;

&lt;li style="padding: 2px;"&gt;&lt;a href="http://nerddinnerbook.s3.amazonaws.com/Part2.htm"&gt;Como criar um banco de dados&lt;/a&gt;&lt;/li&gt;

&lt;li style="padding: 2px;"&gt;&lt;a href="http://nerddinnerbook.s3.amazonaws.com/Part3.htm"&gt;Como construir um modelo com validações para as regras de negócio&lt;/a&gt;&lt;/li&gt;

&lt;li style="padding: 2px;"&gt;&lt;a href="http://nerddinnerbook.s3.amazonaws.com/Part4.htm"&gt;Como usar Controladores e Visões para implementar uma UI/interface do usuário com listagem/detalhamento&lt;/a&gt;&lt;/li&gt;

&lt;li style="padding: 2px;"&gt;&lt;a href="http://nerddinnerbook.s3.amazonaws.com/Part5.htm"&gt;Como prover suporte à entrada de dados de formulário CRUD (create/criar, read/ler, update/atualizar, delete/deletar)&lt;/a&gt;&lt;/li&gt;

&lt;li style="padding: 2px;"&gt;&lt;a href="http://nerddinnerbook.s3.amazonaws.com/Part6.htm"&gt;Como usar o objeto ViewData e implementar classes ViewModel&lt;/a&gt;&lt;/li&gt;

&lt;li style="padding: 2px;"&gt;&lt;a href="http://nerddinnerbook.s3.amazonaws.com/Part7.htm"&gt;Como reusar UI usando master pages/páginas modelo e partials/parciais&lt;/a&gt; &lt;/li&gt;

&lt;li style="padding: 2px;"&gt;&lt;a href="http://nerddinnerbook.s3.amazonaws.com/Part8.htm"&gt;Como implementar paginação eficiente para os dados&lt;/a&gt;&lt;/li&gt;

&lt;li style="padding: 2px;"&gt;&lt;a href="http://nerddinnerbook.s3.amazonaws.com/Part9.htm"&gt;Como garantir a segurança da aplicação usando autenticação e autorização&lt;/a&gt;&lt;/li&gt;

&lt;li style="padding: 2px;"&gt;&lt;a href="http://nerddinnerbook.s3.amazonaws.com/Part10.htm"&gt;Como usar AJAX para entregar atualizações dinâmicas&lt;/a&gt;&lt;/li&gt;

&lt;li style="padding: 2px;"&gt;&lt;a href="http://nerddinnerbook.s3.amazonaws.com/Part11.htm"&gt;Como usar AJAX para implementar cenários que usam mapas&lt;/a&gt;&lt;/li&gt;

&lt;li style="padding: 2px;"&gt;&lt;a href="http://nerddinnerbook.s3.amazonaws.com/Part12.htm"&gt;Como tornar viável a automatização dos testes unitários&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/font&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;Espero que ajude,&lt;/p&gt;
    
&lt;p&gt;Scott&lt;/p&gt;

&lt;p&gt;&lt;font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;span style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: 12px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px;" class="Apple-style-span"&gt;(Texto
 traduzido do&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2009/04/28/free-asp-net-mvc-nerddinner-tutorial-now-in-html.aspx" style="color: rgb(51, 153, 255);" target="_blank" mce_href="http://weblogs.asp.net/scottgu/archive/2009/04/28/free-asp-net-mvc-nerddinner-tutorial-now-in-html.aspx"&gt;post&lt;/a&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;original por&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://leniel.net" style="color: rgb(0, 102, 204);" title="Leniel Macaferi's blog" target="_blank" mce_href="http://leniel.net"&gt;Leniel Macaferi&lt;/a&gt;.)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;/p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;/font&gt;&lt;/p&gt;

&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7070113" width="1" height="1"&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zSSbUqg2TTLzhxqNztNsNql3oec/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zSSbUqg2TTLzhxqNztNsNql3oec/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zSSbUqg2TTLzhxqNztNsNql3oec/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zSSbUqg2TTLzhxqNztNsNql3oec/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scottguportuguese/~4/jwAezBXYjjY" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/MVC/default.aspx">MVC</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Novidades+da+Comunidade/default.aspx">Novidades da Comunidade</category><feedburner:origLink>http://weblogs.asp.net/scottguportuguese/archive/2009/04/28/Tutorial-ASP.NET-MVC-_1C20_NerdDinner_1D20_-Gratis-agora-em-HTML.aspx</feedburner:origLink></item><item><title>ASP.NET MVC 1.0</title><link>http://feedproxy.google.com/~r/scottguportuguese/~3/09n00BXLlV0/asp-dot-net-mvc-1-0.aspx</link><pubDate>Wed, 01 Apr 2009 22:58:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7025898</guid><dc:creator>Leniel Macaferi</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://weblogs.asp.net/scottguportuguese/rsscomments.aspx?PostID=7025898</wfw:commentRss><wfw:comment>http://weblogs.asp.net/scottguportuguese/commentapi.aspx?PostID=7025898</wfw:comment><comments>http://weblogs.asp.net/scottguportuguese/archive/2009/04/01/asp-dot-net-mvc-1-0.aspx#comments</comments><description>&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* Link unit 728x15, created 7/3/09 */
google_ad_slot = "8718436762";
google_ad_width = 728;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;

&lt;p&gt;&lt;img src="http://weblogs.asp.net/blogs/scottgu/mvcsource1_7F7BFE6E.png" mce_src="http://weblogs.asp.net/blogs/scottgu/mvcsource1_7F7BFE6E.png" width="275" align="right" height="402"&gt;Duas semanas atrás &lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;a href="http://weblogs.asp.net/scottguportuguese/archive/2009/04/01/mix-2009.aspx" mce_href="http://weblogs.asp.net/scottguportuguese/archive/2009/04/01/mix-2009.aspx" target="_blank"&gt;na MIX&lt;/a&gt; nós lançamos a ASP.NET MVC 1.0. ASP.NET MVC é um produto Microsoft gratuito, amplamente suportado que permite aos desenvolvedores criar facilmente aplicações que usam o padrão de projeto model-view-controller (modelo-visão-controlador). A ASP.NET MVC provê uma opção para programação web "mais rápida" para a ASP.NET. Esta permite um controle completo da marcação HTML e da estrutura da URL e facilita o teste unitário e o fluxo de desenvolvimento baseado em testes.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;h4&gt;&lt;u&gt;Disponibilizando o código fonte da ASP.NET MVC através da MS-PL&lt;/u&gt;&lt;/h4&gt;    
&lt;p&gt;Estou entusiasmado hoje ao anunciar que nós também estamos liberando o código fonte da ASP.NET MVC através da Microsoft Public Licence (MS-PL) (Licença Pública da Microsoft). MS-PL é uma &lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;a href="http://www.opensource.org/licenses/ms-pl.html" target="_blank"&gt;licença de código fonte aberto aprovada pela OSI&lt;/a&gt;. A MS-PL não contém restrições de plataforma e provê amplos direitos para modificar e redistribuir o código fonte. Você pode ler o texto da MS-PL no endereço: &lt;/font&gt;&lt;/font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;a href="http://www.opensource.org/licenses/ms-pl.html" title="http://www.opensource.org/licenses/ms-pl.html" target="_blank"&gt;http://www.opensource.org/licenses/ms-pl.html&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;h4&gt;&lt;u&gt;Aprendendo mais sobre ASP.NET MVC&lt;/u&gt;&lt;/h4&gt;    
&lt;p&gt;Para aprender mais sobre a ASP.NET MVC, você pode ler meu &lt;a href="http://weblogs.asp.net/scottguportuguese/archive/2009/03/10/tutorial-ebook-sobre-asp-dot-net-mvc-gratis.aspx" target="_blank" mce_href="http://weblogs.asp.net/scottguportuguese/archive/2009/03/10/tutorial-ebook-sobre-asp-dot-net-mvc-gratis.aspx"&gt;tutorial gratuito ASP.NET MVC em PDF&lt;/a&gt; que cobre a construção de uma aplicação do início ao fim (começando literalmente com o menu Arquivo-&amp;gt;Novo Projeto).&lt;/p&gt;
Aconteceram ótimas palestras sobre ASP.NET MVC na MIX este ano. A seguir estão links para algumas delas:&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://videos.visitmix.com/MIX09/T49F" target="_blank"&gt;Arquivo|Novo –&amp;gt; Companhia: Criando NerdDinner.com com ASP.NET MVC&lt;/a&gt; &lt;/li&gt;

&lt;li&gt;&lt;a href="http://videos.visitmix.com/MIX09/T50F" target="_blank"&gt;ASP.NET MVC: Visão Geral&lt;/a&gt; &lt;/li&gt;

&lt;li&gt;&lt;a href="http://www.hanselman.com/blog/MixMobileWebSitesWithASPNETMVCAndTheMobileBrowserDefinitionFile.aspx" target="_blank"&gt;ASP.NET MVC: Dicas Faixa Preta do Ninja&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://www.hanselman.com/blog/MixMobileWebSitesWithASPNETMVCAndTheMobileBrowserDefinitionFile.aspx" target="_blank"&gt;Web Sites móveis com ASP.NET MVC&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;Existem também ótimos tutoriais sobre ASP.NET MVC em  &lt;a href="http://www.asp.net/mvc" target="_blank"&gt;http://www.asp.net/mvc&lt;/a&gt;. Você também pode ler a &lt;a href="http://msdn.microsoft.com/en-us/library/dd394709.aspx" target="_blank"&gt;documentação da ASP.NET MVC na MSDN&lt;/a&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;h4&gt;&lt;u&gt;Faça o download da ASP.NET MVC&lt;/u&gt;&lt;/h4&gt;    
&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=53289097-73ce-43bf-b6a6-35e00103cb4b&amp;amp;displaylang=en" target="_blank"&gt;Clique aqui&lt;/a&gt; para fazer o download e instalar a  ASP.NET MVC 1.0. Você pode também instalá-la usando o &lt;a href="http://www.microsoft.com/web/" target="_blank"&gt;Instalador da Plataforma Web da Microsoft V2&lt;/a&gt; – o qual provê uma experiência de instalação integrada para o conjunto completo de ferramentas Web da Microsoft.&lt;/p&gt;
&lt;/font&gt; &lt;font face="arial" size="2"&gt;
&lt;p&gt;O código fonte da ASP.NET MVC 1.0 está disponível agora. Role a página até a parte de baixo na página de download da ASP.NET MVC e você encontrará links para o arquivo de instalação MSI integrado da ASP.NET MVC 1.0 e para o arquivo .zip que contém o código fonte da ASP.NET MVC. O código fonte da ASP.NET MVC inclui um arquivo de projeto do VS 2008 que permite que você a construa.&lt;/p&gt;
Espero que ajude,
&lt;p&gt;Scott&lt;/p&gt;

&lt;p&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;span style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: 12px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px;" class="Apple-style-span"&gt;(Texto traduzido do&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2009/04/01/asp-net-mvc-1-0.aspx" style="color: rgb(51, 153, 255);" target="_blank" mce_href="http://weblogs.asp.net/scottgu/archive/2009/04/01/asp-net-mvc-1-0.aspx"&gt;post&lt;/a&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;original por&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://leniel.net" style="color: rgb(0, 102, 204);" title="Leniel Macaferi's blog" target="_blank" mce_href="http://leniel.net"&gt;Leniel Macaferi&lt;/a&gt;.)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;/p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;/font&gt;

&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7025898" width="1" height="1"&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3bTxZYIA4aiaNfL6p8K62mBJG38/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3bTxZYIA4aiaNfL6p8K62mBJG38/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3bTxZYIA4aiaNfL6p8K62mBJG38/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3bTxZYIA4aiaNfL6p8K62mBJG38/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scottguportuguese/~4/09n00BXLlV0" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/MVC/default.aspx">MVC</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Novidades+da+Comunidade/default.aspx">Novidades da Comunidade</category><feedburner:origLink>http://weblogs.asp.net/scottguportuguese/archive/2009/04/01/asp-dot-net-mvc-1-0.aspx</feedburner:origLink></item><item><title>MIX 09</title><link>http://feedproxy.google.com/~r/scottguportuguese/~3/WSbBOB96pEM/mix-2009.aspx</link><pubDate>Wed, 01 Apr 2009 03:37:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7025567</guid><dc:creator>Leniel Macaferi</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://weblogs.asp.net/scottguportuguese/rsscomments.aspx?PostID=7025567</wfw:commentRss><wfw:comment>http://weblogs.asp.net/scottguportuguese/commentapi.aspx?PostID=7025567</wfw:comment><comments>http://weblogs.asp.net/scottguportuguese/archive/2009/04/01/mix-2009.aspx#comments</comments><description>&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* Link unit 728x15, created 7/3/09 */
google_ad_slot = "8718436762";
google_ad_width = 728;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;

&lt;p&gt;Duas semanas atrás nós tivemos nossa &lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;a href="http://visitmix.com/" target="_blank"&gt;conferência MIX&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt; em Las Vegas. MIX é a minha conferência favorita no ano &lt;/font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;– isto porque ela integra habilmente tópicos sobre desenvolvimento e projeto em um único evento, e é usualmente acompanhada por anúncios de ótimos produtos.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Eu fiz novamente um discurso no primeiro dia da MIX este ano, e falei sobre e anunciei vários novos produtos da Microsoft para desenvolvimento web. Estes incluem:&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.asp.net/mvc/" target="_blank"&gt;ASP.NET MVC 1.0&lt;/a&gt; (nós lançamos a versão final  V1 durante a MIX) &lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/xweb/archive/2009/03/18/Microsoft-Expression-Web-SuperPreview-for-Windows-Internet-Explorer.aspx" target="_blank"&gt;Expression Web 3.0&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/web/" target="_blank"&gt;Microsoft Web Platform Installer&lt;/a&gt; e &lt;a href="http://www.microsoft.com/web/gallery/default.aspx" target="_blank"&gt;Windows Web App Gallery&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://silverlight.net/getstarted/silverlight3/default.aspx" target="_blank"&gt;Silverlight 3&lt;/a&gt;&amp;nbsp; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/expression/archive/2009/03/18/download-expression-blend-3-preview.aspx" target="_blank"&gt;Expression Blend 3&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.iis.net/media" target="_blank"&gt;IIS Media Services&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/brada/archive/2009/03/19/what-is-net-ria-services.aspx" target="_blank"&gt;.NET RIA Services&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
    
&lt;p&gt;Meu discurso também incluiu muitos demos e destacou vários clientes importantes: &lt;font&gt;&lt;font face="arial" size="2"&gt;StackOverflow, NetFlix, NBC, Bondi Publishing, e
KEXP.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
    
&lt;p&gt;&lt;a href="http://videos.visitmix.com/MIX09/KEY01" target="_blank"&gt;Clique aqui&lt;/a&gt;
para assistir online o discurso do primeiro dia da MIX. Bill Buxton abriu o encontro com uma ótima palestra sobre experiência do usuário durante 20 minutos &lt;font&gt;&lt;font face="arial" size="2"&gt;– eu então palestrei durante 1 hora e 50 minutos após ele.&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
    
&lt;p&gt;Você também pode assistir todas as sessões da MIX online de graça &lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;a href="http://videos.visitmix.com/MIX09" target="_blank"&gt;aqui&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;  (Greg Duncan tem uma lista das sessões fácil de navegar &lt;a href="http://coolthingoftheday.blogspot.com/2009/03/mix-09-quick-video-link-list.html" target="_blank"&gt;aqui&lt;/a&gt; também).&lt;/p&gt;
    
&lt;p&gt;Eu estarei escrevendo posts mais detalhados nos próximos dias sobre muitas das tecnologias que nós introduzimos/anunciamos e sobre as coisas legais que você pode fazer com elas.&amp;nbsp; &lt;br&gt;&lt;/p&gt;
&lt;p&gt;Espero que ajude,&lt;br&gt;&lt;/p&gt;
        
&lt;p&gt;Scott&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;span style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: 12px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px;" class="Apple-style-span"&gt;(Texto traduzido do&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2009/03/31/mix-09.aspx" style="color: rgb(51, 153, 255);" target="_blank" mce_href="http://weblogs.asp.net/scottgu/archive/2009/03/31/mix-09.aspx"&gt;post&lt;/a&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;original por&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://leniel.net" style="color: rgb(0, 102, 204);" title="Leniel Macaferi's blog" target="_blank" mce_href="http://leniel.net"&gt;Leniel Macaferi&lt;/a&gt;.)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; &lt;br&gt;&lt;/p&gt;
 &lt;/font&gt;&lt;/p&gt;

&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7025567" width="1" height="1"&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4Qal9uNNluMvpfc6Vl4sme7IHEY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4Qal9uNNluMvpfc6Vl4sme7IHEY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4Qal9uNNluMvpfc6Vl4sme7IHEY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4Qal9uNNluMvpfc6Vl4sme7IHEY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scottguportuguese/~4/WSbBOB96pEM" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Novidades+da+Comunidade/default.aspx">Novidades da Comunidade</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Talks/default.aspx">Talks</category><feedburner:origLink>http://weblogs.asp.net/scottguportuguese/archive/2009/04/01/mix-2009.aspx</feedburner:origLink></item><item><title>Tutorial eBook sobre ASP.NET MVC Grátis</title><link>http://feedproxy.google.com/~r/scottguportuguese/~3/XmkWyUTGnTk/tutorial-ebook-sobre-asp-dot-net-mvc-gratis.aspx</link><pubDate>Tue, 10 Mar 2009 18:54:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6962368</guid><dc:creator>Leniel Macaferi</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://weblogs.asp.net/scottguportuguese/rsscomments.aspx?PostID=6962368</wfw:commentRss><wfw:comment>http://weblogs.asp.net/scottguportuguese/commentapi.aspx?PostID=6962368</wfw:comment><comments>http://weblogs.asp.net/scottguportuguese/archive/2009/03/10/tutorial-ebook-sobre-asp-dot-net-mvc-gratis.aspx#comments</comments><description>&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;

&lt;p&gt;Houve uma grande agitação na comunidade com relação ao novo framework ASP.NET MVC que está prestes a ser lançado (literalmente muito em breve – anúncio está para sair). Como qualquer coisa nova, as pessoas também estão pedindo mais tutoriais/exemplos/documentação que cubra como começar e construir aplicações com o framework.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Nos últimos meses eu estive ajudando a contribuir para um livro sobre ASP.NET MVC que Scott Hanselman, Rob Conery e Phil Haack estavam escrevendo para a Wrox. O livro está agora em processo de produção e estará disponível para compra nas lojas dentro em breve (você pode &lt;a href="http://www.amazon.com/gp/product/0470384611?ie=UTF8&amp;amp;tag=scoblo04-20&amp;amp;linkCode=xm2&amp;amp;camp=1789&amp;amp;creativeASIN=0470384611" target="_blank" mce_href="http://www.amazon.com/gp/product/0470384611?ie=UTF8&amp;amp;tag=scoblo04-20&amp;amp;linkCode=xm2&amp;amp;camp=1789&amp;amp;creativeASIN=0470384611"&gt;comprá-lo antecipadamente hoje na Amazon&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Eu escrevi o primeiro capítulo do livro – o qual possui 185 páginas e é do início ao fim um tutorial que mostra passo a passo a construção de uma pequena mas completa aplicação ASP.NET MVC a partir do zero. O acordo que fiz com a Wrox foi que eu escreveria o capítulo gratuitamente desde que eles disponibilizassem o capítulo em formato PDF de maneira gratuita para download.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Estou feliz ao anunciar que você agora pode fazer &lt;a href="http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-nerdinner_v1.pdf" target="_blank" mce_href="http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-nerdinner_v1.pdf"&gt;o download deste capítulo tutorial do início ao fim&lt;/a&gt; (é um arquivo PDF de 14 MB). Está licenciado sob uma licença do tipo “Creative Commons Attribution No Derivatives” – o que significa que você pode compartilhar, distribuir, imprimir ou entregar o mesmo para qualquer pessoa.&lt;br&gt;&lt;font face="arial" size="2"&gt;&lt;h3&gt;&lt;u&gt;Tutorial da aplicação NerdDinner ASP.NET MVC&lt;/u&gt;&lt;/h3&gt;    
&lt;p&gt;O tutorial começa usando o comando Arquivo-&amp;gt;Novo Projeto do Visual Studio para criar um novo projeto ASP.NET MVC e então de forma incremental adiciona funcionalidades e recursos. Durante o caminho, o capítulo cobre assuntos sobre como:&lt;br&gt;&lt;/p&gt;
    
&lt;ul&gt;
&lt;li&gt;Criar um banco de dados&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Construir um modelo de dados com validação e regras de negócio&lt;/li&gt;
&lt;li&gt;Implementar UI (Interface do Usuário) para listas/detalhes de dados em um site usando Controladores e Visões&lt;/li&gt;
&lt;li&gt;Habilitar CRUD (Criar, Atualizar, Deletar) dados &lt;/li&gt;
&lt;li&gt;Usar o padrão de projeto ViewModel para passar informação de um Controlador para uma Visão&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Reusar UI por todo o site usando parciais e páginas master&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Implementar paginação de dados eficiente&lt;/li&gt;
&lt;li&gt;Implementar segurança na aplicação usando autenticação e autorização&lt;/li&gt;
&lt;li&gt;Usar AJAX para entregar atualizações dinâmicas&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Usar AJAX para adicionar suporte interativo a mapas&lt;/li&gt;
&lt;li&gt;Executar testes unitários automatizados (incluindo injeção de dependência e mocking (simulação de objetos))&lt;/li&gt;
&lt;/ul&gt;
    
&lt;p&gt;A aplicação que o tutorial constrói é chamada "NerdDinner" (Jantar do Nerd*). Esta provê uma maneira fácil para que as pessoas organizem, recebam e procurem por novos jantares baseados em assuntos específicos; tudo de maneira online:&lt;br&gt;&lt;/p&gt;
&lt;/font&gt;&lt;img src="http://weblogs.asp.net/blogs/scottgu/nerddinner_small1_29171E72.png" mce_src="http://weblogs.asp.net/blogs/scottgu/nerddinner_small1_29171E72.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;&lt;a href="http://www.hanselman.com/blog/" target="_blank"&gt;Scott Hanselman&lt;/a&gt;
tem hospedado NerdDinners há alguns anos, e teve a idéia de construir um tutorial baseado em uma aplicação que facilitasse tal evento. Ele também está agora hospedando uma versão customizada da aplicação em &lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;a href="http://www.nerddinner.com/" target="_blank"&gt;www.nerddinner.com&lt;/a&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
    &lt;h3&gt;&lt;u&gt;Links para Download&lt;/u&gt;&lt;/h3&gt;    
&lt;ul&gt;
&lt;li&gt;Faça o download do &lt;a href="http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-nerdinner_v1.pdf" target="_blank"&gt;capítulo tutorial do início ao fim no formato PDF&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Faça o download do &lt;a href="http://nerddinner.codeplex.com/" target="_blank"&gt;código fonte + testes unitários para a aplicação completa &lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Aprenda mais sobre o livro a partir da &lt;a href="http://www.wrox.com/WileyCDA/Section/id-321793.html" target="_blank"&gt;página oficial da Wrox&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Compre o &lt;a href="http://www.amazon.com/gp/product/0470384611?ie=UTF8&amp;amp;tag=scoblo04-20&amp;amp;linkCode=xm2&amp;amp;camp=1789&amp;amp;creativeASIN=0470384611" target="_blank"&gt;livro completo na Amazon&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
    
&lt;p&gt;Espero que ajude,&lt;/p&gt;
    
&lt;p&gt;Scott&lt;/p&gt;
    
&lt;p&gt;P.S. O livro está entrando em produção agora e deste modo está oficialmente em um status não-editado (o que significa que editores profissionais ainda não analisaram seu conteúdo). Nós iremos atualizar o PDF com qualquer edição importante assim que o texto final fique pronto. &lt;br&gt;&lt;/p&gt;
&lt;p&gt;P.P.S.
e sim  – esta é uma das razões pelas quais meu blog tem estado mais quieto que o normal nos últimos meses. Espere uma publicação de posts mais regular novamente assim que eu me recuperar desta empreitada. :-)&lt;/p&gt;
&lt;p&gt;* Nerd é um termo estereotípico que descreve uma pessoa com grande fascínio por conhecimento ou tecnologia. É utilizado desde o final da década de 1950 no Massachusetts Institute of Technology (MIT).&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;span style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: 12px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px;" class="Apple-style-span"&gt;(Texto traduzido do&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2009/03/10/free-asp-net-mvc-ebook-tutorial.aspx" style="color: rgb(51, 153, 255);" target="_blank" mce_href="http://weblogs.asp.net/scottgu/archive/2009/03/10/free-asp-net-mvc-ebook-tutorial.aspx"&gt;post&lt;/a&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;original por&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://leniel.net" style="color: rgb(0, 102, 204);" title="Leniel Macaferi's blog" target="_blank" mce_href="http://leniel.net"&gt;Leniel Macaferi&lt;/a&gt;.)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;/p&gt;
&lt;/font&gt;&lt;/p&gt;

&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6962368" width="1" height="1"&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6XMTZvvV_PIgWRzQ9E3NS5TC2n0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6XMTZvvV_PIgWRzQ9E3NS5TC2n0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6XMTZvvV_PIgWRzQ9E3NS5TC2n0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6XMTZvvV_PIgWRzQ9E3NS5TC2n0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scottguportuguese/~4/XmkWyUTGnTk" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/MVC/default.aspx">MVC</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Novidades+da+Comunidade/default.aspx">Novidades da Comunidade</category><feedburner:origLink>http://weblogs.asp.net/scottguportuguese/archive/2009/03/10/tutorial-ebook-sobre-asp-dot-net-mvc-gratis.aspx</feedburner:origLink></item><item><title>Lançamento da Moonlight 1.0</title><link>http://feedproxy.google.com/~r/scottguportuguese/~3/OMs8mbfuX8U/lancamento-da-moonlight-1.0.aspx</link><pubDate>Wed, 11 Feb 2009 22:27:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6905810</guid><dc:creator>Leniel Macaferi</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://weblogs.asp.net/scottguportuguese/rsscomments.aspx?PostID=6905810</wfw:commentRss><wfw:comment>http://weblogs.asp.net/scottguportuguese/commentapi.aspx?PostID=6905810</wfw:comment><comments>http://weblogs.asp.net/scottguportuguese/archive/2009/02/11/lancamento-da-moonlight-1.0.aspx#comments</comments><description>&lt;center&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;
&lt;/center&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;Estou excitado ao anunciar que a &lt;font face="arial" size="2"&gt;&lt;a href="http://www.novell.com/news/press/moonlight-shines-on-the-linux-desktop/" target="_blank"&gt;Novell lançou hoje a versão 1.0 da Moonlight&lt;/a&gt;, e está tornando a mesma disponível para download gratuitamente com suporte para a maioria das distribuições Linux (incluindo openSUSE, SUSE Linux Enterprise, Fedora, Red Hat e Ubuntu). Para aqueles não familiarizados com a Moonlight. esta é o resultado de um esforço comum entre a Novell e a Microsoft para uma implementação de código livre da Silverlight para o Linux. &lt;br&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Meu time trabalhou juntamente com Miguel de Icaza e seu time no projeto. Nós também estamos lançando o Microsoft Media Pack (Pacote de Mídia da Microsoft) - o qual é um conjunto de codecs de mídia licenciados que permitem a execução de todas as mídias compatíveis com a Silverlight (wmv, wma, mp3, etc.), como um download gratuito para os usuários Linux que rodam a Moonlight.&lt;br&gt;&lt;/p&gt;
A Moonlight permite que os usuários Linux vejam o conteúdo Silverlight e aplicações Silverlight. Recentemente o Comitê da Posse Presidencial exibiu a&amp;nbsp;&lt;/font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2009/01/19/silverlight-and-the-2009-presidential-inauguration.aspx" target="_blank"&gt;posse do Presidente Barack Obama usando Silverlight&lt;/a&gt;. Mais de 50.000 expectadores usando Linux instalaram a Moonlight e assistiram o evento ao vivo. Miguel de Icaza e os voluntários por trás da Moonlight &lt;/font&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt;&lt;a href="http://arstechnica.com/open-source/news/2009/01/obama-inauguration-shines-on-linux-too-with-moonlight.ars" target="_blank"&gt;fizeram um esforço tremendo&lt;/a&gt; para terem certeza que os usuários Linux fossem capazes de assistir a exibição da posse, ainda que o lançamento oficial da Moonlight estivesse há algumas semanas distante.&lt;/font&gt;&lt;font face="arial" size="2"&gt;    
&lt;p&gt;&lt;img src="http://weblogs.asp.net/blogs/scottgu/image_thumb_0258A09A.png" mce_src="http://weblogs.asp.net/blogs/scottgu/image_thumb_0258A09A.png" width="628" height="658"&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;Eu estou realmente feliz com relação ao belo trabalho que Miguel e seu time da Novell fizeram, e nós esperamos pela Moonlight 2 (uma implementação compatível com a Silverlight 2.0 com suporte .NET), a qual o time está trabalhando com afinco. Para mais detalhes sobre o lançamento da Moonlight 1.0, veja &lt;font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;a href="http://tirania.org/blog/archive/2009/Feb-11.html" target="_blank"&gt;o post de Miguel&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;. &lt;/p&gt;
    
&lt;p&gt;Obrigado,&lt;/p&gt;
    
&lt;p&gt;Scott&lt;/p&gt;
&lt;/font&gt;&lt;span style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: 12px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px;" class="Apple-style-span"&gt;(Texto traduzido do&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2009/02/11/moonlight-1-0-release.aspx" style="color: rgb(51, 153, 255);" target="_blank" mce_href="http://weblogs.asp.net/scottgu/archive/2009/02/11/moonlight-1-0-release.aspx"&gt;post&lt;/a&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;original por&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://leniel.net" style="color: rgb(0, 102, 204);" title="Leniel Macaferi's blog" target="_blank" mce_href="http://leniel.net"&gt;Leniel Macaferi&lt;/a&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;/font&gt;&lt;/p&gt;

&lt;center&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;
&lt;/center&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6905810" width="1" height="1"&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BMaYEjXxLSXyfuihNnNRd2mBV0g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BMaYEjXxLSXyfuihNnNRd2mBV0g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BMaYEjXxLSXyfuihNnNRd2mBV0g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BMaYEjXxLSXyfuihNnNRd2mBV0g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scottguportuguese/~4/OMs8mbfuX8U" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Novidades+da+Comunidade/default.aspx">Novidades da Comunidade</category><feedburner:origLink>http://weblogs.asp.net/scottguportuguese/archive/2009/02/11/lancamento-da-moonlight-1.0.aspx</feedburner:origLink></item><item><title>ASP.NET MVC 1.0 Release Candidate (Candidata a Lançamento) Agora Disponível</title><link>http://feedproxy.google.com/~r/scottguportuguese/~3/dItZfo20hZc/asp-net-mvc-1.0-release-candidate-candidata-a-lancamento-agora-disponivel.aspx</link><pubDate>Tue, 27 Jan 2009 17:13:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6872126</guid><dc:creator>Leniel Macaferi</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://weblogs.asp.net/scottguportuguese/rsscomments.aspx?PostID=6872126</wfw:commentRss><wfw:comment>http://weblogs.asp.net/scottguportuguese/commentapi.aspx?PostID=6872126</wfw:comment><comments>http://weblogs.asp.net/scottguportuguese/archive/2009/01/27/asp-net-mvc-1.0-release-candidate-candidata-a-lancamento-agora-disponivel.aspx#comments</comments><description>&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;

&lt;font face="arial"&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;Hoje nós lançamos a ASP.NET MVC 1.0 Release Candidate (RC) - candidata a lançamento.&amp;nbsp;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=141184&amp;amp;clcid=0x409" target="_blank"&gt;Clique aqui&lt;/a&gt;&amp;nbsp;para fazer o download (nota: o link foi criado agora e se o mesmo não estiver funcionando, aguarde alguns minutos para que o servidor possa ser atualizado). A ASP.NET MVC 1.0 Release Candidate funciona com o Visual Studio 2008 e Visual Studio Web Developer 2008 (o qual é gratuito).&lt;/p&gt;

&lt;p&gt;A&amp;nbsp;RC&amp;nbsp;de hoje é último lançamento público da ASP.NET MVC que iremos entregar antes do&amp;nbsp;lançamento final da versão 1.0. Nós esperamos entregar a versão final da ASP.NET MVC 1.0 no&amp;nbsp;próximo mês.&lt;/p&gt;

&lt;p&gt;Além de correções de bugs,&amp;nbsp;o build (construção)&amp;nbsp;de hoje inclui vários recursos novos. Também inclui alguns refinamentos para recursos existentes com base no retorno obtido dos clientes. Por favor leia as &lt;a href="http://go.microsoft.com/fwlink/?LinkID=137661&amp;amp;clcid=0x409" target="_blank"&gt;notas de lançamento&lt;/a&gt;&amp;nbsp;que acompanham o download da ASP.NET MVC para detalhes mais completos de todas as mudanças. As &lt;a href="http://go.microsoft.com/fwlink/?LinkID=137661&amp;amp;clcid=0x409" target="_blank"&gt;notas de lançamento&lt;/a&gt;&amp;nbsp;incluem instruções detalhadas de como fazer o upgrade de aplicações existentes construídas com a ASP.NET MVC Beta para a versão RC.&lt;/p&gt;
&lt;h3&gt;&lt;u&gt;&lt;font size="2"&gt;Melhorias para as Ferramentas do Visual Studio&lt;/font&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;p&gt;A RC inclui vários recursos de ferramenta novos do Visual Studio (mais e além do que&amp;nbsp;os existentes na versão Beta - os quais eu não&amp;nbsp;cobrirei neste post). Estes recursos incluem:&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Comando para Adicionar Controlador&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;Você agora pode digitar Ctrl-M, Ctrl-C dentro de um projeto ASP.NET MVC, ou clicar com o botão direito na pasta do controlador /Controller e escolher o menu de contexto "Adicionar-&amp;gt;Controlador" para criar novas classes de Controlador:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step1.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step1.png"&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="+0"&gt;&lt;font face="arial" size="2"&gt;Isto fará com que uma janela de diálogo "Adicionar Controlador" apareça, a qual permitirá a você nomear o Controlador, como também opcionalmente indicar se você quer "criar" métodos CRUD comuns:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step2.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step2.png" width="398" height="171"&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="+0"&gt;&lt;font face="arial" size="2"&gt;Clicando no botão "Adicionar" fará com que a classe do Controlador seja criada e adicionada no projeto:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step3.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step3.png" width="724" height="702"&gt;&amp;nbsp;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;&lt;u&gt;Comando para Adicionar Visão&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;Você agora pode digitar Ctrl-M, Ctrl-V dentro de um método de ação e escolher o item do menu de contexto "Adicionar Visão" para criar novos modelos de Visão:&lt;/p&gt;
&lt;/font&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step42.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step42.png" width="586" height="364"&gt;&lt;font face="arial" size="2"&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;Isto fará com que uma janela de diálogo "Adicionar Visão" apareça, a qual permite a você nomear e criar uma nova Visão (esta é pré-populada com opções baseadas em convenções). Esta janela permite a você criar modelos de Visão "vazios", ou automaticamente gerar/criar modelos de Visão que são baseados no tipo de objeto passado para a Visão através do método de ação do Controlador. A estrutura de criação usa reflexão para criar os modelos de Visão - assim é possível criar novos modelos com base em qualquer POCO (objeto simples da CLR) passado para esta. A estrutura não depende de nenhum ORM particular ou implementação de dados. &lt;/p&gt;

&lt;p&gt;Por exemplo, a seguir nós estamos indicando que nós queremos criar um modelo de Visão "Lista" com base na seqüência de objetos do tipo Produto que são passados através do nosso método de ação acima:&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step5.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step5.png" width="353" height="384"&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="+0"&gt;&lt;font face="arial" size="2"&gt;Clicando no botão "Adicionar" fará com que o modelo da Visão seja criado dentro do diretório \Views\Products com uma implementação de "criação" padrão:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step51.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step51.png" width="821" height="748"&gt;&lt;/p&gt;

&lt;p&gt;Nós podemos então executar nossa aplicação e solicitar a URL &lt;i&gt;/products&lt;/i&gt; dentro do nosso browser para vermos uma lista de todos os produtos retornados:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step7.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step7.png" width="768" height="623"&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;A RC vem com vários modelos para geração de código: “Vazia”, “Lista”, “Detalhes”, “Edição”&amp;nbsp;e “Criação” (você pode também adicionar seus próprios modelos de geração de código&amp;nbsp;- mais detalhes sobre este assunto&amp;nbsp;num momento).&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;Por exemplo, para permitir a edição de um Produto, nós podemos implementar a versão HTTP-GET de nosso método de ação "Editar" no nosso Controlador de Produtos como a seguir e então invocar o comando "Adicionar Visão":&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;/font&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step43.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step43.png" width="617" height="265"&gt; &lt;/p&gt;

&lt;p&gt;&lt;font size="+0"&gt;&lt;font face="arial" size="2"&gt;Dentro da janela de diálogo "Adicionar Visão" nós podemos indicar que estamos passando um objeto "Produto" para nossa Visão e escolher a opção de modelo "Editar" para gerar a Visão:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step9.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step9.png" width="354" height="384"&gt;&lt;/font&gt; 
&lt;p&gt;&lt;font size="+0"&gt;&lt;font face="arial" size="2"&gt;Clicando no botão "Adicionar" fará com que um modelo de Visão "Editar" seja criado com a implementação de geração de código padrão dentro do diretório \Views\Products\:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step50.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step50.png" width="824" height="748"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;font size="+0"&gt;&lt;font face="arial" size="2"&gt;Nós podemos então executar nossa aplicação e solicitar a URL &lt;i&gt;/products/edit/1&lt;/i&gt; dentro do nosso browser para editar os detalhes do Produto:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step47.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step47.png" width="701" height="722"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;font size="+0"&gt;&lt;font face="arial" size="2"&gt;Para salvar as mudanças da edição, nós podemos implementar a versão HTTP-POST do nosso método de ação "Editar" no nosso controlador de Produtos:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step49.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step49.png" width="776" height="571"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;font size="+0"&gt;&lt;font face="arial" size="2"&gt;Repare no código acima como no caso de um erro (por exemplo: alguém entra uma string inválida para um valor numérico) nós exibimos novamente a Visão. Os modelos de "Edição" e "Criação" gerados contém os métodos de ajuda de validação HTML necessários para preservar a entrada do usuário e sinalizar elementos de entrada de dados inválidos em vermelho quando isto acontecer:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step48.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step48.png" width="697" height="719"&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;Você raramente usará um modelo de geração de código do jeito que este é criado, e geralmente terminará substituindo-o por completo. Ser capaz de obter uma implementação inicial e de maneira rápida, e ter um modelo de Visão inicial para o seu cenário de modo que você pode facilmente customizá-lo é muito útil. &lt;br&gt;&lt;/p&gt;
Em virtude da infraestrutura de geração de modelos suportar geração de Visões para qualquer objeto POCO CLR, você pode usar este esquema para ambos os objetos do modelo de dados (incluindo aqueles mapeados com LINQ para SQL, LINQ para Entidades, nHibernate, LLBLGen Pro, SubSonic e outras implementações populares de ORM) como também criar modelos de geração com classes customizadas de Apresentação Modelo/Modelo de Visão.&lt;/font&gt; 
&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Adicionando e Customizando&amp;nbsp;Modelos para Geração de Código&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;A infraestrutura de geração de código da ASP.NET MVC é implementada usando a arquitetura nativa do Visual Studio chamada T4 (Scott Hanselman tem um bom post a respeito da T4 &lt;font size="+0"&gt;&lt;font size="+0"&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;a href="http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx" target="_blank" mce_href="http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx"&gt;aqui&lt;/a&gt;).&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Você pode customizar/sobrescrever qualquer uma das implementações dos modelos de geração de código da ASP.NET MVC. Você pode também criar modelos de geração de código adicionais (por exemplo: a opção de geração&amp;nbsp;de código&amp;nbsp;"Visão Maluca do ScottGu") e tê-los disponíveis como opções dentro da janelo de diálogo "Adicionar Visão"&lt;/p&gt;

&lt;p&gt;Para customizar os modelos de geração de código em nível de abrangência de Máquina, abra a pasta &lt;font size="+0"&gt;&lt;font size="+0"&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;i&gt;C:\Arquivos de programas\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC\CodeTemplates”&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;:&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step14.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step14.png" width="683" height="321"&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="+0"&gt;&lt;font face="arial" size="2"&gt;A sub-pasta "AddController" contém os modelos de geração de código para a janela de diálogo "Adicionar Controlador". A sub-pasta "AddView" contém os modelos de geração de código para a janela de diálogo "Adicionar Visão"&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step15.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step15.png" width="694" height="380"&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;Os modelos para geração de código exibidos dentro da janela de diálogo "Adicionar Visão" são simplesmente arquivos de texto que possuem a extensão ".tt" para o nome do arquivo. Estes arquivos de texto ".tt" contêm código C# ou VB que é executado quando o modelo é selecionado. &lt;br&gt;&lt;/p&gt;

&lt;p&gt;Você pode abrir e editar qualquer um dos arquivos existentes para customizar o comportamento padrão da geração de código. Você pode também adicionar novos arquivos de modelo ".tt" &lt;font size="+0"&gt;&lt;font size="+0"&gt;&lt;font size="+0"&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;– igual ao que eu fiz acima com o arquivo&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="+0"&gt;&lt;font size="+0"&gt;&lt;font size="+0"&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt; “Scott Crazy Look.tt”. Quando você adiciona um novo arquivo de modelo, a janela de diálogo "Adicionar Visão" será atualizada para automaticamente incluir o novo modelo na lista de opções de geração de código disponíveis:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;/font&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step16.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step16.png" width="356" height="382"&gt;&lt;font face="arial" size="2"&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt; 
&lt;p&gt;Além de customizar/adicionar arquivos de modelo no nível da máquina, você pode também adicionar/sobrescrever os mesmos no nível de projeto. Isto permite que você adicione os modelos no repositório, facilitando assim a disponibilização dos mesmos para todo o time de desenvolvimento.&lt;/p&gt;

&lt;p&gt;Você pode customizar os modelos de geração de código no nível de projeto adicionando a pasta "CodeTemplates" dentro do seu projeto. Você pode então ter sub-pastas "AddController" e "AddView" dentro desta pasta pai:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step17.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step17.png" width="263" height="442"&gt;&amp;nbsp;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;Você pode sobrescrever qualquer modelo do nível de máquina simplesmente adicionando um arquivo ".tt" com o mesmo nome do projeto. Por exemplo, acima nós estamos sobrescrevendo o modelo de geração de código padrão "Controller.tt" usado nos cenários "Adicionar Controlador".&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;Você pode adicionar novos arquivos de modelo de geração de código para Visões na lista colocando-os dentro da pasta "AddView". Por exemplo, acima nós adicionamos um novo modelo chamado "Yet Another Crazy Look.tt" dentro do nosso projeto. Quando nós usarmos a janela de diálogo "Adicionar Visão" nós iremos ver uma união dos modelos definidos no nível da máquina e no&amp;nbsp;projeto:&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step18.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step18.png" width="352" height="384"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;i&gt;Nota: Quando você adiciona modelos ".tt" dentro da pasta \CodeTemplates, tenha certeza de que você setou a propriedade "Custom Tool" de cada arquivo ".tt" para uma string vazia dentro do grid de propriedades (de outro modo você verá um erro quando tentar executar o código do modelo). Você também pode precisar fechar e abrir o projeto para limpar um erro remanescente da lista de erros. Nós publicaremos mais posts que cobrem como criar/customizar os modelos de geração de código em breve.&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Ir para Controlador / Ir para Visão&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;A construção da RC agora suporta o recurso de navegação rápida entre Controladores e Visões dentro de seus projetos.&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;Quando seu cursor está dentro de um método de ação de um Controlador você pode digitar Ctrl-M, Ctrl-G para navegar rapidamente para o modelo de Visão correspondente. Você pode também executar esta mesma navegação clicando dentro de um método de ação e selecionando a opção de menu "Ir para Visão":&lt;/p&gt;
&lt;font size="2"&gt;&lt;font face="arial"&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step19.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step19.png" width="700" height="332"&gt;&lt;/font&gt;&lt;/font&gt; 
&lt;p&gt;&lt;font size="2"&gt;&lt;font face="arial"&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="+0"&gt;&lt;font face="arial" size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;No exemplo acima nós usamos o comando "Ir para Visão" dentro do método de ação "Editar" da classe ProductsController. Isto fará com que o modelo de Visão \Views\Products\Edit.aspx seja aberto com o foco dentro do VS:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step20.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step20.png" width="719" height="411"&gt;&lt;/p&gt;

&lt;p&gt;Dentro dos arquivos de Visão você também pode agora digitar Ctrl-M, Ctrl-G para navegar rapidamente para a classe do Controlador correspondente à Visão. Você também pode executar essa navegação clicando com o botão direito do mouse dentro do modelo de Visão e selecionando a opção do menu "Ir para Controlador":&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step21.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step21.png" width="769" height="438"&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;&lt;u&gt;Tarefas do MSBuild para Compilar Visões&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;Por padrão, quando você constrói um projeto ASP.NET MVC todo o código dentro do projeto é compilado, exceto o código presente dentro dos arquivos de modelos para geração de Visões. Com a ASP.NET MVC Beta você tinha que rodar sua própria tarefa do MSBuild se você quisesse compilar o código presente dentro de tais arquivos. A ASP.NET MVC RC agora inclui uma tarefa integrada que você pode usar para incluir Visões como parte do processo de compilação do projeto. Isto causará uma verificação da sintaxe do código incluído dentro de todas as Visões, páginas master (mestras) e Visões parciais da aplicação, e dará a você os erros de construção se algum problema for encontrado.&lt;/p&gt;

&lt;p&gt;Por razões de performance nós não recomendamos rodar esta tarefa. Isto é &lt;font size="+0"&gt;&lt;font face="arial" size="2"&gt;para que seja obtida uma rápida compilação &lt;/font&gt;&lt;/font&gt;durante o desenvolvimento. Contudo, é conveniente adicionar em uma configuração de construção (por exemplo: staging (preparação) e deployment (distribuição)) e/ou para uso em servidores de Build ou CI (integração contínua). Por favor revise as notas de lançamento para os passos a serem seguidos para habilitar este recurso.&lt;br&gt;&lt;/p&gt;
&lt;font face="arial"&gt;&lt;/font&gt;&lt;font face="arial"&gt;
&lt;p&gt;&lt;u&gt;Suporte à Refatoração de Visões&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;Os nomes dos arquivos e pastas dentro da sub-pasta da aplicação \Views serão agora automaticamente atualizados quando você renomear a classe do Controlador ou o método de ação usando o comando de refatoração "Rename" no VS 2008. O VS 2008 irá aplicar o modelo de nomeação padrão baseado em convenções para os arquivos de Visão/pastas quando a classe do Controlador for atualizada.&lt;br&gt;&lt;/p&gt;
&lt;/font&gt;&lt;font face="arial" size="2"&gt;
&lt;h3&gt;&lt;u&gt;&lt;font size="2"&gt;Melhorias em Visões&lt;/font&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;p&gt;A RC inclui um número de melhorias específicas para Visões que foram incorporadas com base no retorno obtido durante os lançamentos de pré-estréia.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Visões sem Arquivos de Code-Behind&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;Com base no retorno obtido nós mudamos os arquivos de Visão para que estes não tenham &lt;font size="+0"&gt;&lt;font size="+0"&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;por padrão &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;um arquivo de code-behind. Esta mudança ajuda a reforçar o propósito das Visões em uma aplicação MVC (as quais são planejadas para lidar puramente com renderização e não para conter qualquer código relacionado a não-renderização), e para muitas pessoas elimina arquivos não usados no projeto.&lt;br&gt;&lt;/p&gt;

&lt;p&gt;A RC agora adiciona suporte à sintaxe C# ou VB para herdar modelos de Visão a partir de classes base que usam genéricos. Por exemplo, a seguir nós estamos usando este recurso com o modelo de Visão Edit.aspx&lt;font size="+0"&gt;&lt;font size="+0"&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt; – cujo atributo "inherits" deriva do tipo ViewPage&amp;lt;Product&amp;gt;:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step22.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step22.png" width="717" height="91"&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt; 
&lt;p&gt;Um benefício legal de não usar um arquivo de code-behind é que você agora terá intellisense imediato dentro dos arquivos do modelo de Visão quando você adicioná-lo no projeto. Em lançamentos passados você tinha que construir/compilar imediatamente após criar uma Visão para obter intellisense para o código dentro da Visão. A RC torna o processo de adicionar e imediatamente editar uma Visão livre do toque do compilador e muito mais perfeito (sem interrupção). &lt;/p&gt;
&lt;i&gt;Importante: Se você está fazendo o upgrade de um projeto ASP.NET MVC que foi criado com uma versão prévia, tenha certeza de seguir os passos contidos nas notas de lançamento &lt;/i&gt;&lt;/font&gt;&lt;i&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;i&gt;– o arquivo web.config dentro do diretório \Views precisa ser atualizado com algumas configurações para que a sintaxe baseada em genéricos acima possa funcionar.&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/i&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;&lt;u&gt;Propriedade Model&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;Com versões anteriores da ASP.NET MVC, você acessava o modelo de objetos fortemente tipado passado para a Visão usando a propriedade ViewData.Model:&lt;/p&gt;
&lt;img src="http://www.scottgu.com/blogposts/mvcviews/step4.png" mce_src="http://www.scottgu.com/blogposts/mvcviews/step4.png" width="420" height="44"&gt;&lt;/font&gt; 
&lt;p&gt;A sintaxe usada acima ainda funciona, embora agora exista também uma propriedade "Model" de nível superior na ViewPage que você pode também usar:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcviews/step5.png" mce_src="http://www.scottgu.com/blogposts/mvcviews/step5.png" width="347" height="45"&gt;&lt;/p&gt;

&lt;p&gt;Esta propriedade faz a mesma coisa do exemplo de código anterior - seu benefício maior é que esta permite a você escrever o código um pouco mais concisamente. Esta permite também que você evite usar o dicionário ViewData em casos onde você quer que a Visão somente interaja com o modelo de objetos fortemente tipado passado para a mesma. &lt;br&gt;&lt;/p&gt;
&lt;font size="+0"&gt;&lt;font face="arial" size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt;&lt;/font&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;&lt;u&gt;Setando o Título &lt;/u&gt;&lt;/p&gt;

&lt;p&gt;O modelo padrão da master page adicionada em novos projetos ASP.NET MVC agora tem um elemento &amp;lt;asp:contentplaceholder/&amp;gt; dentro da seção &amp;lt;head&amp;gt;. Isto torna muito mais fácil para modelos de Visão controlar o elemento &amp;lt;title&amp;gt; da página HTML renderizada &lt;font size="+0"&gt;&lt;font size="+0"&gt;&lt;font size="+0"&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;– e não requer que o Controlador explicitamente passe o parâmetro "title" para configurar o título (o qual era o comportamento padrão em versões prévias da ASP.NET MVC e que pensamos questionável a partir de uma perspectiva de responsabilidades).&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Por exemplo, para customizar o &amp;lt;title&amp;gt; de nossa Visão "Editar" para que este inclua o nome do Produto sendo editado nós podemos agora adicionar o código a seguir em nosso arquivo Edit.aspx para usar o título diretamente do objeto do modelo sendo passado para a Visão:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step23.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step23.png" width="774" height="332"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;O código acima fará com que o nosso browser renderize o título usando o nome do Produto no tempo de execução:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step24.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step24.png"&gt;&lt;/p&gt;
&lt;font face="arial"&gt;
&lt;p&gt;Além de setar o elemento &amp;lt;title&amp;gt;, você pode também usar a abordagem apresentada acima para dinamicamente adicionar elementos &amp;lt;head&amp;gt; no tempo de execução. Outro cenário comum em que esta técnica é útil é na configuração de elementos &amp;lt;meta/&amp;gt; específicos do Modelo/Visão para otimizar os motores de busca.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Métodos de Ajuda HTML/AJAX Fortemente Tipados&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;Uma das requisições&amp;nbsp;que algumas pessoas fizeram foi a habilidade e usar sintaxe de expressão fortemente tipada (ao invés de strings) quando&amp;nbsp;referenciamos o Modelo de dados usando os objetos de ajuda HTML e AJAX da Visão.&lt;/p&gt;

&lt;p&gt;Com&amp;nbsp;a versão beta da ASP.NET MVC isto não era possível porque as classes de ajuda HtmlHelper e AjaxHelper não expunham o tipo do modelo em suas assinaturas, e assim as pessoas tinham que&amp;nbsp;construir seus métodos de ajuda diretamente a partir da classe base ViewPage&amp;lt;TModel&amp;gt;&amp;nbsp;para atingir este objetivo.&lt;/p&gt;

&lt;p&gt;A versão RC da ASP.NET MVC introduz novos tipos HtmlHelper&amp;lt;TModel&amp;gt; e AjaxHelper&amp;lt;TModel&amp;gt; que são expostos na classe base ViewPage&amp;lt;TModel&amp;gt;. Estes tipos agora permitem que qualquer um construa extensões de ajuda HTML e AJAX fortemente tipadas que usam sintaxe de expressão para referenciar o modelo de dados da Visão. Por exemplo:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step25.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step25.png"&gt;&lt;/p&gt;
&lt;font face="arial"&gt;
&lt;p&gt;Os métodos de extensão de ajuda HTML presentes no assembly principal da ASP.NET MVC V1 ainda usam a&amp;nbsp;sintaxe baseada em strings. O assembly "MVC Futures" lançado hoje (o qual funciona com a&amp;nbsp;versão RC) tem algumas implementações dos métodos de&amp;nbsp;ajuda baseados na sintaxe de expressão. Nós iremos iterar nestes métodos um pouco mais e então consideraremos adicionar os mesmos no assembly principal da ASP.NET MVC no próximo lançamento.&lt;/p&gt;

&lt;p&gt;Você pode também, é claro, adicionar os seus próprios métodos de ajuda (usando strings ou expressões fortemente tipadas). Os métodos de&amp;nbsp;ajuda&amp;nbsp;HTML/AJAX integrados à ASP.NET MVC podem também ser removidos (porque eles&amp;nbsp;são métodos&amp;nbsp;de extensão)&amp;nbsp;caso você queira&amp;nbsp;substituí-los ou sobrescrevê-los com os seus.&lt;/p&gt;
&lt;h3&gt;&lt;u&gt;&lt;font size="2"&gt;Melhorias para o Post de Formulários&lt;/font&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;p&gt;A&amp;nbsp;versão RC inclui várias melhorias específicas para o post de formulários:&lt;/p&gt;

&lt;p&gt;&lt;u&gt;[Bind(Prefix=””)] Não Mais Necessário em Cenários Comuns&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;A RC não mais requer que você explicitamente use o atributo [Bind] (ou sete seu&amp;nbsp;valor de prefixo para&amp;nbsp;“”)&amp;nbsp;de&amp;nbsp;forma a mapear os parâmetros do post do formulário que não possuem prefixos&amp;nbsp;para&amp;nbsp;complicar os parâmetros do método de ação.&lt;/p&gt;

&lt;p&gt;Para ver o que isto significa, vamos implementar o cenário "Criar" para nosso ProductsController. Nós começaremos implementando a versão HTTP-GET do nosso método de ação "Criar". Nós faremos isso com o código a seguir que retorna uma Visão com base em um objeto vazio do tipo Produto:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step26.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step26.png"&gt;&lt;/p&gt;

&lt;p&gt;Nós podemos então clicar com o botão direito do mouse no nosso método de ação, escolher o comando "Adicionar&amp;nbsp;Visão" e gerar o modelo de visão "Criar" que é baseado em um Produto:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step27.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step27.png"&gt;&lt;/p&gt;

&lt;p&gt;Veja acima como nossos métodos de ajuda Html.TexBox() estão referenciando&amp;nbsp;as&amp;nbsp;propriedades&amp;nbsp;"ProductName" e "SupplierID" do nosso objeto Product. Isto gerará HTML igual a seguir onde os atributos da entrada "name" são “ProductName”&amp;nbsp;e “SupplierID”:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step28.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step28.png"&gt;&lt;/p&gt;

&lt;p&gt;Nós podemos então implementar a versão HTTP-POST do nosso método de ação "Criar". Nós teremos nosso método de ação recebendo um objeto do tipo Product como um parâmetro:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step40.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step40.png"&gt;&lt;/p&gt;
&lt;font face="arial"&gt;
&lt;p&gt;Com a ASP.NE MVC Beta nós&amp;nbsp;teríamos que adicionar um atributo&amp;nbsp;[Bind(Prefix=””)]&amp;nbsp;na frente do nosso argumento Product acima – de outra forma a infraestrutura de binding teria somente buscado por valores de post do form com um prefixo "productToCreate" (por exemplo: productToCreate.ProductName e productToCreate.SupplierID) e não teria achado os valores enviados a partir do nosso formulário (os quais não possuem um prefixo).&lt;/p&gt;

&lt;p&gt;Com a&amp;nbsp;versão RC, os binders&amp;nbsp;padrão do método de ação ainda primeiramente tentam mapear um valor de formulário productToCreate.ProductName para o objeto Produto. Se eles não encontrarem tal valor, eles agora também tentam mapear "ProductName" para o objeto Product. Isto torna cenários onde você quer passar objetos complexos para um método de ação sintaticamente limpos e menos&amp;nbsp;verbosos. Você pode tirar vantagem deste recurso em momentos de mapeamento dos objetos do domínio (igual nosso objeto&amp;nbsp;Product acima) como também em classes de Apresentação do Model/ViewModel (igual&amp;nbsp;a classe ProductViewModel).&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Uma&amp;nbsp;implementação completa do nosso método de ação Criar (incluindo&amp;nbsp;entrada de&amp;nbsp;dados básica e validação) pode&amp;nbsp;ser igual a seguir:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step52.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step52.png"&gt;&lt;/p&gt;

&lt;p&gt;Agora nossa ação Criar salvará o objeto Produto se todos os valores forem preenchidos corretamente. Quando um usuário tenta criar um Produto com valores inválidos para as propriedades do Produto (por exemplo: uma string ao invés de um valor Decimal válido), o formulário será exibido novamente e sinalizará a entrada de dados inválida em vermelho:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step41.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step41.png"&gt;&lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial"&gt;&lt;u&gt;Melhorias na API ModelBinder&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial"&gt;&lt;/font&gt;
&lt;p&gt;A infraestrutura de binding (ligação) do modelo de dados dentro da ASP.NET MVC RC foi fatorada para adicionarmos pontos de extensibilidade adicionais, os quais visam permitir o binding customizável e esquemas de validação. Você pode ler mais sobre estes detalhes nas notas de lançamento da ASP.NET MVC RC.&lt;/p&gt;
&lt;font face="arial"&gt;Os Binders do Modelo também podem agora ser registrados para interfaces, em adição ao suporte já existente para classes.&lt;/font&gt;&lt;font face="arial"&gt;&lt;/font&gt; 
&lt;p&gt;&lt;font face="arial"&gt;&lt;u&gt;Suporte ao IDataErrorInfo&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial"&gt;&lt;/font&gt;
&lt;p&gt;O binder do modelo padrão com a ASP.NET MVC agora suporta classes que implementam a interface IDataErrorInfo. Isto permite uma abordagem comum para lançar mensagens de erro de validação de modo que estas possam ser compartilhadas entre Formulários Windows, WPF e agora aplicações ASP.NET MVC.&lt;/p&gt;
&lt;h3&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Melhorias para Testes Unitários&lt;/u&gt;&lt;/font&gt;&lt;/h3&gt;&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;A ASP.NET MVC RC inclui algumas melhorias significantes para o teste unitário: &lt;br&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;ControllerContext alterado para não mais derivar de RequestContext&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;A versão RC inclui uma refatoração da classe ControllerContext que significativamente simplifica os cenários comuns de teste unitário. A classe ControllerContext não mais deriva de RequestContext e agora a mesma encapsula RequestContext e expõe esta como uma propriedade. As propriedades de ControllerContext e seus tipos derivados são agora virtuais ao invés de selados &lt;font face="arial" size="2"&gt;– tornando muito mais fácil criar mock objects - objetos para simular o comportamento de um ControllerContext.&lt;br&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;Para ver como isto ajuda, vamos considerar um método de ação igual a seguir que usa ambos os objetos intrínsecos "Request" e "User": &lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step38.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step38.png" width="532" height="195"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;Para testar o método de ação acima com as versões&amp;nbsp;prévias da ASP.NET MVC&amp;nbsp;teríamos&amp;nbsp;que criar objetos para simular RequestContext e ControllerContext (com alguns construtores não&amp;nbsp;óbvios que também traziam um objeto RouteData).&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;Com a versão RC você pode agora testar unitariamente o ControllerContext igual a seguir (usando &lt;a href="http://code.google.com/p/moq/"&gt;Moq&lt;/a&gt;&amp;nbsp;para&amp;nbsp;criar um ControllerContext para&amp;nbsp;nosso Controlador que nos permite simular as propriedades Request.IsAuthenticated e User.Identity).&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step39.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step39.png"&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;As melhorias na refatoração feita ajudam não somente o teste das ações do Controlador&amp;nbsp;–&amp;nbsp;mas também ajudam a testar filtros, rotas, tipos customizáveis de&amp;nbsp;actionresult, e&amp;nbsp;uma variedade de outros cenários.&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Testes Unitários do AccountsController (Controlador de Contas)&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;A&amp;nbsp;modelo de projeto da ASP.NET MVC incluído na versão RC agora adiciona 25 testes unitários pré-construídos que verificam o comportamento da classe AccountController (o qual é um Controlador adicionado ao projeto por padrão para tratar cenários de login e gerenciamento de conta). Isto torna a refatoração e atualização do AccountsController mais fácil. A implementação do AccountsController também foi modificada para permitir uma integração mais fácil de&amp;nbsp;sistemas de credencial baseados em Provedores não Membership.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;&lt;b&gt;Proteção contra Ataques do tipo Cross Site Request Forgery (CSRF)&lt;/b&gt;&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;Ataques do tipo Cross-site request forgery (CSRF)&amp;nbsp;(também chamados de ataques&amp;nbsp;XSRF) fazem com que usuários de um agente de browser confiável realizem ações não intencionais em um site. Estes ataques&amp;nbsp;geralmente ocorrem em virtude&amp;nbsp;de um usuário ainda estar logado em um outro site. Um website malicioso explora esta vulnerabilidade criando uma requisição para o site original (por exemplo: linkando para uma URL em um site legítimo&amp;nbsp;com um elemento &amp;lt;img src=""/&amp;gt; no site hackeado). A requisição é feita usando o browser do usuário&amp;nbsp;com o token de autenticação e credenciais do usuário. O atacante espera que a autenticação ou cookie de sessão do usuário ainda seja válido e se for, o atacante pode algumas vezes tomar ações que causam desordem no website atacado. Você pode aprender mais a respeito desta técnica destrutiva &lt;a href="http://en.wikipedia.org/wiki/Cross-site_request_forgery"&gt;aqui&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;A ASP.NET MVC agora inclui alguns ajudantes CSRF&amp;nbsp;de proteção pré-construídos que podem ajudar a mitigar ataques do tipo CSRF. Por exemplo, você agora pode usar o método de ajuda Html.AntiForgeryToken() para renderizar um sinalizador de entrada escondido dentro de formulários:&lt;/font&gt;&lt;/p&gt;

&lt;p mce_keep="true"&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step31.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step31.png"&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;Este ajudante cria um&amp;nbsp;cookie HTTP e renderiza um elemento de entrada&amp;nbsp;oculto no nosso formulário. Web-sites maliciosos não serão capazes de acessar ambos os valores.&amp;nbsp;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;Nós podemos então aplicar um novo atributo [ValidateAntiForgeryToken] em qualquer método de ação que nós quisermos proteger:&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step32.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step32.png"&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;Isto forçará&amp;nbsp;a verificação da existência dos tokens apropriados, e prevenirá&amp;nbsp;a execução do&amp;nbsp;nosso método de ação HTTP-POST se os valores não forem condizentes (reduzindo a chance de um ataque CSRF bem sucedido).&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;h3&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Melhorias para o Tratamento de Arquivos&lt;/u&gt;&lt;/font&gt;&lt;/h3&gt;&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;A ASP.NET MVC RC inclui várias melhorias para o tratamento de arquivos:&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;FileResult&amp;nbsp;e o método de ajuda File()&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;A&amp;nbsp;verão RC adiciona uma nova classe FileResult que é usada para indicar que um arquivo está sendo retornado como um ActionResult (resultado da ação) a partir de um método de ação de um Controlador. A classe base do&amp;nbsp;Controlador agora também possui um conjunto de métodos de&amp;nbsp;ajuda&amp;nbsp;File() que tornam&amp;nbsp;fácil a criação e retorno de um FileResult.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Por exemplo, vamos assumir que nós estamos tentando construir um site para gerenciamento de fotos. Nós poderíamos definir uma simples classe "Photo" igual a seguir que encapsula os detalhes sobre uma foto armazenada:&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step33.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step33.png"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Nós poderíamos usar o novo método de ajuda File() igual a seguir para implementar um método de ação "DisplayPhoto" em um Controlador PhotoManager que poderia ser usado para renderizar a foto a partir do valor obtido do banco de dados. No código a seguir nós estamos passando para o método de ajuda File() os bytes para serem renderizados, como também o mime-type do arquivo. Se nós apontássemos um elemento &amp;lt;img src=""/&amp;gt; para a URL de nosso método de ação, o browser mostraria a foto dentro da página:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step34.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step34.png"&gt;&lt;/p&gt;

&lt;p&gt;Se nós quiséssemos que um usuário final fosse capaz de fazer o download da foto para salvá-la localmente em seu computador, nós poderíamos implementar um método de ação "DownloadPhoto" igual a seguir. No código a seguir, nós estamos passando um terceiro parâmetro – o qual fará com que a ASP.NET MVC sete um header (cabeçalho) que&amp;nbsp;faz com que&amp;nbsp;o browser mostre uma janela de diálogo "Save As..." (Salvar Como...), a qual é pré-populada/preenchida com o nome do arquivo fornecido:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step35.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step35.png"&gt;&lt;/p&gt;

&lt;p&gt;Quando um usuário clica no link que aponta para a&amp;nbsp;URL /PhotoManager/DowloadPhoto/1232 ele será&amp;nbsp;avisado para salvar a imagem:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step36.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step36.png"&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Suporte ao Upload de Arquivo&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p mce_keep="true"&gt;&amp;nbsp;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;A versão RC também inclui um binder para o modelo pré-construído para fazer o upload de arquivos e conteúdo mime multi-parte.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Por exemplo, nós poderíamos ter um &amp;lt;form&amp;gt; cujo atributo enctype esteja setado para "multipart/form-data"&amp;nbsp;para quando realizarmos um post para a URL /PhotoManager/UploadPhoto. Se um&amp;nbsp;elemento &amp;lt;input type=”file” name=”fileToUpload”/&amp;gt; estivesse dentro do formulário este faria com que o arquivo selecionado pelo usuário final fosse&amp;nbsp;passado para nosso método de ação como um objeto HttpPostedFileBase:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step37.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step37.png"&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;Nós poderíamos então usar um objeto HttpPostedFileBase para ter acesso aos bytes do arquivo sendo transferido para o servidor&amp;nbsp;em formato raw, seu mime-type e opcionalmente salvar o mesmo no banco de dados ou disco.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;&lt;b&gt;Melhorias para AJAX&lt;/b&gt;&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;A ASP.NET MVC RC inclui várias melhorias para AJAX:&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Arquivos do Intellisense da jQuery&amp;nbsp;incluídos dentro do&amp;nbsp;Modelo de Projeto da ASP.NET MVC&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;Novos&amp;nbsp;projetos ASP.NET&amp;nbsp;MVC agora incluem ambas as bibliotecas padrão da jQuery (versões completa e comprimida), como também os arquivos da documentação -vsdoc para o intellisense&amp;nbsp;usados pelo Visual Studio para prover um rico suporte intellisense para a jQuery (você pode aprender mais sobre isto &lt;a href="http://weblogs.asp.net/scottguportuguese/archive/2008/11/21/intellisense-para-a-jQuery-no-visual-studio-2008-.aspx" target="_blank" mce_href="http://weblogs.asp.net/scottguportuguese/archive/2008/11/21/intellisense-para-a-jQuery-no-visual-studio-2008-.aspx"&gt;aqui&lt;/a&gt;):&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step30.png" mce_src="http://www.scottgu.com/blogposts/mvcrc/mvcrc/step30.png"&gt;&lt;/p&gt;
Isto permite um intellisense rico para o JavaScript da jQuery dentro dos blocos de script do cliente e arquivos JavaScript: 
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/jquerynov/step5.png" mce_src="http://www.scottgu.com/blogposts/jquerynov/step5.png"&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;A versão RC de hoje&amp;nbsp;vem com a jQuery 1.2.6. Nós estamos planejando&amp;nbsp;entregar&amp;nbsp;o próximo lançamento da jQuery em sua versão 1.3.1 para o lançamento final da ASP.NET MVC 1.0, e iremos incluir um arquivo JavaScript para intellisense atualizado para esta nova versão da jQuery.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Propriedade Request.IsAjaxRequest&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;A propriedade&amp;nbsp;&lt;/font&gt;&lt;font face="arial" size="2"&gt;Request.IsAjaxRequest pode ser usada para detectar&amp;nbsp;se uma requisição está sendo enviada a partir de uma chamada AJAX do lado do cliente (e é útil para cenários onde você quer degradar de maneira elegante&amp;nbsp;caso o&amp;nbsp;suporte AJAX não esteja habilitado). Este é um cabeçalho muito bem conhecido enviado pelas bibliotecas JavaScript tais como Prototype, jQuery e Dojo – e agora permite um modo unificado para checar por AJAX dentro de uma requisição da ASP.NET MVC.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;JavaScriptResult ActionResult&amp;nbsp;e método de ajuda JavaScript()&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;A classe base&amp;nbsp;do Controlador agora tem um método de ajuda&amp;nbsp;JavaScript() que retorna&amp;nbsp;uma nova classe&amp;nbsp;ActionResult do tipo JavaScriptResult. Isto permite o suporte ao retorno de&amp;nbsp;JavaScript em formato raw que&amp;nbsp;será então&amp;nbsp;executado no lado do cliente pelos&amp;nbsp;métodos de ajuda&amp;nbsp;pré-construídos na ASP.NET MVC.&amp;nbsp;Isto pode ser útil em cenários em que você quer que JavaScript condicional seja executado no cliente com&amp;nbsp;base na lógica do servidor.&lt;/font&gt;&lt;/p&gt;
&lt;h3&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Sumário&lt;/u&gt;&lt;/font&gt;&lt;/h3&gt;&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;Nós estamos muito&amp;nbsp;excitados por estarmos na "reta final" da ASP.NET MVC V1. Por favor reporte qualquer problema que você encontre na versão RC o mais rápido possível de modo que possamos resolver tal problema para a versão final. O time planeja monitorar cuidadosamente o retorno&amp;nbsp;nas próximas semanas, e assumindo que nenhum problema maior ocorra, lançaremos a versão oficial V1 no próximo mês.&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;Espero que ajude,&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;Scott&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: 12px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px;" class="Apple-style-span"&gt;(Texto traduzido do&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2009/01/27/asp-net-mvc-1-0-release-candidate-now-available.aspx" style="color: rgb(51, 153, 255);" target="_blank" mce_href="http://weblogs.asp.net/scottgu/archive/2009/01/27/asp-net-mvc-1-0-release-candidate-now-available.aspx"&gt;post&lt;/a&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;original por&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://leniel.net" style="color: rgb(0, 102, 204);" title="Leniel Macaferi's blog" target="_blank" mce_href="http://leniel.net"&gt;Leniel Macaferi&lt;/a&gt;.)&lt;/span&gt;&lt;/p&gt;

&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6872126" width="1" height="1"&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NcV2JgmxMXspqfX0W6bysfFg_To/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NcV2JgmxMXspqfX0W6bysfFg_To/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NcV2JgmxMXspqfX0W6bysfFg_To/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NcV2JgmxMXspqfX0W6bysfFg_To/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scottguportuguese/~4/dItZfo20hZc" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/MVC/default.aspx">MVC</category><feedburner:origLink>http://weblogs.asp.net/scottguportuguese/archive/2009/01/27/asp-net-mvc-1.0-release-candidate-candidata-a-lancamento-agora-disponivel.aspx</feedburner:origLink></item><item><title>Novo controle para Gráficos da ASP.NET: &lt;asp:chart runat="server"/&gt;</title><link>http://feedproxy.google.com/~r/scottguportuguese/~3/akg3Mpu1Yow/novo-controle-para-graficos-da-asp-net-asp-chart-runat-server.aspx</link><pubDate>Tue, 25 Nov 2008 03:38:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6756189</guid><dc:creator>Leniel Macaferi</dc:creator><slash:comments>3</slash:comments><wfw:commentRss>http://weblogs.asp.net/scottguportuguese/rsscomments.aspx?PostID=6756189</wfw:commentRss><wfw:comment>http://weblogs.asp.net/scottguportuguese/commentapi.aspx?PostID=6756189</wfw:comment><comments>http://weblogs.asp.net/scottguportuguese/archive/2008/11/25/novo-controle-para-graficos-da-asp-net-asp-chart-runat-server.aspx#comments</comments><description>&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;

&lt;p style="background-color: rgb(255, 255, 255);"&gt;A &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;Micosoft&lt;/span&gt; recentemente lançou um novo controle &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;ASP&lt;/span&gt;.&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;NET&lt;/span&gt; muito legal
- &amp;lt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;asp&lt;/span&gt;:&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;chart&lt;/span&gt; /&amp;gt; - que pode ser usado gratuitamente com a &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;ASP&lt;/span&gt;.&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;NET&lt;/span&gt;
3.5 para permitir ricos cenários de gráficos baseados no &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;browser&lt;/span&gt;:&lt;font face="arial" size="2"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&amp;amp;DisplayLang=en" target="_blank"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;Faça&lt;/span&gt; o &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;download&lt;/span&gt; dos controles de Gráfico da Microsoft&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=1D69CE13-E1E5-4315-825C-F14D33A303E9&amp;amp;displaylang=en" target="_blank"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;Faça&lt;/span&gt; o &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;download&lt;/span&gt; da &lt;span goog-spell-original="ferramnta" style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;ferramenta&lt;/span&gt; de suporte do &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;VS&lt;/span&gt; 2008 para os Controles de Gráfico&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=1591" target="_blank"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;Faça&lt;/span&gt; o &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;download&lt;/span&gt; dos exemplos de Controles de Gráfico da Microsoft&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=EE8F6F35-B087-4324-9DBA-6DD5E844FD9F&amp;amp;displaylang=en" target="_blank"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;Faça&lt;/span&gt; o &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;download&lt;/span&gt; da documentação dos Controles de Gráfico da Microsoft&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/MSWinWebChart/threads/" target="_blank"&gt;Visite o fórum dos Controles de Gráfico da Microsoft&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/font&gt;&lt;/p&gt;

&lt;p style="background-color: rgb(255, 255, 255);"&gt;Uma
vez instalado o controle &amp;lt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;asp&lt;/span&gt;:&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;chart&lt;/span&gt; /&amp;gt; aparece abaixo da &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;tab&lt;/span&gt;
"Data" na caixa de ferramentas, e pode ser facilmente declarado em
qualquer página &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;ASP&lt;/span&gt;.&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;NET&lt;/span&gt; como um controle de servidor padrão: &lt;br&gt;&lt;/p&gt;

&lt;p style="background-color: rgb(255, 255, 255);"&gt;&lt;font face="arial" size="2"&gt;&lt;img src="http://www.scottgu.com/blogposts/chart/step0.png" mce_src="http://www.scottgu.com/blogposts/chart/step0.png" width="446" height="55"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p style="background-color: rgb(255, 255, 255);"&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;O &amp;lt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;asp&lt;/span&gt;:&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;chart&lt;/span&gt;
/&amp;gt;suporta uma rica variedade de opções de gráfico - &lt;span style="" class="goog-spellcheck-word"&gt;incluindo&lt;/span&gt; pizza, área, limite, ponto, círculo, acumulação, distribuição de dados, &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;ajax&lt;/span&gt;
&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;interativo&lt;/span&gt;, rosca, e mais. Você pode e&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;staticamente&lt;/span&gt; criar os dados do
gráfico dentro da declaração do controle, ou alternativamente usar
data-&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;binding&lt;/span&gt; para &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;populá&lt;/span&gt;-lo dinamicamente. No tempo de execução o
controle do servidor gera uma imagem (por exemplo um arquivo .&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;PNG&lt;/span&gt;) que
é referenciado no HTML cliente da página usando um elemento
&amp;lt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;img&lt;/span&gt;/&amp;gt; gerado pelo controle &amp;lt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;asp&lt;/span&gt;:&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;chart&lt;/span&gt;/&amp;gt;. O controle de
servidor suporta a habilidade de cache da imagem do gráfico, como
também pode salvá-la no disco em cenários de persistência. O controle
não requer nenhum outro software de servidor instalado e irá funcionar
com qualquer página &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;ASP&lt;/span&gt;.&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;NET&lt;/span&gt; padrão.&lt;/p&gt;
Para ter uma noção de como usar o controle &amp;lt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;asp&lt;/span&gt;:&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;chart&lt;/span&gt; /&amp;gt; eu recomendo o &lt;/font&gt;&lt;a href="http://code.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=1591" target="_blank"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;download&lt;/span&gt; do &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;Projeto&lt;/span&gt; de Exemplo dos Controles de Gráfico da Microsoft&lt;/a&gt;. Este
&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;projeto&lt;/span&gt; inclui mais de 200 páginas &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;ASP&lt;/span&gt;.&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;NET&lt;/span&gt; de exemplo que você pode
executar localmente. Simplesmente abra o &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;projeto&lt;/span&gt; no &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;VS&lt;/span&gt; 2008 e clique em
executar para vê-las em &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;ação&lt;/span&gt; - você pode então abrir o código .&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;aspx&lt;/span&gt; de
cada página para ver como os gráficos são implementados.&lt;/p&gt;

&lt;p style="background-color: rgb(255, 255, 255);"&gt;&lt;font face="arial" size="2"&gt;O exemplo a seguir (em &lt;/font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;Chart&lt;/span&gt; &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;Types&lt;/span&gt;-&amp;gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;Line&lt;/span&gt;
&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;Charts&lt;/span&gt;-&amp;gt;3D &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;Line&lt;/span&gt; &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;and&lt;/span&gt; Curve &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;Charts&lt;/span&gt;) mostra como montar um gráfico de Linha, &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;Spline&lt;/span&gt; e &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;StepLine&lt;/span&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p style="background-color: rgb(255, 255, 255);"&gt;&lt;img src="http://www.scottgu.com/blogposts/chart/step1.png" mce_src="http://www.scottgu.com/blogposts/chart/step1.png" width="803" height="607"&gt;&lt;/p&gt;

&lt;p style="background-color: rgb(255, 255, 255);"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;O
exemplo a seguir (localizado em &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;Chart&lt;/span&gt; &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;Types&lt;/span&gt;-&amp;gt;Pie &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;and&lt;/span&gt; &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;Doughnut&lt;/span&gt;
&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;Charts&lt;/span&gt;) mostra uma variedade de gráficos do tipo pizza e opções 3D para
gráficos do tipo rosca:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p style="background-color: rgb(255, 255, 255);"&gt;&lt;img src="http://www.scottgu.com/blogposts/chart/step2.png" mce_src="http://www.scottgu.com/blogposts/chart/step2.png" width="800" height="633"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style="background-color: rgb(255, 255, 255);"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;O exemplo a seguir (localizado em &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;Chart&lt;/span&gt; &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;Types&lt;/span&gt;-&amp;gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;Advanced&lt;/span&gt; Financial &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;Charts&lt;/span&gt;) mostra alguns exemplos de gráficos financeiros:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p style="background-color: rgb(255, 255, 255);"&gt;&lt;img src="http://www.scottgu.com/blogposts/chart/step3.png" mce_src="http://www.scottgu.com/blogposts/chart/step3.png" width="824" height="584"&gt;&lt;/p&gt;

&lt;p style="background-color: rgb(255, 255, 255);"&gt;&lt;font size="2"&gt;&lt;font face="arial"&gt;A&lt;/font&gt;&lt;/font&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;lém&lt;/span&gt; dos exemplos acima, você pode fazer o &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;download&lt;/span&gt; da &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=EE8F6F35-B087-4324-9DBA-6DD5E844FD9F&amp;amp;displaylang=en" target="_blank"&gt;Documentação dos Controles de Gráfico da Microsoft&lt;/a&gt; ou fazer perguntas no &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/MSWinWebChart/threads/" target="_blank"&gt;Fórum dos Controles de Gráfico&lt;/a&gt;&lt;font size="2"&gt;&lt;font face="arial"&gt; &lt;/font&gt;&lt;/font&gt;para aprender mais.&lt;font face="arial" size="2"&gt;    
&lt;p&gt;Isto
deve prover uma útil (e gratuita) adição para a sua caixa de
ferramentas de funcionalidades da &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;ASP&lt;/span&gt;.&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;NET&lt;/span&gt;, permitindo que você
facilmente adicione cenários de visualização e fluxo de dados mais
elaborados em suas aplicações &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;ASP&lt;/span&gt;.&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="goog-spellcheck-word"&gt;NET&lt;/span&gt;.&lt;/p&gt;
    
&lt;p&gt;Espero que ajude,&lt;/p&gt;
&lt;p&gt;Scott&lt;/p&gt;
&lt;p&gt;&lt;span class="Apple-style-span" style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: rgb(0, 0, 0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; text-align: left; orphans: 2; widows: 2;"&gt;(Texto traduzido do&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot-gt.aspx" style="color: rgb(51, 153, 255);" target="_blank" mce_href="http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot-gt.aspx"&gt;post&lt;/a&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;original por&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://lenielmacaferi.blogspot.com" title="Leniel Macaferi's blog" style="color: rgb(0, 102, 204);" target="_blank" mce_href="http://lenielmacaferi.blogspot.com"&gt;Leniel Macaferi&lt;/a&gt;.)&lt;/span&gt; &lt;br&gt;&lt;/p&gt;
&lt;/font&gt;&lt;/p&gt;

&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6756189" width="1" height="1"&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AG-AgonaLgQYPryy5xAyPOm-aKM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AG-AgonaLgQYPryy5xAyPOm-aKM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AG-AgonaLgQYPryy5xAyPOm-aKM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AG-AgonaLgQYPryy5xAyPOm-aKM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scottguportuguese/~4/akg3Mpu1Yow" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Novidades+da+Comunidade/default.aspx">Novidades da Comunidade</category><feedburner:origLink>http://weblogs.asp.net/scottguportuguese/archive/2008/11/25/novo-controle-para-graficos-da-asp-net-asp-chart-runat-server.aspx</feedburner:origLink></item><item><title>Intellisense para a jQuery no VS 2008 </title><link>http://feedproxy.google.com/~r/scottguportuguese/~3/lDzM2ILHxJs/intellisense-para-a-jQuery-no-visual-studio-2008-.aspx</link><pubDate>Fri, 21 Nov 2008 07:07:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6765010</guid><dc:creator>Leniel Macaferi</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://weblogs.asp.net/scottguportuguese/rsscomments.aspx?PostID=6765010</wfw:commentRss><wfw:comment>http://weblogs.asp.net/scottguportuguese/commentapi.aspx?PostID=6765010</wfw:comment><comments>http://weblogs.asp.net/scottguportuguese/archive/2008/11/21/intellisense-para-a-jQuery-no-visual-studio-2008-.aspx#comments</comments><description>&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;Mês passado eu postei sobre &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx" target="_blank"&gt;como a Microsoft está estendendo o suporte à jQuery&lt;/a&gt;. Nas últimas semanas nós temos trabalhado com o time da jQuery para adicionar um ótimo suporte ao intellisense da jQuery dentro do Visual Studio 2008 e Visual Web Developer 2008 Express (o qual é gratuito). O suporte agora está disponível para download e uso.&lt;br&gt;&lt;/p&gt;
    &lt;h3&gt;Passos para habilitar o intellisense para a jQuery no VS 2008&lt;/h3&gt;    
&lt;p&gt;Para habilitar o intellisense para a jQuery dentro do VS você deverá seguir três passos:&lt;br&gt;&lt;/p&gt;
    
&lt;p&gt;&lt;u&gt;&lt;b&gt;Passo 1: Instale o VS 2008 SP1&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;
    
&lt;p&gt;O VS
2008 SP1 adiciona recursos mais ricos para o suporte a intellisense de JavaScript no Visual Studio, e adiciona o suporte para auto-completar código para uma ampla gama de bibliotecas JavaScript.&lt;br&gt;&lt;/p&gt;
    
&lt;p&gt;Você pode fazer o download do VS 2008 SP1 e do Visual Web Developer 2008 Express SP1 &lt;a href="http://msdn.microsoft.com/en-us/vstudio/cc533448.aspx" target="_blank"&gt;aqui&lt;/a&gt;.&lt;/p&gt;
    
&lt;p&gt;&lt;b&gt;&lt;u&gt;Passo 2: Instale o Patch KB958502 do VS para suportar os arquivos IntelliSense "-vsdoc.js"&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;
    
&lt;p&gt;Há duas semanas atrás nós lançamos um patch que você pode aplicar no VS 2008 SP1 e VSWD 2008 Express SP1 que faz com que o Visual Studio verifique a presença de um arquivo "-vsdoc.js" opcional quando uma biblioteca JavaScript é referenciada, e se presente usa-o para gerenciar o motor da IntelliSense para JavaScript.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Estes arquivos "-vsdoc.js" anotados podem incluir comentários XML que fornecem a documentação de help para métodos JavaScript, como também dicas adicionais de código baseadas no intellisense para assinaturas JavaScript dinâmicas que não podem ser automaticamente inferidas. Você pode aprender mais sobre este patch &lt;a href="http://blogs.msdn.com/webdevtools/archive/2008/11/07/hotfix-to-enable-vsdoc-js-intellisense-doc-files-is-now-available.aspx" target="_blank"&gt;aqui&lt;/a&gt;. Você pode fazer o download do patch gratuitamente &lt;a href="http://code.msdn.microsoft.com/KB958502/Release/ProjectReleases.aspx?ReleaseId=1736" target="_blank"&gt;aqui&lt;/a&gt;.&lt;/p&gt;
    
&lt;p&gt;&lt;b&gt;&lt;u&gt;Passo 3: Faça o download do arquivo jQuery-vsdoc.js&lt;br&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;
    
&lt;p&gt;Nós trabalhamos com o time da jQuery para criar um arquivo jQuery-vsdoc.js que fornece os comentários de ajuda e suporte para o intellisense JavaScript em métodos de seleção encadeados da jQuery. Você pode fazer o download da jQuery e do arquivo jQuery-vsdoc a partir da &lt;a href="http://docs.jquery.com/Downloading_jQuery#Download_jQuery" target="_blank"&gt;página oficial de download&lt;/a&gt; no site da jQuery:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/jquerynov/step1.png" mce_src="http://www.scottgu.com/blogposts/jquerynov/step1.png"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;Salve o arquivo jquery-vsdoc.js junto ao arquivo jquery.js no seu projeto (e tenha certeza que o prefixo do nome está de acordo com o nome do arquivo da jquery):&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;img src="http://www.scottgu.com/blogposts/jquerynov/step2.png" mce_src="http://www.scottgu.com/blogposts/jquerynov/step2.png" width="254" height="180"&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;font&gt;&lt;font face="arial" size="2"&gt;Você pode então referenciar o arquivo padrão da jquery com um elemento html &amp;lt;script/&amp;gt; como a seguir:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/jquerynov/step3.png" mce_src="http://www.scottgu.com/blogposts/jquerynov/step3.png" width="655" height="45"&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;Alternativamente você pode referenciar o arquivo usando um controle &amp;lt;asp:scriptmanager/&amp;gt;, ou adicionar um comentário /// &amp;lt;reference/&amp;gt; na parte superior de um arquivo .js standalone.&lt;br&gt;&lt;/p&gt;
    
&lt;p&gt;Quando você faz isso o VS irá procurar por um arquivo -vsdoc.js presente no mesmo diretório do arquivo de script que você está referenciando, e se encontrado irá usá-lo para a ajuda e intellisense. &lt;br&gt;&lt;/p&gt;
    
&lt;p&gt;Por exemplo, nós poderíamos usar jQuery para fazer uma requisição get baseada em JSON, e automaticamente visualizar intellisense para o método (a partir de um $.):&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/jquerynov/step4.png" mce_src="http://www.scottgu.com/blogposts/jquerynov/step4.png" width="465" height="304"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;Como também obter intellisense para os parâmetros do método $.getJSON():&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/jquerynov/step5.png" mce_src="http://www.scottgu.com/blogposts/jquerynov/step5.png" width="453" height="93"&gt;&lt;/p&gt;
&lt;p&gt;O IntelliSense continuará a trabalhar se você encadear uma função de callback dentro da chamada de um método. Por exemplo, nós poderíamos iterar sobre cada objeto JSON retornado a partir do servidor:&lt;/p&gt;
&lt;img src="http://www.scottgu.com/blogposts/jquerynov/step6.png" mce_src="http://www.scottgu.com/blogposts/jquerynov/step6.png" width="641" height="149"&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;Para cada um dos itens nós poderíamos executar uma função de callback aninhada:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/jquerynov/step7.png" mce_src="http://www.scottgu.com/blogposts/jquerynov/step7.png" width="506" height="167"&gt;&lt;/p&gt;
&lt;p&gt;Nós poderíamos usar cada função de callback para dinamicamente adicionar uma imagem em uma lista (o atributo src da imagem irá apontar para a URL do arquivo de imagem retornado no JSON):&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/jquerynov/step8.png" mce_src="http://www.scottgu.com/blogposts/jquerynov/step8.png" width="867" height="165"&gt;&lt;br&gt;&lt;br&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;Em cada imagem criada dinamicamente nós poderíamos ligar um tratador de evento de forma que quando a imagem for clicada esta desapareça através de uma animação:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/jquerynov/step10.png" mce_src="http://www.scottgu.com/blogposts/jquerynov/step10.png" width="872" height="222"&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;Perceba como o intellisense da jQuery funciona de uma maneira limpa em cada nível de nosso código.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;h3&gt;Dicas e macetes para o intellisense de JavaScript&lt;/h3&gt;    
&lt;p&gt;Jeff King do time da Web Tools &lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2008/11/18/jscript-intellisense-faq.aspx" target="_blank"&gt;escreveu um ótimo post&lt;/a&gt; nesta semana que responde várias perguntas rotineiras sobre como o intellisense de JavaScript funciona no VS 2008. Eu recomendo a leitura.&lt;/font&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p&gt;Um macete que ele mostra o qual irei reforçar aqui é uma técnica que você pode empregar quando você quer ter o intellisense JavaScript funcionando dentro de user-controls/partials (controles do usuário / parciais) - arquivos .ascx. Geralmente você não quer incluir uma referência a uma biblioteca JavaScript &amp;lt;script src=""/&amp;gt; dentro destes arquivos, e ao invés disso você quer que a referência exista em uma master page ou na página de conteúdo na qual o controle é usado. O problema que ocorre quando você faz isso é que por padrão o VS não tem como saber que este script está disponível dentro de um contre do usuário - e assim não conseguirá prover intellisense para você.&lt;br&gt;&lt;/p&gt;
    
&lt;p&gt;Uma maneira de contornar este problema é adicionar o elemento &amp;lt;script src=""/&amp;gt; no controle do usuário, cercando-o com um bloco &amp;lt;% if %&amp;gt; que sempre retornará falso no tempo de execução:&lt;br&gt;&lt;/p&gt;
&lt;img src="http://www.scottgu.com/blogposts/jquerynov/step11.png" mce_src="http://www.scottgu.com/blogposts/jquerynov/step11.png" width="680" height="87"&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;No tempo de execução a ASP.NET nunca renderizará a tag script (porque a mesma está dentro de um bloco if que é sempre falso). De qualquer modo, o VS irá avaliar a tag &amp;lt;script/&amp;gt; e prover intellisense para a mesma dentro do controle do usuário. Esta é uma técnica útil para usar em cenários iguais a este do controle do usuário. Jeff tem também mais detalhes no seu&amp;nbsp;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2008/11/18/jscript-intellisense-faq.aspx" target="_blank"&gt;post FAQ&lt;/a&gt; como também em seu &lt;a href="http://blogs.msdn.com/webdevtools/archive/2008/10/28/rich-intellisense-for-jquery.aspx" target="_blank"&gt;post original sobre intellisense para a jQuery&lt;/a&gt;. Rick Strahl também tem um bom post sobre o usuo de intellisense com jQuery &lt;a href="http://www.west-wind.com/Weblog/posts/536756.aspx" target="_blank"&gt;aqui&lt;/a&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;h3&gt;Mais Informações&lt;br&gt;&lt;/h3&gt;    
&lt;p&gt;Para aprender mais sobre jQuery, eu recomendo que você assista a palestra de &lt;font&gt;&lt;font face="arial" size="2"&gt;Stephen Walther dada &lt;/font&gt;&lt;/font&gt;na PDC intitulada &lt;a href="http://channel9.msdn.com/pdc2008/PC31/" target="_blank"&gt;ASP.NET e jQuery&lt;/a&gt;. &lt;a href="http://weblogs.asp.net/stephenwalther/archive/2008/10/29/jquery-and-asp-net-ajax-demo-code.aspx" target="_blank"&gt;Clique aqui&lt;/a&gt; para fazer o download dos códigos de exemplos e da apresentação powerpoint.&lt;/p&gt;
    
&lt;p&gt;Rick Strahl também tem um ótimo artigo intitulado &lt;a href="http://www.west-wind.com/presentations/jQuery/default.aspx"&gt;Introdução à jQuery&lt;/a&gt; que versa sobre como usar jQuery com ASP.NET. Karl Seguin tem dois bons posts sobre jQuery&amp;nbsp;&lt;a href="http://dotnetslackers.com/articles/ajax/JQuery-Primer-Part-1.aspx" target="_blank"&gt;aqui&lt;/a&gt; e &lt;a href="http://dotnetslackers.com/articles/ajax/JQuery-Primer-Part-2.aspx" target="_blank"&gt;aqui&lt;/a&gt; os quais provêem pequenas introduções sobre o básico de como usar jQuery.&lt;/p&gt;
    
&lt;p&gt;Eu recomendo o livro &lt;a href="http://www.amazon.com/gp/product/1933988355/102-4745100-5076967?ie=UTF8&amp;amp;tag=scoblo04-20&amp;amp;linkCode=xm2&amp;amp;camp=1789&amp;amp;creativeASIN=1933988355" target="_blank"&gt;jQuery em Ação&lt;/a&gt;.&lt;/p&gt;
    
&lt;p&gt;Espero que ajude,&lt;/p&gt;
    
&lt;p&gt;Scott&lt;/p&gt;
&lt;/font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;span class="Apple-style-span" style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: rgb(0, 0, 0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; text-align: left; orphans: 2; widows: 2;"&gt;(Texto traduzido do&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/11/21/jquery-intellisense-in-vs-2008.aspx" style="color: rgb(51, 153, 255);" target="_blank" mce_href="http://weblogs.asp.net/scottgu/archive/2008/11/21/jquery-intellisense-in-vs-2008.aspx"&gt;post&lt;/a&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;original por&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://leniel.net" title="Leniel Macaferi's blog" style="color: rgb(0, 102, 204);" target="_blank" mce_href="http://leniel.net"&gt;Leniel Macaferi&lt;/a&gt;.)&lt;/span&gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6765010" width="1" height="1"&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VRvfHXu3o9qLPyMduc1ky_sQWRs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VRvfHXu3o9qLPyMduc1ky_sQWRs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VRvfHXu3o9qLPyMduc1ky_sQWRs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VRvfHXu3o9qLPyMduc1ky_sQWRs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scottguportuguese/~4/lDzM2ILHxJs" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Novidades+da+Comunidade/default.aspx">Novidades da Comunidade</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Atlas/default.aspx">Atlas</category><feedburner:origLink>http://weblogs.asp.net/scottguportuguese/archive/2008/11/21/intellisense-para-a-jQuery-no-visual-studio-2008-.aspx</feedburner:origLink></item><item><title>jQuery e Microsoft </title><link>http://feedproxy.google.com/~r/scottguportuguese/~3/qo9duOITSwY/jquery-e-microsoft-.aspx</link><pubDate>Sun, 28 Sep 2008 15:32:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6646402</guid><dc:creator>Leniel Macaferi</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://weblogs.asp.net/scottguportuguese/rsscomments.aspx?PostID=6646402</wfw:commentRss><wfw:comment>http://weblogs.asp.net/scottguportuguese/commentapi.aspx?PostID=6646402</wfw:comment><comments>http://weblogs.asp.net/scottguportuguese/archive/2008/09/28/jquery-e-microsoft-.aspx#comments</comments><description>&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;

&lt;p mce_keep="true"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;&lt;a href="http://jquery.com/" class="" target="_blank" mce_href="http://jquery.com/"&gt;jQuery&lt;/a&gt;&lt;/font&gt;&lt;/u&gt; é uma biblioteca JavaScript leve e de código fonte livre (somente 15kb de tamanho) que em um espaço de tempo relativamente pequeno se tornou uma das bibliotecas mais populares na web.&lt;/p&gt;

&lt;p mce_keep="true"&gt;Uma grande parte do apelo da jQuery é que ela permite que você elegantemente (e eficientemente) encontre e manipule elementos HTML com um mínimo de linhas de código. jQuery&amp;nbsp;suporta isto através de uma boa API "selector" que permite aos desenvolvedores pesquisar elementos HTML, e então aplicar "comandos" nestes. Uma das características dos comandos jQuery é que eles podem ser "encadeados" - de forma que o resultado de um comando pode ser a entrada (input, alimentação) de outro. jQuery também inclui um conjunto de APIs de animação nativas que podem ser usadas como comandos. A combinação permite que você realize algumas coisas maneiras com somente algumas tecladas.&lt;/p&gt;

&lt;p mce_keep="true"&gt;Por exemplo, o JavaScript abaixo usa jQuery para encontrar todos os elementos &amp;lt;div&amp;gt; dentro de uma página, os quais tenham uma classe CSS "product", e então anima-os para desaparecerem lentamente:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/jquery/step1.png" mce_src="http://www.scottgu.com/blogposts/jquery/step1.png"&gt;&lt;/p&gt;

&lt;p&gt;Como outro exemplo, o JavaScript abaixo usa jQuery para encontrar uma &amp;lt;table&amp;gt; específica na página com um id "datagrid1", e então retorna cada linha &amp;lt;tr&amp;gt;&amp;nbsp;de dentro do datagrid, e&amp;nbsp;faz com que estes elementos &amp;lt;tr&amp;gt; tenham uma classe CSS&amp;nbsp;igual a&amp;nbsp;"even"&amp;nbsp;- a qual poderia ser usada para alternar a cor de fundo de cada linha:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/jquery/step2.png" mce_src="http://www.scottgu.com/blogposts/jquery/step2.png"&gt;&lt;/p&gt;

&lt;p&gt;&lt;i&gt;[Nota: ambos os exemplos foram adaptados de fragmentos de código do excelente livro&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/1933988355/102-4745100-5076967?ie=UTF8&amp;amp;tag=scoblo04-20&amp;amp;linkCode=xm2&amp;amp;camp=1789&amp;amp;creativeASIN=1933988355" target="_blank"&gt;jQuery in Action&lt;/a&gt;&amp;nbsp;(jQuery em Ação)]&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;Prover a&amp;nbsp;habilidade de realizar operações de seleção e animação iguais as mostradas acima é algo que muitos desenvolvedores têm nos pedido para adicionar na ASP.NET AJAX, e&amp;nbsp;este suporte foi algo que listamos como um recurso proposto no plano de desenvolvimento da ASP.NET AJAX (&lt;a href="http://weblogs.asp.net/bleroy/archive/2008/07/02/asp-net-ajax-roadmap-published.aspx" target="_blank"&gt;ASP.NET AJAX Roadmap&lt;/a&gt;) que publicamos alguns meses atrás. Porém, assim que o time começou investigar a construção deste recurso, eles rapidamente perceberam que o suporte à jQuery para estes cenários já é excelente, e que existe um enorme ecossistema e comunidade construídos sobre este. A biblioteca jQuery também funciona bem nas mesmas páginas&amp;nbsp;com ASP.NET AJAX e ASP.NET AJAX Control Toolkit.&lt;/p&gt;

&lt;p&gt;Ao invés de duplicar funcionalidade, nós pensamos, não seria ótimo usar jQuery como esta se encontra, e adicionar esta como um padrão, suportado, biblioteca no VS/ASP.NET, e então focar nossa energia construindo novos recursos que tirem vantagem desta? Nós enviamos um e-mail para o time da jQuery para estimar o interesse deles nesta proposta, e rapidamente nós recebemos uma resposta explicitando que esta parece ser uma idéia interessante.&lt;/p&gt;
&lt;h3&gt;&lt;u&gt;Dando suporte à&amp;nbsp;jQuery&lt;/u&gt;&lt;/h3&gt;
&lt;p&gt;Estou entusiasmado hoje ao anunciar que a Microsoft irá entregar&amp;nbsp;a jQuery com o Visual Studio a partir de agora. Nós iremos distribuir a biblioteca JavaScript jQuery como esta se encontra, e não iniciaremos um novo desenvolvimento, nem faremos modificações no código fonte da árvore de desenvolvimento da versão principal da jQuery. Os arquivos continuarão a ser usados e entregues sobre a licença MIT existente da&amp;nbsp;jQuery.&lt;/p&gt;

&lt;p&gt;Nós iremos também distribuir versões com anotações intellisense que provêem uma ótima integração no intellisense do Visual Studio e também integração de ajuda no tempo de construção.&amp;nbsp;Por exemplo:&lt;/p&gt;

&lt;p mce_keep="true"&gt;&lt;img src="http://www.scottgu.com/blogposts/jquery/step3.png" mce_src="http://www.scottgu.com/blogposts/jquery/step3.png"&gt;&lt;/p&gt;

&lt;p mce_keep="true"&gt;e com um comando encadeado:&lt;/p&gt;

&lt;p mce_keep="true"&gt;&lt;img src="http://www.scottgu.com/blogposts/jquery/step4.png" mce_src="http://www.scottgu.com/blogposts/jquery/step4.png"&gt;&lt;/p&gt;

&lt;p&gt;O suporte às anotações intellisense da jQuery estará disponível como um download grátis em poucas semanas (e funcionará muito bem com o VS 2008 SP1 e com o gratuito Visual&amp;nbsp;Web Developer 2008&amp;nbsp;Express SP1).&amp;nbsp;O novo&amp;nbsp;download da&amp;nbsp;ASP.NET MVC também será distribuído com a jQuery inclusa e adicionará a jQuery por padrão em todos os novos projetos.&lt;/p&gt;

&lt;p&gt;Nós estenderemos o suporte de produto da Microsoft para a jQuery começando mais tarde neste ano, o qual permitirá que desenvolvedores e empresas chamem e abram casos de suporte 24x7&amp;nbsp;no PSS da Microsoft. PPS (&lt;i&gt;Microsoft&lt;/i&gt; Product Support Services) é o suporte a serviços relacionados aos produtos da Microsoft.&lt;/p&gt;

&lt;p&gt;Mais adiante nós usaremos jQuery como uma das bibliotecas usadas para implementar controles de alto nível dentro do kit de ferramentas da ASP.NET AJAX (ASP.NET AJAX Control Toolkit), como também implementaremos novos métodos de ajuda Ajax no lado do servidor para a ASP.NET MVC. Novos recursos que adicionarmos na ASP.NET AJAX (igual ao novo &lt;a href="http://weblogs.asp.net/bleroy/archive/2008/09/02/using-client-templates-part-2-live-bindings.aspx" class="" target="_blank" mce_href="http://weblogs.asp.net/bleroy/archive/2008/09/02/using-client-templates-part-2-live-bindings.aspx"&gt;suporte&lt;/a&gt; a &lt;a href="http://weblogs.asp.net/bleroy/archive/2008/07/30/using-client-templates-part-1.aspx" class="" target="_blank" mce_href="http://weblogs.asp.net/bleroy/archive/2008/07/30/using-client-templates-part-1.aspx"&gt;templates&lt;/a&gt; de &lt;a href="http://weblogs.asp.net/bleroy/archive/2008/09/16/javascript-and-client-templates-on-hanselminutes.aspx" class="" target="_blank" mce_href="http://weblogs.asp.net/bleroy/archive/2008/09/16/javascript-and-client-templates-on-hanselminutes.aspx"&gt;clientes&lt;/a&gt;) serão criados de forma a integrarem de maneira perfeita com a jQuery.&lt;/p&gt;

&lt;p&gt;Nós também planejamos contribuir com testes, consertos de bugs, e melhorias de encontro ao projeto de código livre da jQuery. Todos estes passarão pelo processo padrão de revisão de consertos da jQuery.&lt;/p&gt;
&lt;h3&gt;&lt;u&gt;Sumário&lt;/u&gt;&lt;/h3&gt;
&lt;p&gt;Nós estamos realmente excitados em ser capazes de nos associarmos com o time da jQuery nesta empreitada. jQuery é uma biblioteca fantástica, e algo que pensamos que pode realmente beneficiar os desenvolvedores&amp;nbsp;ASP.NET e ASP.NET AJAX. Nós&amp;nbsp;esperamos ter esta integração funcionando de maneira excelente com o Visual Studo e ASP.NET,&amp;nbsp;ajudando a trazer a jQuery para um&amp;nbsp;conjunto maior de desenvolvedores.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Para mais detalhes relacionados ao anúncio de hoje, por favor verifique &lt;a href="http://jquery.com/blog/2008/09/28/jquery-microsoft-nokia/" class="" target="_blank" mce_href="http://jquery.com/blog/2008/09/28/jquery-microsoft-nokia/"&gt;o post de John Resig&lt;/a&gt; no blog do time da jQuery. Scott Hanselman está para postar um &lt;a href="http://www.hanselman.com/blog/jQuerytoshipwithASPNETMVCandVisualStudio.aspx" class="" target="_blank" mce_href="http://www.hanselman.com/blog/jQuerytoshipwithASPNETMVCandVisualStudio.aspx"&gt;bom tutorial&lt;/a&gt; que mostra a intregração de jQuery com a ASP.NET AJAX (incluindo o novo motor de templates de cliente) como também os Serviços de Dados ADO.NET (o qual foi lançado no .NET 3.5 SP1 e que foi previamente chamado "Astoria").&lt;/p&gt;

&lt;p&gt;Espero que ajude,&lt;/p&gt;

&lt;p&gt;Scott&lt;/p&gt;

&lt;p&gt;&lt;span class="Apple-style-span" style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: rgb(0, 0, 0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; text-align: left; orphans: 2; widows: 2;"&gt;(Texto traduzido do&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx" class="" style="color: rgb(51, 153, 255);" target="_blank" mce_href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx"&gt;post&lt;/a&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;original por&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://lenielmacaferi.blogspot.com" title="Leniel Macaferi's blog" style="color: rgb(0, 102, 204);" target="_blank" mce_href="http://lenielmacaferi.blogspot.com"&gt;Leniel Macaferi&lt;/a&gt;.)&lt;/span&gt;&lt;/p&gt;

&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6646402" width="1" height="1"&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QO8eS4YW9haha9HdoC9bqnKoE1g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QO8eS4YW9haha9HdoC9bqnKoE1g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QO8eS4YW9haha9HdoC9bqnKoE1g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QO8eS4YW9haha9HdoC9bqnKoE1g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scottguportuguese/~4/qo9duOITSwY" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Novidades+da+Comunidade/default.aspx">Novidades da Comunidade</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Atlas/default.aspx">Atlas</category><feedburner:origLink>http://weblogs.asp.net/scottguportuguese/archive/2008/09/28/jquery-e-microsoft-.aspx</feedburner:origLink></item><item><title>Rápida Atualização</title><link>http://feedproxy.google.com/~r/scottguportuguese/~3/zIPnDFAfaBg/rapida-atualizacao.aspx</link><pubDate>Tue, 02 Sep 2008 07:21:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6637590</guid><dc:creator>Leniel Macaferi</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://weblogs.asp.net/scottguportuguese/rsscomments.aspx?PostID=6637590</wfw:commentRss><wfw:comment>http://weblogs.asp.net/scottguportuguese/commentapi.aspx?PostID=6637590</wfw:comment><comments>http://weblogs.asp.net/scottguportuguese/archive/2008/09/02/rapida-atualizacao.aspx#comments</comments><description>&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* Link unit 728x15, created 7/3/09 */
google_ad_slot = "8718436762";
google_ad_width = 728;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;

&lt;p&gt;Eu recebi alguns e-mails recentemente (muito bons por sinal) perguntando se eu estava bem - isto porque meu blog tem estado em silêncio nas últimas semanas (e maior parte do verão).&lt;/p&gt;

&lt;p&gt;Para endereçar a preocupação das pessoas - Eu estou vivo e bem. :-) Eu simplesmente estava de férias nas últimas 6 semanas, e infelizmente não tive tempo livre para postar (Eu estive trocando muitas fraldas).&lt;/p&gt;

&lt;p&gt;Eu ainda estou de férias por mais uma semana antes de oficialmente retornar ao trabalho. Eu consegui um tempo para escrever um rápido post neste final de semana que cobre alguns dos novos recursos da ASP.NET MVC Preview 5, o qual irá esperançosamente prover uma leitura rápida até que eu possa detalhar uma agenda de posts para o próximo mês quando eu estiver de volta no escritório.&lt;/p&gt;

&lt;p&gt;Obrigado,&lt;/p&gt;

&lt;p&gt;Scott&lt;/p&gt;

&lt;p&gt;Obs. 1: De alguma forma para meu constrangimento eu comecei um post Parte1/Parte2 sobre a "Preview 4" logo antes de eu sair de férias, e não tive tempo para terminar a parte 2 antes do lançamento da "Preview 5". Eu vou postar este segmento perdido (o qual cobriu AJAX) no final deste mês e escreverei este em conformidade com a última construção da preview.&lt;/p&gt;

&lt;p&gt;Obs. 2: As pessoas sempre me perguntam se sou eu mesmo quem escreve o meu próprio blog. Sim - Eu realmente escrevo cada post. Espero que minha abstinência nas últimas 6 semanas possa fornecer alguma evidência para suportar isto. :-)&lt;/p&gt;

&lt;p&gt;&lt;span class="Apple-style-span" style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: rgb(0, 0, 0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; text-align: left; orphans: 2; widows: 2;"&gt;(Texto traduzido do&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/09/02/quick-update.aspx" class="" style="color: rgb(51, 153, 255);" target="_blank" mce_href="http://weblogs.asp.net/scottgu/archive/2008/09/02/quick-update.aspx"&gt;post&lt;/a&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;original por&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://lenielmacaferi.blogspot.com" title="Leniel Macaferi's blog" style="color: rgb(0, 102, 204);" target="_blank" mce_href="http://lenielmacaferi.blogspot.com"&gt;Leniel Macaferi&lt;/a&gt;.)&lt;/span&gt;&lt;/p&gt;

&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6637590" width="1" height="1"&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BD1YtgnrXR3TjfKrJ1fc02nv6AM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BD1YtgnrXR3TjfKrJ1fc02nv6AM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BD1YtgnrXR3TjfKrJ1fc02nv6AM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BD1YtgnrXR3TjfKrJ1fc02nv6AM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scottguportuguese/~4/zIPnDFAfaBg" height="1" width="1"/&gt;</description><feedburner:origLink>http://weblogs.asp.net/scottguportuguese/archive/2008/09/02/rapida-atualizacao.aspx</feedburner:origLink></item><item><title>Lançamento da ASP.NET MVC Preview 4 (Parte 1)</title><link>http://feedproxy.google.com/~r/scottguportuguese/~3/Gn3rrRzo-S8/lancamento-da-asp-net-mvc-preview-4-parte-1.aspx</link><pubDate>Mon, 14 Jul 2008 04:18:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6402141</guid><dc:creator>Leniel Macaferi</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://weblogs.asp.net/scottguportuguese/rsscomments.aspx?PostID=6402141</wfw:commentRss><wfw:comment>http://weblogs.asp.net/scottguportuguese/commentapi.aspx?PostID=6402141</wfw:comment><comments>http://weblogs.asp.net/scottguportuguese/archive/2008/07/14/lancamento-da-asp-net-mvc-preview-4-parte-1.aspx#comments</comments><description>&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;

&lt;p&gt;O time da ASP.NET MVC está nos estágios finais da finalização de um novo lançamento "Preview 4" que eles esperam entregar no final desta semana. O lançamento da &lt;a href="http://weblogs.asp.net/scottguportuguese/archive/2008/05/27/lancamento-da-asp-net-mvc-preview-3.aspx" target="_blank" mce_href="http://weblogs.asp.net/scottguportuguese/archive/2008/05/27/lancamento-da-asp-net-mvc-preview-3.aspx"&gt;Preview 3&lt;/a&gt; focou na finalização de muitas APIs centrais e pontos de extensibilidade na ASP.NET MVC. Começando com a Preview 4 nesta semana você começará a ver mais e mais recursos de nível mais alto aparecendo, os quais são construídos em cima da fundação central e que adicionam boa produtividade.&lt;/p&gt;
&lt;p&gt;Existem muitos novos recursos e capacidades nesta nova construção - de tal forma que eu decidi que precisarei de dois posts para cobrir todas. Este primeiro post irá cobrir os novos recursos de Caching, Tratamento de Erros e Segurança na Preview 4, como também algumas melhorias de teste que esta traz. Meu próximo post cobrirá os novos recursos AJAX que estão sendo adicionados com este novo lançamento.&lt;br&gt;&lt;/p&gt;
    
        
            &lt;font face="arial" size="2"&gt;   &lt;/font&gt;&lt;font face="arial" size="2"&gt;    &lt;/font&gt;&lt;h3&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Entendendo os Interceptadores de Filtro&lt;/u&gt;&lt;/font&gt;&lt;/h3&gt;&lt;font face="arial" size="2"&gt;    &lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;Atributos de Filtro de Ação são capacidades de extensibilidade úteis na ASP.NET MVC que foram primeiramente introduzidos com o lançamento da "Preview 2". Estes permitem bons cenários de encapsulamento onde você pode facilmente empacotar e reusar funcionalidades de uma maneira declarativa e limpa.&lt;br&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;A seguir está um exemplo de filtro super simples "ScottGuLog" que eu pude usar para fazer o log de detalhes sobre exceções que ocorreram durante a execução de uma requisição. Implementar um filtro customizado é fácil - simplesmente crie uma sub-classe que herda de "ActionFilterAttribute" e substitua os métodos apropriados para executar código antes e depois que um método de Ação no Controlador seja invocado, e/ou antes ou depois que um ActionResult seja processado para uma resposta.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step1.png" mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step1.png" width="672" height="218"&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;Usar um filtro dentro de um Controlador ASP.NET MVC é fácil - simplesmente declare este como um atributo em um método de Ação, ou alternativamente na classe do próprio Controlador (neste caso este será aplicado para todos os métodos de Ação dentro do Controlador):&lt;br&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;/font&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step2.png" mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step2.png" width="493" height="387"&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;Acima você pode ver um exemplo de dois filtros sendo aplicados. Eu indiquei que eu quero que meu "ScottGuLog" seja aplicado no método de ação "About", e que eu quero que o filtro "HandleError" seja aplicado em todos os métodos de Ação no HomeController.&lt;br&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;As previews anteriores da ASP.NET MVC permitiam esta extensibilidade de filtragem, mas não tinham filtro pré-construídos. A ASP.NET Preview 4 agora inclui vários filtros úteis para tratar cache de saída, tratamento de erro e cenários de segurança.&lt;br&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;    &lt;/font&gt;&lt;font face="arial" size="2"&gt;    &lt;/font&gt;&lt;h3&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Filtro OutputCache&lt;/u&gt;&lt;/font&gt;&lt;/h3&gt;&lt;font face="arial" size="2"&gt;    &lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;O filtro [OutputCache] provê uma maneira fácil de integrar ASP.NET MVC com os recursos de cache de saída da ASP.NET (com ASP.NET MVC Preview 3 você tinha que escrever código para obter este recurso).&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Para experimentar, modifique o valor de "Message" dentro do método de ação "Index" do HomeController (criado pelo template de projeto do VS ASP.NET MVC) para mostrar a hora atual:&lt;/p&gt;
&lt;font size="2"&gt;&lt;font face="arial"&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step3.png" mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step3.png" width="709" height="214"&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;
&lt;p&gt;Quando você executar sua aplicação você verá que uma marcação de tempo se atualizará a cada atualização da página:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step4.png" mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step4.png" width="780" height="435"&gt;&lt;/p&gt;
&lt;p&gt;Nós podemos ativar o cache de saída para esta URL adicionando o atributo [OutputCache] em nosso método de ação. Nós iremos configurar este para fazer o cache da resposta por um período de 10 segundos usando a declaração a seguir:&lt;br&gt;&lt;font face="arial" size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="arial"&gt;&lt;br&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step5.png" mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step5.png"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Agora quando você clicar em atualizar na página você verá que a marcação do tempo somente será atualizada a cada 10 segundos. Isto acontece porque o método de ação será chamado uma única vez a cada 10 segundos - todas as requisições entre estes intervalos de tempo serão servidos fora do cache de saída da ASP.NET (significando que nenhum código necessita ser executado - o que torna o processo super rápido).&lt;/p&gt;
&lt;p&gt;Além do suporte à duração de tempo, o atributo OutputCache também suporta as opções padrão do cache de saída da ASP.NET como (vary by params (parâmetros), headers (cabeçalhos), content encoding (codificação do conteúdo) e custom logic (lógica customizada)). Por exemplo, o exemplo a seguir salvaria diferentes versões da página presentes no cache dependendo do valor opcional de um parâmetro "PageIndex" presente em uma QueryString, e automaticamente produziria a versão correta dependendo do valor da querystring presente na URL de chegada: &lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step6.png" mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step6.png" width="693" height="180"&gt;&lt;br&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;    &lt;/font&gt;
&lt;p&gt;Você também pode integrar com o recurso Database Cache Invalidation da ASP.NET - o qual permite que você automaticamente invalide o cache quando um banco de dados do qual a URL depende é modificado (dica: a melhor maneira de fazer isto é configurar a seção CacheProfile dentro de sua web.config e então apontar para esta no atributo OutputCache).&lt;/p&gt;
&lt;h3&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Filtro HandleError&lt;/u&gt;&lt;/font&gt;&lt;/h3&gt;&lt;font face="arial" size="2"&gt;    &lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;O filtro [HandleError] provê um meio para declarativamente indicar em um Controlador ou método de Ação que uma resposta de erro amigável deve ser mostrada se um erro ocorrer durante o processamento de uma requisição ASP.NET MVC.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;Para experimentar, adicione um novo "TestController" em um projeto e implemente um método de ação que lança uma exceção igual a seguir:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;&lt;font face="arial"&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step7.png" mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step7.png" width="398" height="163"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;Por padrão quando você aponta seu browser para esta URL, este irá mostrar uma página de erro padrão da ASP.NET para usuários remotos (a menos que você tenha configurado uma seção &amp;lt;customErrors&amp;gt; no seu arquivo web.config):&lt;br&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;    &lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step26.png"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;    &lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;Nós podemos mudar o HTLM do erro mostrado para que este seja mais amigável em uma mensagem para o usuário final adicionando para tanto um atributo [HandleError] em nosso Controlador ou em um método de Ação no nosso Controlador:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step9.png" mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step9.png" width="409" height="185"&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;O filtro HandleError pegará todas as exceções (incluindo erros lançados quando templates de Visão forem processadas), e mostrará uma visão de Error customizada em resposta quando os errors ocorrerem. Por padrão este tenta localizar uma template de Visão no seu projeto chamada "Error" para gerar a resposta. Você pode colocar esta visão "Error" no mesmo diretório das visões específicas de outros Controladores (por exemplo: \Views\Test para o controlador TestController acima), ou dentro da pasta \Views\Shared (este buscará primeiramente por um controlador específico para a visão error, e então se não encontrar um, buscará na pasta compartilhada - a qual contém visões que são compartilhadas por todos os controladores).&lt;/p&gt;
O Visual Studio agora automaticamente adiciona um template de visão padrão "Error" para você dentro da pasta \Views\Shared quando você cria um novo projeto ASP.NET MVC começando com a Preview 4:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step11.png" mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step11.png" width="245" height="468"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step12.png"&gt; &lt;font face="arial" size="2"&gt;
&lt;p&gt;Quando nós adicionamos um atributo [HandleError] em nosso TestController, este irá por padrão mostrar aos usuários remotos uma página de erro HTML igual a seguir (note que este seleciona o template da master page (página principal) do projeto de forma que a mensagem de erro seja integrada dentro do site), Você pode obviamente entrar e customizar o template da visão de Error para mostrar qualquer HTML e/ou mensagens de erro mais amigáveis para os clientes/usuários - a seguir está o que você recebe por padrão:&lt;/p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;Para ajudar os desenvolvedores, o template padrão da visão Error fornecida pelo template de novo projeto no Visual Studio é escrita para mostrar informações adicionais da pilha de comandos quando você está navegando na aplicação localmente:&lt;br&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step13.png" mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step13.png" width="762" height="691"&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;Você pode desativar esta opção deletando o código do template da visão Error, ou configurando &amp;lt;customErrors&amp;gt; para desativado dentro do seu arquivo web.config.&lt;/p&gt;
    
&lt;p&gt;Por padrão o filtro [HandleError] irá pegar e tratar todas as exceções que forem lançadas durante a requisição. Você pode alternativamente especificar os tipos de exceção que você está interessado em pegar, e especificar visões de erro customizadas especificando as propriedades "ExceptionType" e "View" nos atributos de [HandleError]:&lt;/p&gt;
&lt;/font&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step15.png" mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step15.png" width="762" height="314"&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;No código acima eu estou escolhendo mostrar visões de erro customizadas para exceções do tipo SqlException e NullReferenceException. Todas as outras exceções usarão então o template de visão padrão "Error". &lt;br&gt;&lt;/p&gt;
    &lt;h3&gt;&lt;u&gt;Filtro Authorize&lt;/u&gt;&lt;/h3&gt;    
&lt;p&gt;O filtro [Authorize] provê um meio para declarativamente controlar a segurança do acesso em um Controlador ou método de Ação. Este permite que você indique se um usuário deve estar logado, e opcionalmente se ele deve ser um usuário específico ou se ele deve representar um papel de segurança específico para ter acesso ao site. O filtro trabalha com todos os tipos de autenticação (incluindo Windows como também as baseadas em Formulários de autenticação), e provê suporte para redirecionamento automático de usuários anônimos para um formulário de login se isso for necessário.&lt;/p&gt;
Para experimentar, adicione um filtro [Authorize] na ação "About" no HomeController criado por padrão com o Visual Studio:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step16.png" mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step16.png" width="513" height="392"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;Declarando um atributo [Authorize] igual acima indica que um usuário deve estar logado no site para requisitar a ação "About". Quando usuários não logados tentarem carregar a URL /Home/About, eles serão bloqueados e não conseguirão acessar a página. Se a aplicação web for configurada para usar a autenticação baseada no Windows, a ASP.NET irá automaticamente autenticar o usuário usando a identidade de login e se a tentativa for bem sucedida então o usuário terá permissão para prosseguir. Se a aplicação web for configurada para usar autenticação baseada em formulários, o atributo [Authorize] irá automaticamente redirecionar o usuário para uma página de login para autenticá-lo (e só depois ele terá acesso).&lt;br&gt;&lt;/p&gt;
    
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step17.png"&gt; &lt;/p&gt;
    
&lt;p&gt;O atributo [Authorize] opcionalmente permite que você conceda acesso somente para usuários específicos e/ou cargos. Por exemplo, se eu quisesse limitar o acesso à ação "About" para somente eu e Bill Gates, eu poderia escrever:&lt;/p&gt;
&lt;/font&gt; &lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step18.png" mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step18.png" width="466" height="160"&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;Tipicamente para todas as aplicações (excluindo as triviais) você não irá querer que os nomes dos usuários sejam escritos dentro do código. Ao invés disso você usualmente quer um conceito de nível mais alto como "roles" (cargos) para definir permissões, e então mapear usuário para cargos separadamente (por exemplo: usando active directory ou um banco de dados para armazenar os mapeamentos). O atributo [Authorize] torna fácil controlar o acesso aos Controladores e Ações usando uma propriedade "Roles":&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step19.png"&gt; &lt;/p&gt;
    
&lt;p&gt;O atributo [Authorize] &lt;u&gt;não&lt;/u&gt; depende de nenhuma identidade de usuário específico ou mecanismo de gerenciamento. Ao invés disso este funciona com o objeto "User" da ASP.NET - o qual é extensível e permite que qualquer sistema de identidade seja usado.&lt;/p&gt;
&lt;/font&gt; &lt;font face="arial" size="2"&gt;&lt;h3&gt;&lt;u&gt;Classe AccountController&lt;br&gt;&lt;/u&gt;&lt;/h3&gt;    
&lt;p&gt;Eu mencionei acima que o atributo [Authorize] pode ser usado com qualquer autenticação ou sistema de gerenciamento de identidade de usuários. Você pode escrever ou usar qualquer UI de login customizada e/ou sistema de de gerenciamento de nomedeusuario/senha que você quiser com este.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Para ajudar você a começar, o template de projeto ASP.NET MVC no Visual Studio agora inclui uma "AccountController" pré-construída e associada com visões de login que implementa uma autenticação baseada em formulários para um sistema de associação de usuários com suporte para login, logout, registro de novos usuários e mudança de senha. Todas as templates de visão e UI podem ser facilmente customizadas independentemente da classe AccountController ou implementação:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step20.png" mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step20.png" width="248" height="552"&gt;&amp;nbsp;&lt;/p&gt;
    
&lt;p&gt;A template Site.master agora inclui também UI no topo à direita da página que provê funcionalidades de login/logout. Quando você usar autenticação baseada em formulários você será perguntado sobre o login caso você ainda não esteja autenticado.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step21.png" mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step21.png" width="735" height="456"&gt;&lt;/p&gt;
&lt;p&gt;Uma mensagem de boas vindas será mostrada juntamente com o link de logout se você estiver autenticado no site:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step22.png" mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step22.png" width="779" height="461"&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;Clicando no link de Login acima leva os usuários para uma tela de Login igual a seguir que eles podem usar para realizar a autenticação:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step23.png" mce_src="http://www.scottgu.com/blogposts/mvcpreview4/step23.png" width="732" height="597"&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;Novos usuários podem clicar no link de registro para criar novas contas:&lt;/p&gt;
    
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step24.png"&gt;&lt;br&gt;&lt;/p&gt;
&lt;/font&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;Tratamento e exibição dos erros também são pré-configurados:&lt;/p&gt;
    
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvcpreview4/step25.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;p&gt;A classe AccountController que é adicionada em novos projetos usa a API de Associação &lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;&lt;font face="arial" size="2"&gt;pré-construída &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;da ASP.NET para armazenar e gerenciar as credenciais dos usuários (o sistema de associação usa uma API baseada em provedores que permite que qualquer sistema de armazenamento secundário seja plugado; a ASP.NET inclui provedores pré-construídos para Active Directory e SQL Server). Se você não quer usar o sistema de Associação pré-construído você pode manter as mesmas assinaturas dos métodos de ação do controlador AccountController, templates de Visão, e a lógica para o ticket dos Formulário de Autenticação, bastando simplesmente substituir a lógica da conta do usuário dentro da classe AccountController. Para o próximo lançamento da ASP.NET MVC nós estamos planejando encapsular a lógica de interação entre AccountController e o sistema de identificação de usuários em uma interface - a qual tornará ainda mais fácil: plugar o seu próprio sistema de armazenamento de usuários (sem ter que implementar um provedor de associação por completo) como também realizar testes unitários mais facilmente na interface e o AccountController.&lt;/p&gt;
Nosso desejo é que isto forneça uma maneira prática para que as pessoas rapidamente comecem, permitindo que elas tenham um sistema completo de segurança que funcione a partir do momento da criação de um projeto.&lt;h3&gt;&lt;u&gt;Testando TempData (Dados temporários)&lt;br&gt;&lt;/u&gt;&lt;/h3&gt;    
&lt;p&gt;Uma última melhoria a discutir neste primeiro post da preview 4 é sobre alguns aprimoramentos que estão sendo feitos na classe Controller que permite que você execute testes unitários mais facilmente na coleção TempData. A propriedade TempData permite a armazenagem de dados que você quer persistir para uma futura requisição proveniente de um usuário. Esta tem a semântica de somente durar para uma futura requisição (após a qual esta é removida). É tipicamente usada para cenários MVC onde você quer realizar um redirecionamento no lado do cliente para mudar a URL no browser, buscando com isso uma maneira simples de armazenar dados temporários.&lt;/p&gt;
&lt;p&gt;Em previews anteriores da ASP.NET MVC você tinha que imitar objetos para testar a coleção TempData. Com a Preview 4 você não mais precisa imitar ou configurar nada. Você pode agora adicionar e verificar objetos dentro da coleção TempData do Controlador diretamente dentro de seus testes unitários (por exemplo: popular uma propriedade TempData de um Controlador antes de chamar seu método de ação, ou verificar se uma ação atualizou TempData após o retorno da ação). A semântica atual da armazenagem da coleção TempData está agora encapsulada dentro de uma propriedade TempDataProvider separada.&lt;br&gt;&lt;/p&gt;
    &lt;h3&gt;&lt;u&gt;Conclusão&lt;/u&gt;&lt;/h3&gt;    
&lt;p&gt;Esperançosamente o post acima provê uma visão rápida sobre alguns dos novos recursos e mudanças que estão chagando com a ASP.NET MVC Preview 4. Meu próximo post sobre a ASP.NET MVC Preview 4 cobrirá a nova funcionalidade AJAX que foi adicionada, e demonstrará como tirar vantagem desta.&lt;/p&gt;
    
&lt;p&gt;Espero que ajude,&lt;/p&gt;
    
&lt;p&gt;Scott&lt;/p&gt;
&lt;/font&gt;(Texto traduzido do &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/07/14/asp-net-mvc-preview-4-release-part-1.aspx" target="_blank" mce_href="http://weblogs.asp.net/scottgu/archive/2008/07/14/asp-net-mvc-preview-4-release-part-1.aspx"&gt;post&lt;/a&gt; original por &lt;a href="http://lenielmacaferi.blogspot.com" title="Leniel Macaferi's blog" target="_blank" mce_href="http://lenielmacaferi.blogspot.com"&gt;Leniel Macaferi&lt;/a&gt;.)&lt;/p&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;/font&gt;&lt;/p&gt;

&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6402141" width="1" height="1"&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RmHVM7-MRoC5ClbTSw5V_v4Yo64/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RmHVM7-MRoC5ClbTSw5V_v4Yo64/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RmHVM7-MRoC5ClbTSw5V_v4Yo64/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RmHVM7-MRoC5ClbTSw5V_v4Yo64/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scottguportuguese/~4/Gn3rrRzo-S8" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/MVC/default.aspx">MVC</category><feedburner:origLink>http://weblogs.asp.net/scottguportuguese/archive/2008/07/14/lancamento-da-asp-net-mvc-preview-4-parte-1.aspx</feedburner:origLink></item><item><title>Suporte à ASP.NET MVC para o Visual Web Developer 2008 Express</title><link>http://feedproxy.google.com/~r/scottguportuguese/~3/71wM2fnxkuM/suporte-a-ASP.NET-MVC-para-o-Visual-Web-Developer-2008-Express.aspx</link><pubDate>Sun, 01 Jun 2008 20:50:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6243505</guid><dc:creator>Leniel Macaferi</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://weblogs.asp.net/scottguportuguese/rsscomments.aspx?PostID=6243505</wfw:commentRss><wfw:comment>http://weblogs.asp.net/scottguportuguese/commentapi.aspx?PostID=6243505</wfw:comment><comments>http://weblogs.asp.net/scottguportuguese/archive/2008/06/01/suporte-a-ASP.NET-MVC-para-o-Visual-Web-Developer-2008-Express.aspx#comments</comments><description>&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* Link unit 728x15, created 7/3/09 */
google_ad_slot = "8718436762";
google_ad_width = 728;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;

&lt;p&gt;Na última semana eu escrevi sobre &lt;a href="http://weblogs.asp.net/scottguportuguese/archive/2008/05/27/lancamento-da-asp-net-mvc-preview-3.aspx" class="" target="_blank" mce_href="http://weblogs.asp.net/scottguportuguese/archive/2008/05/27/lancamento-da-asp-net-mvc-preview-3.aspx"&gt;o lançamento da ASP.NET MVC Preview 3&lt;/a&gt;. Uma coisa importante que esqueci de mencionar sobre este lançamento é que você pode agora usá-lo com o Visual Studio 2008 e também com a edição grátis do Visual Web Developer Express 2008.&lt;/p&gt;

&lt;p&gt;O lançamento do SP1 do Visual Web Developer 2008 Express adiciona o suporte para ambos os projetos de biblioteca de classes como também aplicações web (previamente somente projetos de web site podiam ser usados com a versão express). Este novo suporte é útil em si mesmo como também torna possível o suporte a ambos os projetos ASP.NET MVC e Silverlight com o VWD Express. Se você instalar o Visual Web Developer Express &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/05/12/visual-studio-2008-and-net-framework-3-5-service-pack-1-beta.aspx" target="_blank"&gt;SP1 Beta&lt;/a&gt;&amp;nbsp;você pode começar a usar a ASP.NET MVC Preview 3 com ele imediatamente.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Importante: a ASP.NET MVC Preview 3 &lt;u&gt;&lt;i&gt;não&lt;/i&gt;&lt;/u&gt; requer que o SP1 seja instalado se você estiver usando o Visual Studio 2008. A ASP.NET MVC Preview 3 irá funcionar com ambos VS 2008 e VS 2008 SP1 sem problemas.&lt;/p&gt;

&lt;p&gt;Você pode aprender mais sobre o novo suporte do VWD Express para a ASP.NET MVC no blog do time das Ferramentas do VS Web &lt;a href="http://blogs.msdn.com/webdevtools/archive/2008/05/30/asp-net-mvc-preview-3-tooling-updates.aspx" target="_blank"&gt;aqui&lt;/a&gt;. Este post também inclui um download grátis que prove suporte a projeto de Teste ASP.NET MVC para testes unitários baseados em NUnit. Você pode usar estes templates de projeto NUnit com ambos o Visual Studio 2008 e o Visual Web Developer Express 2008.&lt;br&gt;&lt;/p&gt;

&lt;p&gt;Espero que ajude,&lt;/p&gt;

&lt;p&gt;Scott&lt;/p&gt;

&lt;p mce_keep="true"&gt;(Texto traduzido do &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/06/01/asp-net-mvc-support-with-visual-web-developer-2008-express.aspx" class="" target="_blank" mce_href="http://weblogs.asp.net/scottgu/archive/2008/06/01/asp-net-mvc-support-with-visual-web-developer-2008-express.aspx"&gt;post&lt;/a&gt; original por &lt;a href="http://lenielmacaferi.blogspot.com" title="Leniel Macaferi's blog" target="_blank" mce_href="http://lenielmacaferi.blogspot.com"&gt;Leniel Macaferi&lt;/a&gt;.)&lt;/p&gt;

&lt;center&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;
&lt;/center&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6243505" width="1" height="1"&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/usK9j1QroTIOe91dvdN1QfB1Dqg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/usK9j1QroTIOe91dvdN1QfB1Dqg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/usK9j1QroTIOe91dvdN1QfB1Dqg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/usK9j1QroTIOe91dvdN1QfB1Dqg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scottguportuguese/~4/71wM2fnxkuM" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/MVC/default.aspx">MVC</category><feedburner:origLink>http://weblogs.asp.net/scottguportuguese/archive/2008/06/01/suporte-a-ASP.NET-MVC-para-o-Visual-Web-Developer-2008-Express.aspx</feedburner:origLink></item><item><title>Lançamento da ASP.NET MVC Preview 3</title><link>http://feedproxy.google.com/~r/scottguportuguese/~3/_O8uIgmPUAc/lancamento-da-asp-net-mvc-preview-3.aspx</link><pubDate>Tue, 27 May 2008 17:26:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6225718</guid><dc:creator>Leniel Macaferi</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://weblogs.asp.net/scottguportuguese/rsscomments.aspx?PostID=6225718</wfw:commentRss><wfw:comment>http://weblogs.asp.net/scottguportuguese/commentapi.aspx?PostID=6225718</wfw:comment><comments>http://weblogs.asp.net/scottguportuguese/archive/2008/05/27/lancamento-da-asp-net-mvc-preview-3.aspx#comments</comments><description>&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;
&lt;p&gt;Hoje pela manhã nós lançamos a Preview 3 do framework ASP.NET MVC. Eu escrevi em detalhes no mês passado sobre um lançamento ínterim do código que incluiu muitas das mudanças desta Preview 3. O lançamento de hoje inclui alguns recursos adicionais não inclusos no lançamento do mês passado, bons melhoramentos/refinamentos como também a integração das ferramentas e da documentação no Visual Studio.&lt;/p&gt;

&lt;p&gt;Você pode fazer o download de um pacote integrado da ASP.NET MVC Preview 3&amp;nbsp; &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=92F2A8F0-9243-4697-8F9A-FCF6BC9F66AB&amp;amp;displaylang=en" target="_blank"&gt;aqui&lt;/a&gt;. Você também pode opcionalmente fazer o download do código fonte e dos testes unitários do framework da ASP.NET MVC Preview 3&amp;nbsp; &lt;a href="http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=aspnet&amp;amp;ReleaseId=13792" target="_blank"&gt;aqui&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Mudanças nos Métodos de Ação do Controlador&lt;/u&gt;&lt;/font&gt;&lt;/h3&gt;
&lt;p&gt;A ASP.NET MVC Preview 3 inclui as mudanças do Controlador que nós primeiramente discutimos e previmos com o &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/04/16/asp-net-mvc-source-refresh-preview.aspx" target="_blank"&gt;lançamento do código MVC de Abril&lt;/a&gt;, juntamente com alguns ajustes.&lt;/p&gt;

&lt;p&gt;&lt;font face="arial"&gt;Você pode continuar a escrever métodos de ação do controlador que retornam void encapsulando toda a lógica dentro do método de ação. Por exemplo:&lt;/font&gt;&lt;/p&gt;

&lt;p mce_keep="true"&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step2.png" mce_src="http://www.scottgu.com/blogposts/mvc3announce/step2.png"&gt;&lt;/p&gt;

&lt;p mce_keep="true"&gt;o qual&amp;nbsp;renderizará o HTML mostrado a seguir quando executado:&lt;/p&gt;

&lt;p mce_keep="true"&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step3.png" mce_src="http://www.scottgu.com/blogposts/mvc3announce/step3.png"&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial"&gt;A Preview 3 agora também suporta o uso de uma abordagem onde você retorna um objeto "ActionResult" que indica o resultado do método de ação, e permite a execução adiada do mesmo. Isto torna o teste unitário de ações muito mais fácil (sem a necessidade de simular qualquer coisa). Isto também torna a composição muito mais limpa e fornece o completo controle do fluxo de execução.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Por exemplo, nós poderíamos usar LINQ para SQL dentro do nosso método de ação Browse para retornar uma seqüência de objetos do tipo Produto do nosso banco de dados e indicar que nós queremos renderizar uma Visão dos mesmos. O código a seguir irá fazer com que três partes do "ViewData" sejam passadas para a visão - os valores de string "Title" e "CategoryName" e uma seqüência&amp;nbsp;fortemente tipificada de produtos (passada como o objeto ViewData.Model):&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step5.png" mce_src="http://www.scottgu.com/blogposts/mvc3announce/step5.png"&gt;&lt;/p&gt;

&lt;p&gt;Uma vantagem de usar a&amp;nbsp;abordagem ActionResult mostrada acima é que esta&amp;nbsp;torna&amp;nbsp;o teste unitário&amp;nbsp;das ações do Controlador realmente fácil (sem necessidade de simulação). Abaixo está um teste unitário que verifica o comportamento do nosso método de ação Browse:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step11.png" mce_src="http://www.scottgu.com/blogposts/mvc3announce/step11.png"&gt;&lt;/p&gt;

&lt;p&gt;Nós podemos então autorar uma ViewPage "Browse" dentro do subdiretório&amp;nbsp;\Views\Products&amp;nbsp;para renderizar uma resposta usando o ViewData populado por nossa ação Browse:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step6.png" mce_src="http://www.scottgu.com/blogposts/mvc3announce/step6.png"&gt;&lt;/p&gt;

&lt;p&gt;Quando nós&amp;nbsp;chegarmos na URL /Products/Browse/Beverages nós iremos então receber uma resposta HTML igual a seguir (com&amp;nbsp;os três usos do ViewData circulados em vermelho):&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step7.png" mce_src="http://www.scottgu.com/blogposts/mvc3announce/step7.png"&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial"&gt;Note que além de suportar uma resposta "ViewResult" (para indicar que uma Visão deverá ser renderizada), a ASP.NET MVC Preview 3 também adiciona suporte para retornar "JsonResult" (para a cenários de serialização AJAX JSON), "ContentResult" (para transportar conteúdo sem uma Visão), como também resultados&amp;nbsp;HttpRedirect e&amp;nbsp;RedirectToAction/Route.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial"&gt;A abordagem completa ActionResult é extensível (permitindo que você crie seus próprios tipos de resultados) e com o tempo você verá que nós adicionaremos mais tipos de resultado padrão.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;b&gt;Métodos de Ajuda HTML Melhorados&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial"&gt;Os métodos de ajuda HTML foram atualizados com a ASP.NET MVC Preview 3. Além de vários consertos para bugs, eles também incluem várias melhorias de usabilidade.&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial"&gt;&lt;u&gt;Busca Automática de Valor&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Com os lançamentos da previews anteriores você precisava sempre explicitamente passar o valor a ser renderizado quando os métodos de ajuda Html eram chamados. Por exemplo: para incluir um valor dentro de um elemento &amp;lt;&lt;font face="arial"&gt;input type="text" value="some value"/&amp;gt;&amp;nbsp;você escreveria:&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step13.png" mce_src="http://www.scottgu.com/blogposts/mvc3announce/step13.png"&gt;&lt;/p&gt;

&lt;p&gt;O código acima continua&amp;nbsp;funcionando - embora agora&amp;nbsp;você pode também simplesmente escrever:&lt;/p&gt;
&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step14.png" mce_src="http://www.scottgu.com/blogposts/mvc3announce/step14.png"&gt; 
&lt;p&gt;&lt;font face="arial" size="2"&gt;Os métodos de ajuda&amp;nbsp;HTML irão&amp;nbsp;agora por padrão checar ambos o dicionário ViewData e qualquer&amp;nbsp;objeto do Modelo passado para a&amp;nbsp;visão para uma chave ProductName ou valor de propriedade&amp;nbsp;a ser&amp;nbsp;usada.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;ViewModels SelectList&amp;nbsp;e MultiSelectList&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;Novas classes ViewModel&amp;nbsp;SelectList&amp;nbsp;e MultiSelectList&amp;nbsp;estão agora presentes,&amp;nbsp;as quais provêem um meio limpo para popular dropdowns HTML e listboxes de multi-seleção (e gerenciam as coisas igual a seleção corrente, etc). Uma abordagem que pode tornar cenários de formulários mais limpos é instanciar e configurar estes objetos ViewModel em uma ação do Controlador, e então passá-los n&lt;/font&gt;&lt;font face="arial" size="2"&gt;o dicionário ViewData para a Visão formatar/renderizar.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Por exemplo, a seguir eu estou criando uma classe view-model SelectList sobre o conjunto de categorias únicas de nosso banco de dados. Eu estou indicando que eu quero usar a propriedade "CategoryID" como o valor de cada item na lista, e "CategoryName" como o texto a ser mostrado. Eu também estou configurando a seleção da lista para a CategoryId do Produto que estamos editando:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step23.png" mce_src="http://www.scottgu.com/blogposts/mvc3announce/step23.png"&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;Dentro de nossa visão nós então simplesmente&amp;nbsp;temos que escrever o código a seguir para indicar que queremos criar uma drop-down list com referência à SelectList que nós colocamos dentro do ViewData.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;Isto irá então renderizar o drop down apropriado com os&amp;nbsp;itens e&amp;nbsp;a seleção para nós no tempo de execução:&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step20.png" mce_src="http://www.scottgu.com/blogposts/mvc3announce/step20.png"&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step19.png" mce_src="http://www.scottgu.com/blogposts/mvc3announce/step19.png"&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;Suporte à validação de erros&amp;nbsp;embutida aind não está incluída&amp;nbsp;nos&amp;nbsp;nossos métodos de ajuda HTML (você pode atualmente ter que escrever código para isto) - mas aparecerá no futuro, o que&amp;nbsp;tornará a edição dos formulários&amp;nbsp;ainda mais fácil.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Você também começará a ver métodos de ajuda ASP.NET AJAX aparecerem em lançamentos futuros das previews, o que tornará mais fácil integrar AJAX dentro de aplicações MVC com um mínimo de código.&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;h3&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Melhorias no roteamento de URL&lt;/u&gt;&lt;/font&gt;&lt;/h3&gt;&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;A ASP.NET MVC Preview 3 inclui várias melhorias no sistema de roteamento de URL. Roteamento de URL é um dos componentes mais "fundamentais" do framework MVC, logo a razão para gastarmos tanto tempo focando nesta área nas primeiras previews para ter esta área bem ajustada. Nosso novo motor de roteamento de URL será lançado no .NET 3.5 SP1 neste verão, e iremos suportar ambos Formulários Web e requisições MVC. A ASP.NET MVC será capaz de usar o motor de roteamento embutido no .NET 3.5 SP1 quando executado no .NET 3.5 SP1. A ASP.NET MVC também irá incluir sua própria cópia do assembly de forma que esta também poderá funcionar em sistema não SP1.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;Alguns dos melhoramentos feitos no roteamento de URL nesta Preview 3 incluem:&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Métodos de ajuda MapRoute()&amp;nbsp;e IgnoreRoute()&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;A ASP.NET MVC Preview 3 inclui novos métodos de ajuda "MapRoute" e "IgnoreRoute" que você pode usar para mais facilmente registrar regras de roteamento. MapRoute() provê um meio para adicionar uma nova regra de rota MVC na coleção de Rotas. IgnoreRoute() provê um meio fácil para dizer ao sistema de roteamento de URL para parar o processamento de certos padrões de formação de URL (por exemplo: tratador de recursos .axd na ASP.NET que serão usados para servir JavaScript, imagens, etc).&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;Abaixo está um exemplo do método padrão RegisterRoutes() dentro do Global.asax quando você cria um novo projeto ASP.NET MVC onde você pode ver ambos os novos métodos de ajuda em ação.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step1.png" mce_src="http://www.scottgu.com/blogposts/mvc3announce/step1.png"&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;O método de ajuda MapRoute() é sobrecarregado e recebe dois, três ou quarto parâmetros (nome da rota, sintaxe da URL, parâmetro padrão da URL, e parâmetros opcionais de URL com restrições expressas através de expressões regulares).&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Você pode chamar MapRoute() quantas vezes você quiser para registrar múltiplas rotas nomeadas no sistema. Por exemplo, além da regra de convenção padrão, nós poderíamos adicionar uma regra de roteamento nomeada "Products-Browse" igual a seguir:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step28.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step28.png"&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;Nós podemos então referenciar esta regra "Products-Browse" explicitamente dentro de nossos Controladores e Visões quando quisermos gerar uma URL. Por exemplo, nós poderíamos usar o método de ajuda da visão&amp;nbsp;Html.RouteLink para indicar que nós queremos linkar para nossa&amp;nbsp;rota "Products-Browse" e passar para esta um parâmetro de&amp;nbsp;categoria "Food"&amp;nbsp;usando código presente no modelo de nossa visão igual a seguir:&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step29.png"&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;Este método de&amp;nbsp;ajuda da visão então acessa o sistema de&amp;nbsp;roteamento e gera um&amp;nbsp;hyperlink HTML para uma&amp;nbsp;URL&amp;nbsp;apropriada igual a seguir (note: como automaticamente ocorreu a substituição do parâmetro de categoria dentro da URL&amp;nbsp;usando&amp;nbsp;a regra de&amp;nbsp;rota):&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step30.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step30.png"&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;Nós poderíamos alternadamente usar o novo &lt;i&gt;Url.RouteUrl(routeName, values)&lt;/i&gt; dentro das visões se quiséssemos simplesmente retornar a URL para uma rota nomeada (e não gerar um elemento html &amp;lt;a&amp;gt;).&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Nós também poderíamos usar o novo método de ajuda &lt;i&gt;RedirectToRoute(routeName, values)&lt;/i&gt; na classe base do Controlador para lançar redirecionamentos de browser baseados em regras de roteamento nomeadas.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;b&gt;Recursos de Mapeamento de Rotas mais Ricos&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;A ASP.NET MVC Preview 3 também suporta vários novos recursos de roteamento de URL. Você pode agora incluir&amp;nbsp; "-", ".", ";" ou qualquer outro caractere que você queira como parte de suas regras de roteamento.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Por exemplo, usando um&amp;nbsp;separador &lt;font face="arial" size="2"&gt;"-" você pode traduzir a linguagem e localização de valores de suas URLs separadamente usando uma regra igual a seguir:&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step32.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step32.png"&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;Isto passaria os parâmetros de "linguagem", "local" e "categoria" apropriados para um método de ação ProductsController.Browse quando invocado:&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;table width="856" border="1" cellpadding="2" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top" width="297"&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Regra de Roteamento da URL&lt;/u&gt;&lt;/font&gt;&lt;/td&gt;

&lt;td valign="top" width="198"&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;URL de exemplo&lt;/u&gt;&lt;/font&gt;&lt;/td&gt;

&lt;td valign="top" width="355"&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Parâmetros passados para o Método de Ação &lt;/u&gt;&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td valign="top" width="297"&gt;&lt;font face="arial" size="2"&gt;{language}-{locale}/products/browse/{category}&lt;/font&gt;&lt;/td&gt;

&lt;td valign="top" width="198"&gt;&lt;font face="arial" size="2"&gt;/en-us/products/browse/food&lt;/font&gt;&lt;/td&gt;

&lt;td valign="top" width="355"&gt;&lt;font face="arial" size="2"&gt;language=en, locale=us, category=food&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td valign="top" width="296"&gt;&amp;nbsp;&lt;/td&gt;

&lt;td valign="top" width="198"&gt;&lt;font face="arial" size="2"&gt;/en-uk/products/browse/food&lt;/font&gt;&lt;/td&gt;

&lt;td valign="top" width="355"&gt;&lt;font face="arial" size="2"&gt;language=en, locale=uk, category=food&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;Ou você pode usar o tipo de extensão de arquivo "." no final da URL para determinar se deve renderizar o resultado em um formato XML ou HTML:&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step33.png"&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;Isto passaria ambos os parâmetros "category" e "format" para o método de ação ProductsController.Browse quando invocado: &lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;table width="852" border="1" cellpadding="2" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top" width="297"&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Regra de Roteamento da URL&lt;/u&gt;&lt;/font&gt;&lt;/td&gt;

&lt;td valign="top" width="198"&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;URL de exemplo&lt;/u&gt;&lt;/font&gt;&lt;/td&gt;

&lt;td valign="top" width="355"&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Parâmetros passados para o Método de Ação &lt;/u&gt;&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td valign="top" width="297"&gt;&lt;font face="arial" size="2"&gt;products/browse/{category}.{format}&lt;/font&gt;&lt;/td&gt;

&lt;td valign="top" width="198"&gt;&lt;font face="arial" size="2"&gt;/products/browse/food.xml&lt;/font&gt; &lt;/td&gt;

&lt;td valign="top" width="355"&gt;&lt;font face="arial" size="2"&gt;category=food, format=xml&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td valign="top" width="296"&gt;&amp;nbsp;&lt;/td&gt;

&lt;td valign="top" width="198"&gt;&lt;font face="arial" size="2"&gt;/products/browse/food.html&lt;/font&gt;&lt;/td&gt;

&lt;td valign="top" width="355"&gt;&lt;font face="arial" size="2"&gt;category=food, format=html&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;A ASP.NET MVC Preview 3 também suporta regras de rotamento com wildcard - caractere coringa&amp;nbsp;(estas já estavam presentes na Preview 2).&amp;nbsp; Por exemplo, você pode indicar em uma regra&amp;nbsp;a passagem de&amp;nbsp;todo o conteúdo restante adiante da URI como um parâmetro nomeado para um método de ação: &lt;font face="arial" size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step34.png"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;Isto passaria um parâmetro "contentUrl" para o método de ação WikiController.DisplayPage quando invocado:&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;
&lt;table width="852" border="1" cellpadding="2" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top" width="297"&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Regra de Roteamento da URL&lt;/u&gt;&lt;/font&gt;&lt;/td&gt;

&lt;td valign="top" width="198"&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;URL de exemplo&lt;/u&gt;&lt;/font&gt;&lt;/td&gt;

&lt;td valign="top" width="355"&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Parâmetros passados para o Método de Ação &lt;/u&gt;&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td valign="top" width="297"&gt;&lt;font face="arial" size="2"&gt;Wiki/Pages/{*contentUrl}&lt;/font&gt;&lt;/td&gt;

&lt;td valign="top" width="198"&gt;&lt;font face="arial" size="2"&gt;/Wiki/Pages/People/Scott&lt;/font&gt;&lt;/td&gt;

&lt;td valign="top" width="355"&gt;&lt;font face="arial" size="2"&gt;contentUrl="People/Scott"&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td valign="top" width="296"&gt;&amp;nbsp;&lt;/td&gt;

&lt;td valign="top" width="198"&gt;&lt;font face="arial" size="2"&gt;/Wiki/Pages/Countries/UK&lt;/font&gt;&lt;/td&gt;

&lt;td valign="top" width="355"&gt;&lt;font face="arial" size="2"&gt;contentUrl="Countries/UK"&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;Estas rotas com wildcard são muito úteis e devem ser consideradas se você estiver construindo um sistema baseado em blog, wiki, cms ou outro sistema baseado em conteúdo.&lt;/font&gt;&lt;/p&gt;
&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;h3&gt;&lt;font face="arial" size="2"&gt;&lt;u&gt;Sumário&lt;/u&gt;&lt;/font&gt;&lt;/h3&gt;&lt;font face="arial" size="2"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="arial" size="2"&gt;O lançamento da Preview 3 de hoje da ASP.NET MVC inclui muitas melhorias e refinamentos. Nós estamos começando a nos sentir bem sobre o roteamento de URL e o modelo de programação Controller/Action da MVC, e sentimos que estas áreas estão começando a ficar no ponto.&amp;nbsp;Nos lançamentos de futuras previews você começará a ver mais melhorias mais acima da pilha do modelo de programação em áreas como Visões (métodos de ajuda HTML, métodos de ajuda para validação, etc), AJAX, sub-controladores e composição de site, Login mais avançado, Autenticação, Autorização e integração de cacheamento, como também suporte a reconhecimento de dados.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;Eu também tenho um post-tutorial (muito) longo&amp;nbsp;que comecei a redigir neste último final de semana e que trata da construção de uma aplicação ASP.NET MVC Preview 3 que eu espero terminar e postar nos próximos dias. Este tutorial deve prover uma boa introdução à ASP.NET MVC como também ajudar no provimento de contexto em como todas as peças se encaixam se você estiver interessado em usar a opção ASP.NET MVC.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;Espero que ajude,&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;Scott&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="arial" size="2"&gt;&amp;nbsp;(Texto traduzido do &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/05/27/asp-net-mvc-preview-3-release.aspx" class="" target="_blank" mce_href="http://weblogs.asp.net/scottgu/archive/2008/05/27/asp-net-mvc-preview-3-release.aspx"&gt;post&lt;/a&gt; original por &lt;a href="http://lenielmacaferi.blogspot.com" title="Leniel Macaferi's blog" target="_blank" mce_href="http://lenielmacaferi.blogspot.com"&gt;Leniel Macaferi&lt;/a&gt;.)&lt;/font&gt;&lt;/p&gt;
&lt;center&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8849057428395760";
/* 728x90, created 2/15/09 */
google_ad_slot = "4706719075";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;

&lt;/center&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6225718" width="1" height="1"&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/roYmWrmDifKlViXOnv77CC1ULWQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/roYmWrmDifKlViXOnv77CC1ULWQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/roYmWrmDifKlViXOnv77CC1ULWQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/roYmWrmDifKlViXOnv77CC1ULWQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/scottguportuguese/~4/_O8uIgmPUAc" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/MVC/default.aspx">MVC</category><category domain="http://weblogs.asp.net/scottguportuguese/archive/tags/Novidades+da+Comunidade/default.aspx">Novidades da Comunidade</category><feedburner:origLink>http://weblogs.asp.net/scottguportuguese/archive/2008/05/27/lancamento-da-asp-net-mvc-preview-3.aspx</feedburner:origLink></item></channel></rss>
