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

<channel>
	<title>Fabricio Sanchez</title>
	<atom:link href="http://fabriciosanchez.com.br/2/feed/" rel="self" type="application/rss+xml" />
	<link>http://fabriciosanchez.com.br/2</link>
	<description></description>
	<lastBuildDate>Fri, 24 May 2013 01:04:40 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Semana da Computação da UNIARA &#8211; Saiba como foi</title>
		<link>http://fabriciosanchez.com.br/2/semana-da-computacao-da-uniara-saiba-como-foi/</link>
		<comments>http://fabriciosanchez.com.br/2/semana-da-computacao-da-uniara-saiba-como-foi/#comments</comments>
		<pubDate>Fri, 24 May 2013 01:04:40 +0000</pubDate>
		<dc:creator>Fabrício Sanchez</dc:creator>
				<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Destaques]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Ferramentas (IDE's)]]></category>
		<category><![CDATA[MVP]]></category>
		<category><![CDATA[SQL Azure]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[araraquara]]></category>
		<category><![CDATA[azure]]></category>
		<category><![CDATA[computação em nuvem]]></category>
		<category><![CDATA[conio]]></category>
		<category><![CDATA[uniara]]></category>
		<category><![CDATA[windows azure]]></category>

		<guid isPermaLink="false">http://fabriciosanchez.com.br/2/?p=223864</guid>
		<description><![CDATA[No último dia 23/05, tive a oportunidade de realizar mais uma palestra sobre cloud computing. Desta vez, na &#8220;Semana da Computação&#8221; da UNIARA (Centro Universitário de Araraquara), em Araraquara, SP. Cerca de 15o pessoas (entre alunos e professores dos cursos de tecnologia da instituição e profissionais de tecnologia da cidade e região), lotaram o auditório [...]]]></description>
				<content:encoded><![CDATA[<p>No último dia 23/05, tive a oportunidade de realizar mais uma palestra sobre cloud computing. Desta vez, na &#8220;Semana da Computação&#8221; da UNIARA (Centro Universitário de Araraquara), em Araraquara, SP.</p>
<p>Cerca de 15o pessoas (entre alunos e professores dos cursos de tecnologia da instituição e profissionais de tecnologia da cidade e região), lotaram o auditório principal da unidade 4 (dedicada a área de exatas) da instituição.</p>
<p>Em minha palestra, apresentei os aspectos gerais associados ao modelo de computação em nuvem, assim como os aspectos deste modelo que influenciam de forma direta e indireta no projeto e implementação de novas aplicações. Ao final, diversas perguntas vieram do auditório e tive a oportunidade de responder a cada um delas.</p>
<p>O PPTX utilizado em minha palestra pode ser visualizado a seguir.</p>
<p>&nbsp;</p>
<p><center><iframe style="border: 1px solid #CCC; border-width: 1px 1px 0; margin-bottom: 5px;" src="http://www.slideshare.net/slideshow/embed_code/14916210" height="356" width="427" allowfullscreen="" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<div style="margin-bottom: 5px;"><strong> <a title="SSI 2012 - Computação em Nuvem" href="http://www.slideshare.net/fabriciolopessanchez/ssi-unilago2012" target="_blank">SSI 2012 &#8211; Computação em Nuvem</a> </strong> from <strong><a href="http://www.slideshare.net/fabriciolopessanchez" target="_blank">Fabrício Lopes Sanchez</a></strong></div>
<p>&nbsp;</p>
<p></center></p>
]]></content:encoded>
			<wfw:commentRss>http://fabriciosanchez.com.br/2/semana-da-computacao-da-uniara-saiba-como-foi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jornada de tecnologia da UNIRP &#8211; Saiba como foi</title>
		<link>http://fabriciosanchez.com.br/2/jornada-de-tecnologia-da-unirp-saiba-como-foi/</link>
		<comments>http://fabriciosanchez.com.br/2/jornada-de-tecnologia-da-unirp-saiba-como-foi/#comments</comments>
		<pubDate>Sun, 19 May 2013 18:18:47 +0000</pubDate>
		<dc:creator>Fabrício Sanchez</dc:creator>
				<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Destaques]]></category>
		<category><![CDATA[SQL Azure]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[azure]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[jornada da unirp]]></category>
		<category><![CDATA[tecnologia unirp]]></category>
		<category><![CDATA[unirp]]></category>
		<category><![CDATA[windows azure]]></category>

		<guid isPermaLink="false">http://fabriciosanchez.com.br/2/?p=223860</guid>
		<description><![CDATA[Na última semana, tive a oportunidade de realizar mais uma palestra sobre computação em nuvem. Desta vez, na &#8220;Jornada de Tecnologia da Informação da UNIRP (Universidade do Norte Paulista)&#8221;. O evento, que foi realizado nas dependências da Universidade do Norte Paulista campus 2, contou com a presença de mais de 500 participantes entre alunos e [...]]]></description>
				<content:encoded><![CDATA[<p>Na última semana, tive a oportunidade de realizar mais uma palestra sobre computação em nuvem. Desta vez, na &#8220;Jornada de Tecnologia da Informação da UNIRP (Universidade do Norte Paulista)&#8221;.</p>
<p>O evento, que foi realizado nas dependências da Universidade do Norte Paulista <em>campus</em> 2, contou com a presença de mais de 500 participantes entre alunos e professores de todos os cursos de tecnologia da instituição (a saber, Ciência da Computação, Engenharia da Computação, Sistemas de Informação e Análise e Desenvolvimento de Sistemas). A sala estava cheia, o que demonstrou o enorme interesse dos estudantes pelo tema.</p>
<p>Em minha palestra, tive a oportunidade de falar mais profundamente sobre o conceito de computação em nuvem e, na sequência, apresentar a plataforma de computação em nuvem da Microsoft &#8211; o Windows Azure. Ao final, pude participar de uma mesa redonda com docentes da instituição, onde respondi a diversas questões associadas ao tema.</p>
<p>O PPTX utilizado por mim na palestra, pode ser visualizado a seguir.</p>
<p><center><iframe style="border: 1px solid #CCC; border-width: 1px 1px 0; margin-bottom: 5px;" src="http://www.slideshare.net/slideshow/embed_code/14916210" height="356" width="427" allowfullscreen="" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></center></p>
<div style="margin-bottom: 5px;"><strong> <a title="SSI 2012 - Computação em Nuvem" href="http://www.slideshare.net/fabriciolopessanchez/ssi-unilago2012" target="_blank">SSI 2012 &#8211; Computação em Nuvem</a> </strong> from <strong><a href="http://www.slideshare.net/fabriciolopessanchez" target="_blank">Fabrício Lopes Sanchez</a></strong></div>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://fabriciosanchez.com.br/2/jornada-de-tecnologia-da-unirp-saiba-como-foi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IaaS do Windows Azure agora em produção</title>
		<link>http://fabriciosanchez.com.br/2/iaas-do-windows-azure-agora-em-producao/</link>
		<comments>http://fabriciosanchez.com.br/2/iaas-do-windows-azure-agora-em-producao/#comments</comments>
		<pubDate>Tue, 16 Apr 2013 14:16:36 +0000</pubDate>
		<dc:creator>Fabrício Sanchez</dc:creator>
				<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[SQL Azure]]></category>
		<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[azure]]></category>
		<category><![CDATA[IaaS]]></category>
		<category><![CDATA[PaaS]]></category>
		<category><![CDATA[saas]]></category>
		<category><![CDATA[windows azure]]></category>

		<guid isPermaLink="false">http://fabriciosanchez.com.br/2/?p=223853</guid>
		<description><![CDATA[Hoje (16/04/2013), a Microsoft anunciou que seu ambiente de &#8220;infraestrutura como serviço&#8221; no Windows Azure está disponível em modo produção. Esta &#8220;virada de chave&#8221; por parte do time liderado por Scott Gu (@scottgu) é de fundamental importância para a Microsoft. Neste post, tentarei justificar esta afirmação. Contextualização A computação em nuvem é de fato, um novo [...]]]></description>
				<content:encoded><![CDATA[<p>Hoje (16/04/2013), a Microsoft <a href="http://t.co/oCVGSUDhXv" target="_blank">anunciou</a> que seu ambiente de &#8220;infraestrutura como serviço&#8221; no Windows Azure está disponível em modo produção. Esta &#8220;virada de chave&#8221; por parte do time liderado por Scott Gu (<a href="http://twitter.com/scottgu" target="_blank">@scottgu</a>) é de fundamental importância para a Microsoft. Neste <em>post</em>, tentarei justificar esta afirmação.</p>
<h2><strong>Contextualização</strong></h2>
<p>A computação em nuvem é de fato, um novo paradigma, pois ela disponibiliza um novo modelo para o gerenciamento dos recursos computacionais. Existem entretanto alguns cenários que precisam ser considerados pelas empresas que almejam aderir a este novo cenário e aqui, gostaria de destacar 3. Veja:</p>
<ol>
<li><span style="line-height: 13px;">A maioria das empresas já possuem seus ambientes configurados e funcionando com suas aplicações, legadas ou não. Bancos de dados, <em>firewalls</em>, servidores de aplicações, etc. Não é possível simplesmente esquecer todo este aparato tecnológico e simplesmente ir para a nuvem. </span></li>
<li>Nem todas as aplicações estão prontas para a nuvem. Isso é um fato e para muitos cenários, o custo de adequação para este ambiente não vale a pena.</li>
<li>As empresas possuem times capacitados para cuidar de suas infraestruturas. Estes times serão necessários por um longo tempo certamente, pois os cenários possuem especificidades.</li>
</ol>
<p>Isso posto, fica fácil notar a fundamental importância que existe no fato dos fornecedores de ambientes de computação em nuvem oferecerem ambientes mais flexíveis, que permitam às empresas levarem seus ambientes completos e não apenas aplicações, para a nuvem.</p>
<h2><strong>Windows Azure e IaaS</strong></h2>
<p>A aposta inicial da Microsoft com o Windows Azure no mercado de computação em nuvem foi PaaS (Plataforma como Serviço). Muito embora eu sempre tenha acreditado (e continuo acreditando) muito no modelo de plataforma como serviço, alguns fatos como aqueles listados no tópico anterior, acabaram atravancando a inserção do ambiente da Microsoft no mercado.</p>
<p>Há cerca de um ano (mais precisamente em Junho de 2012), a Microsoft anunciou a inserção de uma nova vertical de serviços &#8211; infraestrutura como serviço (IaaS). Desde então, a Microsoft vem melhorando e enriquecendo este ambiente e hoje, a empresa anunciou a disponibilidade em ambiente de produção.</p>
<p>Além do anúncio de GA para IaaS, a Microsoft anunciou também novos recursos, como: novos <em>templates</em> de máquinas virtuais (com Sharepoint, TFS, SQL Server, etc.), novas opções de configurações de máquinas com memórias de 28 e 56 GB RAM, dentre outras.</p>
<h2><strong>Minhas impressões</strong></h2>
<p>Grandes concorrentes da Microsoft (como a AWS, por exemplo) já ofereciam este suporte a IaaS há algum tempo e como já mencionei anteriormente, como a Microsoft mantinha seu foco em outra vertente de computação em nuvem, acabou se atrasando para ser inserida no mercado.</p>
<p>Agora, com o anúncio da disponibilidade em produção de sua vertical de IaaS, a Microsoft e o Windows Azure entram definitivamente na briga (com amplas chances de sucesso, é importante que se diga) no mercado de computação em nuvem.</p>
<p>Quem ganha com isso? O mercado, que agora pode obter mais uma opção de serviços infraestrutura de qualidade e tudo indica que este fato, deve derrubar os preços. Sim, é a velha regra da concorrência.</p>
<p>É isso, vamos ver o que o futuro nos reserva em relação a tecnologia. O que podemos afirmar sem medo de errar é: um gigante entrou na definitivamente na briga pelo mercado de computação em nuvem.</p>
]]></content:encoded>
			<wfw:commentRss>http://fabriciosanchez.com.br/2/iaas-do-windows-azure-agora-em-producao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET Web API versus ASP.NET MVC &#8211; As duas principais diferenças entre os modelos</title>
		<link>http://fabriciosanchez.com.br/2/asp-net-web-api-versus-asp-net-mvc-as-duas-principais-diferencas-entre-os-models/</link>
		<comments>http://fabriciosanchez.com.br/2/asp-net-web-api-versus-asp-net-mvc-as-duas-principais-diferencas-entre-os-models/#comments</comments>
		<pubDate>Tue, 16 Apr 2013 02:35:49 +0000</pubDate>
		<dc:creator>Fabrício Sanchez</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Destaques]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[WebService]]></category>
		<category><![CDATA[asp.net web api]]></category>
		<category><![CDATA[diferenças asp.net web api asp.net mvc]]></category>
		<category><![CDATA[Serviços]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://fabriciosanchez.com.br/2/?p=223773</guid>
		<description><![CDATA[A versão 4 do ASP.NET MVC foi lançada em 15 de Agosto de 2012. Se você é como eu e acompanha a evolução das tecnologias disponíveis na plataforma ASP.NET, deve se lembrar que a grande coqueluche (caramba, há quanto tempo não usava esta expressão?!) da versão 4 da framework MVC foi o ASP.NET Web API. [...]]]></description>
				<content:encoded><![CDATA[<p>A versão 4 do ASP.NET MVC foi lançada em 15 de Agosto de 2012. Se você é como eu e acompanha a evolução das tecnologias disponíveis na plataforma ASP.NET, deve se lembrar que a grande coqueluche (caramba, há quanto tempo não usava esta expressão?!) da versão 4 da <em>framework</em> MVC foi o <a title="ASP.NET  Web API" href="http://www.asp.net/web-api" target="_blank">ASP.NET Web API</a>. Podemos dizer que o ASP.NET  Web API está para o MVC 4 assim como o ASP.NET Razor esteve para o MVC 3.<span id="more-223773"></span></p>
<p>Desde o lançamento da última versão da <em>framework</em> MVC, muitas dúvidas surgiram (principalmente para desenvolvedores com pouca experiência no universo ASP.NET) em relação as diferenças entre as abordagens do MVC tradicional e do Web API. Sei disso por ler as muitas mensagens que recebo através deste site e conversas em eventos de comunidade e clientes.</p>
<p>Este <em>post</em> (que já está no <em>pipeline</em> há um bom tempo) tem como objetivo principal apresentar as principais diferenças entre as abordagens (MVC tradicional <em>versus</em> Web API). Esta informação pode ser útil, por exemplo, no momento da decisão pela tecnologia utilizada em determinado projeto.</p>
<blockquote><p><strong>Disclaimer</strong>: estou assumindo aqui que você já conheça os conceitos (ao menos em nível básico) da <em>framework</em> MVC. Além disso, é importante salientar que este <em>post</em> não trata o assunto &#8220;Como utilizar o ASP.NET Web API&#8221;.</p></blockquote>
<h2><strong>Primeira importante diferença: Roteamento</strong></h2>
<p>A primeira grande diferença que pude notar ao realizar a comparação entre projetos MVC tradicional e Web API foi: o mecanismo de rotas.</p>
<p>Como você deve se lembrar, uma aplicação MVC tradicional possui um mecanismo de rota bem definido, que associa os nomes dos controladores (<em>controllers</em>), suas respectivas ações (<em>actions</em>) e os valores de parâmetros que chegam para estas <em>actions</em>. Não há desta forma, uma relação direta com o verbo HTTP.</p>
<p>O modelo de roteamento proposto pelo Web API é diferente. Ele possui uma implementação consideravelmente maior (maior abstração) de lógica (por baixo do capo, é claro) e aqui, o protocolo HTTP exerce um papel fundamental no roteamento, uma vez que as amarrações são realizadas através dos verbos do protocolo e seus respetivos parâmetros.</p>
<p>Para que estes conceitos fiquem mais claros, considere os códigos apresentados pelas Listagens 1 e 2 (a seguir).</p>
<p>[code lang="c-sharp"]<br />
using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using System.Web;<br />
using System.Web.Mvc;</p>
<p>namespace DiferencasEntreModelosDeRoteamento.Controllers<br />
{<br />
public class RotaDoModeloMVCController : Controller<br />
{<br />
//<br />
// GET: /RotaDoModeloMVC/</p>
<p>public ActionResult Index()<br />
{<br />
return View();<br />
}</p>
<p>//<br />
// GET: /RotaDoModeloMVC/Details/5</p>
<p>public ActionResult Details(int id)<br />
{<br />
return View();<br />
}</p>
<p>//<br />
// GET: /RotaDoModeloMVC/Create</p>
<p>public ActionResult Create()<br />
{<br />
return View();<br />
}</p>
<p>//<br />
// POST: /RotaDoModeloMVC/Create</p>
<p>[HttpPost]<br />
public ActionResult Create(FormCollection collection)<br />
{<br />
try<br />
{<br />
// TODO: Add insert logic here</p>
<p>return RedirectToAction("Index");<br />
}<br />
catch<br />
{<br />
return View();<br />
}<br />
}</p>
<p>//<br />
// GET: /RotaDoModeloMVC/Edit/5</p>
<p>public ActionResult Edit(int id)<br />
{<br />
return View();<br />
}</p>
<p>//<br />
// POST: /RotaDoModeloMVC/Edit/5</p>
<p>[HttpPost]<br />
public ActionResult Edit(int id, FormCollection collection)<br />
{<br />
try<br />
{<br />
// TODO: Add update logic here</p>
<p>return RedirectToAction("Index");<br />
}<br />
catch<br />
{<br />
return View();<br />
}<br />
}</p>
<p>//<br />
// GET: /RotaDoModeloMVC/Delete/5</p>
<p>public ActionResult Delete(int id)<br />
{<br />
return View();<br />
}</p>
<p>//<br />
// POST: /RotaDoModeloMVC/Delete/5</p>
<p>[HttpPost]<br />
public ActionResult Delete(int id, FormCollection collection)<br />
{<br />
try<br />
{<br />
// TODO: Add delete logic here</p>
<p>return RedirectToAction("Index");<br />
}<br />
catch<br />
{<br />
return View();<br />
}<br />
}<br />
}<br />
}<br />
[/code]</p>
<p style="text-align: center;"><strong>Listagem 1</strong>. Um controlador MVC tradicional com métodos CRUD vazios</p>
<p>[code lang="c-sharp"]<br />
using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using System.Net;<br />
using System.Net.Http;<br />
using System.Web.Http;</p>
<p>namespace DiferencasEntreModelosDeRoteamento.Controllers<br />
{<br />
public class RotaDeModeloWebAPIController : ApiController<br />
{<br />
// GET api/rotademodelowebapi<br />
public IEnumerable Get()<br />
{<br />
return new string[] { "value1", "value2" };<br />
}</p>
<p>// GET api/rotademodelowebapi/5<br />
public string Get(int id)<br />
{<br />
return "value";<br />
}</p>
<p>// POST api/rotademodelowebapi<br />
public void Post([FromBody]string value)<br />
{<br />
}</p>
<p>// PUT api/rotademodelowebapi/5<br />
public void Put(int id, [FromBody]string value)<br />
{<br />
}</p>
<p>// DELETE api/rotademodelowebapi/5<br />
public void Delete(int id)<br />
{<br />
}<br />
}<br />
}<br />
[/code]</p>
<p style="text-align: center;"><strong>Listagem 2</strong>. Uma rota Web API com os mesmos métodos</p>
<p>Com uma simples observação dos dois modelos de controladores, fica fácil evidenciar as diferentes abordagens disponibilizadas pela <em>framework</em> MVC.</p>
<p>Além das ideias apresentadas anteriormente (no início da discussão deste tópico), um aspecto a ser notado aqui é o modelo de roteamento seguido pelas abordagens. Enquanto no modelo MVC temos o padrão definido &#8220;<em>{controller}/{action}/{id}</em>&#8220;, no modelo do Web API temos o padrão &#8220;<em>api/{controller}/{id}</em>&#8220;.</p>
<p>Uma observação importante em relação ao padrão de rota do modelo Web API é: a fração &#8220;api&#8221; da definição é apenas uma convenção criada para que não haja conflito entre controladores Web API e MVC tradicionais no mesmo projeto.</p>
<p>Quando disse anteriormente que a abstração implementada para o modelo Web API é maior, não estava mentindo. Note, existe na Listagem 2 uma implementação da <em>action </em>&#8220;<em>Get</em>&#8220;, entretanto, no comentário associado à implementação do método, existe um exemplo de como chamar esta ação. Temos: &#8220;<em>api/rotademodelowebapi/5</em>&#8220;. Note que, muito embora a implementação seja do método <em>Get</em>, temos a chamada para {<i>rotademodelowebapi</i>}. Isso somente é possível graças a abstração do <em>framework </em>(uma das novidades da versão 4).</p>
<h2><strong>Segunda importante diferença: Diferentes focos</strong></h2>
<p>Muito embora ambas as abordagens possam ser partes constituintes do mesmo projeto, controladores MVC tradicionais e Web API mantém focos extremamente diferentes.</p>
<p>Enquanto ASP.NET MVC tradicional mantém seu foco nitidamente no retorno de <em>views </em>e seus dados intrínsecos, ASP.NET Web API mantém seu foco no retorno exclusivo dos dados através da chamada de serviços <em>restfull</em>, &#8220;sem se preocupar&#8221; com a forma com que estes serão exibidos.</p>
<p>Era isso. Espero que este conteúdo possa ser útil para elucidar eventuais dúvidas persistentes acerca do modelo.</p>
<p>Até a próxima!</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://fabriciosanchez.com.br/2/asp-net-web-api-versus-asp-net-mvc-as-duas-principais-diferencas-entre-os-models/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Webmatrix 3 Beta &#8211; Quais são as novidades?</title>
		<link>http://fabriciosanchez.com.br/2/webmatrix-3-beta-quais-sao-as-novidades/</link>
		<comments>http://fabriciosanchez.com.br/2/webmatrix-3-beta-quais-sao-as-novidades/#comments</comments>
		<pubDate>Tue, 02 Apr 2013 18:27:28 +0000</pubDate>
		<dc:creator>Fabrício Sanchez</dc:creator>
				<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Destaques]]></category>
		<category><![CDATA[Ferramentas (IDE's)]]></category>
		<category><![CDATA[HTML 5]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Razor]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[WebMatrix]]></category>
		<category><![CDATA[Webstandards]]></category>
		<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[mvp]]></category>
		<category><![CDATA[mvp brasil]]></category>
		<category><![CDATA[novidades webmatrix 3]]></category>
		<category><![CDATA[webmatrix 3]]></category>

		<guid isPermaLink="false">http://fabriciosanchez.com.br/2/?p=223794</guid>
		<description><![CDATA[Na tarde de ontem (01/04/2013), a Microsoft anunciou através de seu site oficial para desenvolvimento web (Microsoft.com/web) a versão final do Webmatrix 3, sua ferramenta voltada para o desenvolvimento web apps pequenas e médias em diferentes linguagens, tais como PHP e Noje.js. Se você está tendo contato com esta ferramenta pela primeira vez através deste [...]]]></description>
				<content:encoded><![CDATA[<p>Na tarde de ontem (01/04/2013), a Microsoft anunciou através de seu site oficial para desenvolvimento <em>web</em> (<a href="http://microsoft.com/web" target="_blank">Microsoft.com/web</a>) a versão final do <strong>Webmatrix 3</strong>, sua ferramenta voltada para o desenvolvimento <em>web apps</em> pequenas e médias em diferentes linguagens, tais como <a href="http://php.net/" target="_blank">PHP</a> e <a href="http://nodejs.org/" target="_blank">Noje.js</a>. Se você está tendo contato com esta ferramenta pela primeira vez através deste <em>post</em>, recomendo efetuar a leitura de diversos outros conteúdos disponíveis neste site através dos <em>links</em> apresentados na lista a seguir.</p>
<ul>
<li><a title="Centro de Treinamento WebMatrix – MSDN Brasil" href="http://fabriciosanchez.com.br/2/centro-de-treinamento-webmatrix-msdn-brasil/">Centro de treinamento de Webmatrix</a> (em vídeo)</li>
<li><a title="Criando aplicativos web com WebMatrix e ASP.NET Razor – Parte 1" href="http://fabriciosanchez.com.br/2/criando-aplicativos-web-com-webmatrix-e-asp-net-razor-parte-1/">Criando aplicativos com Webmatrix e ASP.NET Razor &#8211; Parte 1</a></li>
<li><a title="Criando aplicativos web com ASP.NET Razor e WebMatrix – Parte 2" href="http://fabriciosanchez.com.br/2/criando-aplicativos-web-com-asp-net-razor-e-webmatrix-parte-2/">Criando aplicativos com WebMatrix e ASP.NET Razor &#8211; Parte 2</a></li>
<li><a title="Criando aplicativos web com ASP.NET Razor e WebMatrix – Parte 3" href="http://fabriciosanchez.com.br/2/criando-aplicativos-web-com-asp-net-razor-e-webmatrix-parte-3/">Criando aplicativos com WebMatrix e ASP.NET Razor &#8211; Parte 3</a></li>
<li><a title="Criando aplicativos web com ASP.NET Razor e WebMatrix – Parte 4" href="http://fabriciosanchez.com.br/2/criando-aplicativos-web-com-asp-net-razor-e-webmatrix-parte-4/">Criando aplicativos com WebMatrix e ASP.NET Razor &#8211; Parte 4</a></li>
<li><a title="WebMatrix 2 – O que a nova versão trará?" href="http://fabriciosanchez.com.br/2/webmatrix-2-o-que-a-nova-versao-trara/">Webmatrix 2 &#8211; O que a nova versão trará?</a></li>
<li><a title="Série – WebMatrix e Razor" href="http://fabriciosanchez.com.br/2/desenvolvimento/serie-webmatrix-e-razor/">Série de artigos sobre WebMatrix</a><span id="more-223794"></span></li>
</ul>
<h2><strong>WebMatrix 3 e seu posicionamento no mercado</strong></h2>
<p>Uma dúvida que sempre surge dentre os profissionais de desenvolvimento para <em>web</em> quando são apresentados ao Webmatrix é: porque colocar no mercado uma ferramenta como Webmatrix se a Microsoft já possui uma ferramenta muito mais poderosa e robusta (Visual Studio) para o mesmo fim? Sempre argumentei que a ideia da Microsoft era proporcionar um ambiente mais simplificado e direto que tornasse o processo de escrita de <em>web apps</em> mais fácil, principalmente para quem estava iniciando neste cenário. Mesmo assim, a dúvida persistiu.</p>
<p>Para mim, com WebMatrix 3, esta dúvida é/será definitivamente sanada. Isso porque a ferramenta se posicionou de uma forma &#8220;mais definitiva&#8221;. No final deste <em>post</em>, após apresentar os novos recursos, fecharei o raciocínio justificando como ela (Microsoft) posicionou melhor o produto no mercado.</p>
<h2><strong>Novidades</strong></h2>
<p>O WebMatrix 3 trouxe diversas novidades, as quais apresentaremos a seguir. Para mim, as novidades podem ser resumidas em quatro grandes: 1) Conectividade; 2) Edição de aplicações de forma remota; 3) Gerenciamento de código com TFS (<a href="http://msdn.microsoft.com/pt-br/vstudio/ff637362.aspx" target="_blank"><em>Team Foundation Server</em></a>); 4) Gerenciamento de código com <a href="http://git-scm.com/" target="_blank">Git</a>.</p>
<h2><strong>Conectividade e edição de aplicações remotas</strong></h2>
<p>WebMatrix 3 veio equipado com diversos recursos que melhoraram a conectividade das aplicações nela desenvolvidas com Windows Azure (plataforma de <em>cloud computing</em> da Microsoft. Você pode saber um pouco mais sobre ela seguindo <a title="Série – Windows Azure" href="http://fabriciosanchez.com.br/2/desenvolvimento/serie-windows-azure/" target="_blank">este <em>link</em></a>.). Além disso, foram adicionados os recursos de editar &#8220;a quente&#8221; aplicações online em <em>hosts</em> tradicionais e versionadores de código online, como Git Hub e TFS online. As figuras a seguir apresentam estas novas opções.</p>
<p><a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-1.png"><img class="aligncenter size-full wp-image-223804" alt="webmatrix3-1" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-1.png" width="550" height="440" /></a></p>
<p style="text-align: center;"><strong>Figura 1</strong>. As novas opções de editar aplicações online</p>
<p style="text-align: center;"><a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-2.png"><img class="aligncenter size-full wp-image-223806" alt="webmatrix3-2" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-2.png" width="595" height="326" /></a><br />
<strong>Figura 2</strong>. Como você deseja se conectar ao ambiente online?</p>
<p style="text-align: center;"><a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-3.png"><img class="aligncenter size-full wp-image-223807" alt="webmatrix3-3" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-3.png" width="593" height="367" /></a><br />
<strong>Figura 3</strong>. Autenticando com a conta do Windows Azure</p>
<p style="text-align: center;"><a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-4.png"><img class="aligncenter size-full wp-image-223812" alt="webmatrix3-4" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-4.png" width="606" height="427" /></a></p>
<p style="text-align: center;"><strong>Figura 4</strong>. Website encontrado para a assinatura informada</p>
<p style="text-align: left;">Como você pode verificar, o processo de conexão com uma aplicação no Windows Azure ou qualquer outro ambiente de <em>host</em> foi amplamente melhorada. Com alguns poucos e simples passos, é possível editar suas aplicações &#8220;a quente&#8221;, isto é, sem precisar baixar os arquivos da mesma para editar e na sequência, realizar o <em>upload</em> novamente. Mais uma passo na direção da simplificação do processo de construção de aplicações <em>web</em>.</p>
<p style="text-align: left;">Em breve farei novos artigos apresentando o <em>modos operandi </em>da ferramenta em relação a estas novas <em>features</em>.</p>
<h2 style="text-align: left;"><strong>Gerenciamento de código com TFS ou Git</strong></h2>
<p>A adição da possibilidade de gerir códigos fonte utilizando <a href="http://tfs.visualstudio.com" target="_blank">TFS online</a> ou Git é sem dúvida, uma das grandes melhorias implementadas no WebMatrix 3. Agora, é possível versionar seus fontes escritos com WebMatrix seja em que linguagem for (desde que suportada pela ferramenta, evidentemente) com TFS ou Git e efetuar o <em>publish</em> destes ambientes diretamente no Windows Azure. Escrevi um <em>post</em> sobre o processo de publicação de aplicações <em>web</em> utilizando Git no Windows Azure Web Sites aqui mesmo no <em>blog</em>. Basta seguir <a title="Windows Azure Web Sites – Criando com Razor e publicando com Git" href="http://fabriciosanchez.com.br/2/windows-azure-web-sites-criando-com-razor-e-publicando-com-git/" target="_blank">este <em>link</em></a> para efetuar a leitura.</p>
<p>A seguir disponibilizo algumas imagens que apresentam estes procedimentos.</p>
<p><a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-5.png"><img class="aligncenter size-full wp-image-223816" alt="webmatrix3-5" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-5.png" width="608" height="258" /></a></p>
<p style="text-align: center;"><strong>Figura 5</strong>. Nova aba de &#8220;<em>Source Control</em>&#8220;, que dá acesso aos repositórios <em>online </em>(Imagem: <a href="http://webblogheart.blob.core.windows.net/files/clip_image004_18.png">http://webblogheart.blob.core.windows.net/</a>)</p>
<p style="text-align: center;"><a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-6.png"><img class="aligncenter size-full wp-image-223817" alt="webmatrix3-6" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-6.png" width="606" height="448" /></a><strong>Figura 6</strong>. Conectando a coleção do TFS online (Imagem: <a href="http://webblogheart.blob.core.windows.net/files/clip_image004_18.png">http://webblogheart.blob.core.windows.net/</a>)</p>
<p style="text-align: center;"><a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-7.png"><img class="aligncenter size-full wp-image-223818" alt="webmatrix3-7" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-7.png" width="586" height="243" /></a></p>
<p style="text-align: center;"><strong>Figura 7</strong>. Opção de realizar <em>checkin</em> para o repositório online (Imagem: <a href="http://webblogheart.blob.core.windows.net/files/clip_image004_18.png">http://webblogheart.blob.core.windows.net/</a>)</p>
<p style="text-align: center;"> <a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-8.png"><img class="aligncenter size-full wp-image-223819" alt="webmatrix3-8" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-8.png" width="589" height="247" /></a></p>
<p style="text-align: center;"><strong>Figura 8</strong>. Obtend0 a última versão do projeto (Imagem: <a href="http://webblogheart.blob.core.windows.net/files/clip_image004_18.png">http://webblogheart.blob.core.windows.net/</a>)</p>
<p style="text-align: left;">É importante notar que o processo de conexão tanto com Git quanto com TFS  funciona de muito bem e de forma simplificada, sem maiores dificuldades para quem não possui experiência com versionamento de código. Esta era um <em>feature</em> muito solicitada para o WebMatrix, principalmente por desenvolvedores oriundos de outras plataformas como Node.js e PHP. Mais um passo na direção da simplificação dos processos.</p>
<h2 style="text-align: left;"><strong>Outras novidades</strong></h2>
<p>Além das novidades maiores, existem também novidades menores. A seguir, apresentamos algumas destas novidades.</p>
<ul>
<li><strong>Adição de novas aplicações para a galeria de aplicações online</strong><br />
Para esta versão, a Microsoft incrementou o número de aplicações que estão disponíveis através da &#8220;<em>Web App Gallery</em>&#8220;. O número total de aplicações que antes estava na casa das 50 aplicações, subiu para 66. Além disso, as aplicações agora possuem uma notificação visual sobre a compatibilidade com o ambiente do Windows Azure, conforme ilustra a Figura 9.</p>
<p style="text-align: center;"><a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-9.png"><img class="aligncenter" alt="webmatrix3-9" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-9.png" width="606" height="419" /></a><strong><br />
Figura 9</strong>. Novas aplicações disponíveis e notificação visual de compatibilidade</p>
</li>
<li style="text-align: left;"><strong>Adição de segmentação ao buscar pacotes no NuGet</strong><br />
Para esta versão, o time do WebMatrix adicionou um detalhe pequeno mas que ajuda demais quando se deseja encontrar pacotes no NuGet: a segmentação. Agora é possível segmentar não só o repositório a ser exibido como os tipos de versões que deverão ser apresentadas. A Figura 10 apresenta esta janela.<br />
<a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-10.png"><img class="aligncenter size-full wp-image-223823" alt="webmatrix3-10" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-10.png" width="621" height="454" /></a></li>
</ul>
<p style="text-align: center;"><strong>Figura 10</strong>. Nova janela de busca de pacotes do NuGet</p>
<ul>
<li>
<div style="text-align: left;"><strong>Suporte a novos tipos de arquivos</strong><br />
Ao WebMatrix 3 foi adicionado também o suporte nativo às novas linguagens (com arquivos específicos) TypeScript, CoffeeScript e JSON Package, conforme ilustra a Figura 11.<br />
<a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-11.png"><img class="aligncenter size-full wp-image-223824" alt="webmatrix3-11" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-11.png" width="615" height="448" /></a></div>
</li>
</ul>
<p style="text-align: center;"><strong>Figura 11</strong>. Novos tipos de arquivos adicionados</p>
<ul>
<li>
<div style="text-align: left;"><strong>Trabalho com banco de dados SQL no Windows Azure a quente</strong><br />
Com WebMatrix 3 é possível trabalhar diretamente com bancos de dados SQL Server no modelo plataforma no Windows Azure, conforme ilustram as Figuras 12 e 13 a seguir.<br />
<a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-12.png"><img class="aligncenter size-full wp-image-223825" alt="webmatrix3-12" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-12.png" width="433" height="332" /></a></p>
<p style="text-align: center;"><strong>Figura 12</strong>. Conectando há uma base de dados do SQL Azure</p>
<p style="text-align: center;"><a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-13.png"><img class="aligncenter size-full wp-image-223826" alt="webmatrix3-13" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/04/webmatrix3-13.png" width="407" height="106" /></a></p>
<p style="text-align: center;"><strong>Figura 13</strong>. Base de dados conectada dentro do WebMatrix</p>
<p>&nbsp;</p>
</div>
</li>
</ul>
<h2><strong>Conclusão</strong></h2>
<p>Conforme havia mencionado no início deste texto, com as novas <em>features</em> implementadas no WebMatrix 3, para mim, a Microsoft posiciona o produto de forma definitiva no mercado: uma ferramenta para construção de aplicações <em>web</em> (principalmente aquelas já prontas: WordPress, Joomla, Magento, etc.) para usuários que não possuem conhecimentos técnicos. De lambuja, a empresa consegue alcançar um público não .NET, isso porque oferece um suporte bem legal as linguagens externas (ao .NET) suportadas.</p>
<p>Além disso, com a integração (muito boa, por sinal) nativa com versionadores de código e com o Windows Azure Web Sites, a Microsoft fecha um ecossistema extremamente funcional e assertivo para quem deseja &#8220;se virar sozinho&#8221;. Para certos tipos de aplicações, WebMatrix continua sendo BEM MAIS funcional que o Visual Studio e outras ferramentas.</p>
<p><em>Just my 2 cents!</em></p>
<p>Por hoje é só. Um forte abraço a todos e até a próxima!</p>
]]></content:encoded>
			<wfw:commentRss>http://fabriciosanchez.com.br/2/webmatrix-3-beta-quais-sao-as-novidades/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MVP Virtual Conference 2013 &#8211; Saiba como foi</title>
		<link>http://fabriciosanchez.com.br/2/mvp-virtual-conference-2013-saiba-como-foi/</link>
		<comments>http://fabriciosanchez.com.br/2/mvp-virtual-conference-2013-saiba-como-foi/#comments</comments>
		<pubDate>Tue, 02 Apr 2013 14:12:34 +0000</pubDate>
		<dc:creator>Fabrício Sanchez</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Destaques]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Ferramentas (IDE's)]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Private Cloud]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[azure]]></category>
		<category><![CDATA[evento mvp]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[mvp virtual conference]]></category>
		<category><![CDATA[mvpbr]]></category>
		<category><![CDATA[mvps]]></category>
		<category><![CDATA[mvps do brasil]]></category>
		<category><![CDATA[programa mvp]]></category>
		<category><![CDATA[windows azure]]></category>

		<guid isPermaLink="false">http://fabriciosanchez.com.br/2/?p=223790</guid>
		<description><![CDATA[Em 2013, entre os dias 26 e 28 de Março, foi realizada a primeira edição do MVP Virtual Conference. O evento, foi organizado pela Microsoft (através do programa MVP, representado pelo JP Clementi, MVP Lead para o Brasil) com o apoio da comunidade técnica. Durante os três dias de evento, cerca de 1.200 pessoas marcaram [...]]]></description>
				<content:encoded><![CDATA[<p>Em 2013, entre os dias 26 e 28 de Março, foi realizada a primeira edição do MVP Virtual Conference. O evento, foi organizado pela Microsoft (através do programa MVP, representado pelo JP Clementi, MVP Lead para o Brasil) com o apoio da comunidade técnica.<span id="more-223790"></span></p>
<p>Durante os três dias de evento, cerca de 1.200 pessoas marcaram presença e tiveram a oportunidade de receber gratuitamente muitas informações sobre as diversas tecnologias da Microsoft, informações estas que foram apresentadas pelos maiores especialistas no assunto em cada área no Brasil. Não apenas MVPs entregaram conteúdos mas também, funcionários da Microsoft, apenas para citar alguns: Humberto Silva (MTC) e Vinícius Apolinário (DPE).</p>
<p>O evento foi formatado em trilhas paralelas que eram acompanhadas de forma virtual (via Livemeeting). Particularmente gosto deste modelo, uma vez que proporciona flexibilidade para quem deseja assistir a assuntos específicos e não pode deslocar-se fisicamente para fazê-lo. Logo, como não poderia ser diferente, o evento foi um sucesso.</p>
<p>No total, o evento contou com 9 trilhas abordando os mais diversos assuntos: cloud computing (trilha na qual palestrei e ajudei a organizar), segurança, consumerização de TI, gerenciamento de dados, produtividade e colaboração, interoperabilidade, desenvolvimento de software, dentre outras. Cerca de 60 MVPs participaram entregando conteúdos nas 49 sessões em mais de 55 horas de conteúdos técnicos.</p>
<p>A seguir disponibilizo o PPTX da palestra que realizei e os links para as soluções de algumas demonstrações que realizei durante minha fala. Outra observação importante é que todas as palestras foram gravadas para exibição sob demanda. Assim que estes conteúdos estiverem disponíveis no site da Microsoft, atualizarei este <em>post</em> com os <em>links</em>.</p>
<p><iframe style="border-width: 1px 1px 0px; border-style: solid; border-color: #cccccc; margin-bottom: 5px;" src="http://www.slideshare.net/slideshow/embed_code/18054960" height="356" width="427" allowfullscreen="" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<div style="margin-bottom: 5px;"><strong> <a title="Windows Azure: computação em nuvem no melhor estilo self-service" href="http://www.slideshare.net/fabriciolopessanchez/windows-azure-computao-em-nuvem-no-melhor-estilo-selfservice" target="_blank">Windows Azure: computação em nuvem no melhor estilo self-service</a> </strong> por <strong><a href="http://www.slideshare.net/fabriciolopessanchez" target="_blank">Fabrício Lopes Sanchez</a></strong></div>
]]></content:encoded>
			<wfw:commentRss>http://fabriciosanchez.com.br/2/mvp-virtual-conference-2013-saiba-como-foi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Anúncio: Vou palestrar no MVP Virtual Conference</title>
		<link>http://fabriciosanchez.com.br/2/anuncio-vou-palestrar-no-mvp-virtual-conference/</link>
		<comments>http://fabriciosanchez.com.br/2/anuncio-vou-palestrar-no-mvp-virtual-conference/#comments</comments>
		<pubDate>Fri, 15 Mar 2013 02:27:34 +0000</pubDate>
		<dc:creator>Fabrício Sanchez</dc:creator>
				<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Destaques]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[mvp brasil]]></category>
		<category><![CDATA[mvp virtual conference]]></category>
		<category><![CDATA[mvpbr]]></category>
		<category><![CDATA[virtual conference]]></category>

		<guid isPermaLink="false">http://fabriciosanchez.com.br/2/?p=223781</guid>
		<description><![CDATA[Entre os dias 26 &#8211; 28 de Março de 2013, a comunidade técnica de MVPs e a Microsoft realizarão a primeira edição do &#8220;MVP Virtual Conference&#8221;. O evento (que será totalmente gratuito e possui vagas limitadas) será realizado no formato online, assim, você poderá facilmente acompanhá-lo  de seu trabalho, faculdade ou residência sem maiores problemas. [...]]]></description>
				<content:encoded><![CDATA[<p>Entre os dias 26 &#8211; 28 de Março de 2013, a comunidade técnica de MVPs e a Microsoft realizarão a primeira edição do &#8220;MVP Virtual Conference&#8221;.</p>
<p>O evento (que será totalmente gratuito e possui vagas limitadas) será realizado no formato <em>online</em>, assim, você poderá facilmente acompanhá-lo  de seu trabalho, faculdade ou residência sem maiores problemas.<span id="more-223781"></span></p>
<p>O evento contará com diversas trilhas durante os três dias, abordando todos os principais assuntos em evidência no mercado de TI, tais como: consumerização, segurança, gerenciamento de projetos e equipes de desenvolvimento de <em>software</em>, interoperabilidade, arquitetura e gerenciamento de servidores, desenvolvimento de aplicações, produtividade e colaboração, computação em nuvem, <em>big data</em> e gerenciamento de dados, dentre outras.</p>
<p>No evento tive a honra de, junto com os amigos Evilázaro Alves e Lucas Romão, ser um dos responsáveis pela organização da trilha de <em>cloud computing</em>. Mas a honraria não parou por aí. Isso porque serei um dos palestrantes desta mesma trilha.</p>
<p>Na palestra, falarei sobre o ambiente atual do Windows Azure e como ele pode atender para diversos cenários reais. A trilha de <em>cloud</em> será realizada no dia 28/03 (quinta-feira). Você não poderá perder!</p>
<p>Mais detalhes sobre o evento (como inscrições e horários), você poderá encontrar aqui: <strong><a href="http://mvpvirtualconference.azurewebsites.net">http://mvpvirtualconference.azurewebsites.net</a></strong></p>
<p>Um abraço a todos!</p>
]]></content:encoded>
			<wfw:commentRss>http://fabriciosanchez.com.br/2/anuncio-vou-palestrar-no-mvp-virtual-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MVP Summit 2013 &#8211; Saiba como foi</title>
		<link>http://fabriciosanchez.com.br/2/mvp-summit-2013-saiba-como-foi/</link>
		<comments>http://fabriciosanchez.com.br/2/mvp-summit-2013-saiba-como-foi/#comments</comments>
		<pubDate>Sun, 24 Feb 2013 18:37:34 +0000</pubDate>
		<dc:creator>Fabrício Sanchez</dc:creator>
				<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Destaques]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[azure]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[global mvp summit]]></category>
		<category><![CDATA[mvp]]></category>
		<category><![CDATA[mvp 2013]]></category>
		<category><![CDATA[mvp summit]]></category>
		<category><![CDATA[mvp summit 2013]]></category>
		<category><![CDATA[summit 2013]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://fabriciosanchez.com.br/2/?p=223695</guid>
		<description><![CDATA[Entre os dias 18 e 21 de Fevereiro de 2013, tive a oportunidade de pela segunda vez consecutiva, participar do encontro mundial de MVPs na sede da Microsoft em Redmond &#8211; o Global MVP Summit. O evento é realizado sempre entre duas cidades: Redmond (onde está localizada a sede mundial da Microsoft) e Bellevue, cidade próxima [...]]]></description>
				<content:encoded><![CDATA[<p>Entre os dias 18 e 21 de Fevereiro de 2013, tive a oportunidade de pela segunda vez consecutiva, participar do encontro mundial de MVPs na sede da Microsoft em Redmond &#8211; o <a href="http://2013mvpsummit.com" target="_blank">Global MVP Summit</a>. O evento é realizado sempre entre duas cidades: Redmond (onde está localizada a sede mundial da Microsoft) e Bellevue, cidade próxima a Redmond e a Seattle.<span id="more-223695"></span></p>
<p>O evento que possui periodicidade anual, é dedicado aos <i>Most Valuable Professional </i>– MVPs (profissionais aos quais a Microsoft reconhece como referências de mercado em suas tecnologias), apresenta o futuro das tecnologias e da empresa, bem como os caminhos que o mercado deve tomar nos próximos anos.</p>
<p>Neste ano, cerca de 1.400 MVPs marcaram presença no evento, sendo que destes, 51 eram brasileiros. Uma observação interessante em relação a estes números é que o time brasileiro, foi um dos mais representativos no evento. Além disso, o evento deste ano marcou o aniversário de 20 anos do programa. Foi muito legal poder estar lá e participar deste momento.</p>
<p>Além do que foi mencionado anteriormente, para mim o Summit deste ano foi ainda mais especial, por vários motivos, sendo que um dos principais foi, poder conversar com alguns &#8220;donos&#8221; de produtos e passar <em>feedbacks</em> sobre eles diretamente para quem pode resolver. Estou falando de <a href="http://www.hanselman.com" target="_blank">Scott Hanselman</a> (ASP.NET <em>Team</em>), <a href="http://damianedwards.wordpress.com" target="_blank">Demian Eduards</a> (ASP.NET <em>Team </em>[SignalR]), <a href="http://blogs.msdn.com/b/scothu/" target="_blank">Scott Hunter</a> (ASP.NET <em>Team</em>) e o papa da <em>web</em> e <em>cloud computing</em>, <a href="http://weblogs.asp.net/scottgu/" target="_blank">Scott Guthrie</a> (a.k.a. Scott Gu).</p>
<p>Muitas pessoas tem me perguntado sobre os conteúdos, novidades, etc. Eu gostaria muito de já poder adiantar, entretanto, infelizmente (por uma estratégia de mercado da Microsoft), muitos dos conteúdos apresentados no evento ainda encontram-se sob NDA (<em>Non-Disclosure Agreement</em>) e, neste momento, não podem ser divulgados. O que posso assegurar em relação a minha competência (ASP.NET/IIS e Azure) e aos conteúdos dos quais assisti as palestras é: ao meu ver, a Microsoft está no caminho certo em relação à suas tecnologias de desenvolvimento e &#8220;coisas&#8221; bem interessantes estarão disponíveis em breve.</p>
<p>Fiquem atentos à este <em>blog</em> pois, assim que as novidades forem sendo liberadas, &#8220;blogarei&#8221; sobre elas.</p>
<p>A seguir disponibilizo algumas das fotos tiradas durante o evento e mais informações sobre alguns pontos citados aqui.</p>
<p>Gostaria de parabenizar a organização do evento que foi muito cuidadosa em cada etapa do processo. Desde a recepção, preparação dos conteúdos, alimentação, etc. Gostaria de parabenizar e agradecer publicamente também ao nosso JP (João Paulo Clementi, MVP <em>Lead</em> do Brasil). Sua atenção e disponibilidade junto a todas as atividades durante o evento fez toda a diferença para o time brasileiro e sim, sei que falo em nome de todos os MVPs &#8220;<em>tupiniquins</em>&#8220;.</p>
<p>Algumas imagens do MVP Summit 2013 (via SkyDrive): <a href="https://skydrive.live.com/redir?resid=F54916DC1A300501!410&amp;authkey=!AHXeCAr05LBRoBs" target="_blank">https://skydrive.live.com/redir?resid=F54916DC1A300501!410&amp;authkey=!AHXeCAr05LBRoBs</a></p>
<p>Mais informações:</p>
<ul>
<li>Sobre o MVP Summit 2013: <a href="http://www.2013mvpsummit.com" target="_blank">http://www.2013mvpsummit.com</a></li>
<li>Mais sobre o programa MVP no mundo: <a href="http://mvp.microsoft.com/en-US/Pages/default.aspx" target="_blank">http://mvp.microsoft.com/en-US/Pages/default.aspx</a></li>
<li>Mais sobre o programa MVP no Brasil: <a href="http://blogs.msdn.com/b/mvpbr/" target="_blank">http://blogs.msdn.com/b/mvpbr/</a></li>
<li>Página do MVP Brasil no Facebook: <a href="https://www.facebook.com/mvpbr" target="_blank">https://www.facebook.com/mvpbr</a></li>
</ul>
<p>Era isso. Um forte abraço a todos e, até 2014!</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://fabriciosanchez.com.br/2/mvp-summit-2013-saiba-como-foi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inicializando e utilizando o &#8220;Windows Azure Diagnostic Monitor&#8221; para Web Roles</title>
		<link>http://fabriciosanchez.com.br/2/inicializando-e-utilizando-o-windows-azure-diagnostic-monitor-para-web-roles/</link>
		<comments>http://fabriciosanchez.com.br/2/inicializando-e-utilizando-o-windows-azure-diagnostic-monitor-para-web-roles/#comments</comments>
		<pubDate>Sun, 24 Feb 2013 03:09:12 +0000</pubDate>
		<dc:creator>Fabrício Sanchez</dc:creator>
				<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[azure]]></category>
		<category><![CDATA[monitor de diagóstico windows azure]]></category>
		<category><![CDATA[performance windows azure]]></category>
		<category><![CDATA[windows azure]]></category>
		<category><![CDATA[windows azure diagnostic monitor]]></category>

		<guid isPermaLink="false">http://fabriciosanchez.com.br/2/?p=223675</guid>
		<description><![CDATA[Se você é como eu, certamente é um profissional extremamente preocupado com a performance das aplicações que você constrói efetivamente ou participa do processo de construção. Recentemente, ao encontrar alguns problemas de performance em uma aplicação de teste que &#8220;roda&#8221; no ambiente de cloud service (Web Role) do Windows Azure, saí a procura de ferramentas para monitorar [...]]]></description>
				<content:encoded><![CDATA[<p>Se você é como eu, certamente é um profissional extremamente preocupado com a performance das aplicações que você constrói efetivamente ou participa do processo de construção.</p>
<p>Recentemente, ao encontrar alguns problemas de performance em uma aplicação de teste que &#8220;roda&#8221; no ambiente de <em>cloud service</em> (<em>Web Role</em>) do Windows Azure, saí a procura de ferramentas para monitorar o comportamento da aplicação no ambiente de produção para, antes de qualquer medida corretiva, pudesse encontrar os pontos de gargalo da aplicação.<span id="more-223675"></span></p>
<p>Fiquei surpreso e naturalmente empolgado ao descobrir que a própria Microsoft disponibiliza tais ferramentas dentro de sua plataforma de desenvolvimento para <em>web </em>(ASP.NET), de seu sistema operacional para servidores, o Windows Server (a partir da versão 2008) e por inércia, dentro da plataforma de <em>cloud computing</em> da empresa, a saber, o Windows Azure.</p>
<h2><strong>Windows Azure Diagnostic Monitor (WADM)?</strong></h2>
<p><em>Windows Azure Diagnostic Monitor</em> (em português, &#8220;Monitor de Diagnósticos do Windows Azure&#8221;) é um componente de software disponível dentro da estrutura de <em>cloud</em> que possui o objetivo de coletar dados operacionais da aplicação em análise. Além de coletar e armazenar tais informações, WADM permite ainda a visualização remota das mesmas (desde que devidamente configurado).</p>
<p>Muito embora o recurso esteja presente e a disposição do desenvolvedor, ele precisa ser ativado/habilitado. Assim, no <em>post</em> de hoje, gostaria de apresentar o processo necessário para que você consiga habilitar o WADM em sua infraestrutura de <em>cloud</em>.</p>
<h2><strong>Habilitando o WADM</strong></h2>
<p>Para que possamos apresentar a assertividade do processo apresentado aqui, criaremos um projeto de <em>cloud</em> (com ASP.NET MVC 4) no Visual Studio 2012 (para o VS 2010 o processo é o mesmo) e faremos as alterações necessárias para a habilitação do recurso.</p>
<p>Algumas observações importantes são:</p>
<ol>
<li><span style="line-height: 13px;">Trabalharemos neste <em>post </em>com o conceito de <em>cloud services</em>, mais especificamente, <em>web roles</em>. Entretanto, o processo funcionaria da mesma forma para uma <em>worker role</em>.</span></li>
<li>Para demonstrar a funcionalidade, utilizaremos o <em>compute emulator </em>do Windows Azure, entretanto, o processo é rigorosamente o mesmo para colocar esta funcionalidade no ar no ambiente de produção.</li>
</ol>
<p>Para demonstrar na prática o conceito apresentado neste <em>post</em>, o que faremos como primeiro passo é evidentemente, criar um novo projeto no Visual Studio do tipo &#8220;<em>Cloud</em>&#8221; adicionando um <em>web project</em> &#8220;ASP.NET MVC 4&#8243;. <em><strong>Disclaimer</strong></em>: Estou imaginando que você esteja familiarizado com este processo de criação e por isso, não o demonstrarei aqui.</p>
<p>Uma menção importante neste momento é que, o que possibilita a coleta de dados operacionais da aplicação em <em>roles</em> é justamente o módulo de diagnóstico e por este motivo, precisamos o &#8220;importar&#8221; do Windows Server para nossa aplicação. O termo é &#8220;importar&#8221;, mas na prática, funciona como um ponteiro do monitor para a aplicação.</p>
<p>O que precisamos fazer neste instante é visualizar o arquivo *.cscdef da <em>web role</em>. Isso porque precisamos verificar se o módulo de diagnóstico já foi importado por padrão no momento da criação do projeto. Caso o módulo já tenha sido importado por padrão, ao iniciar a <em>web role</em>, o Windows Azure automaticamente inicia a coleta dos dados. Caso contrário, precisamos realizar algumas configurações manuais (como a seguir).</p>
<p>Vamos aos passos necessários (são apenas dois) necessários para habilitar nosso monitor de diagnósticos?</p>
<h2><strong>Passo 1. Verifique o arquivo de definição quanto a importação do diagnóstico</strong></h2>
<p>O primeiro passo a ser dado no sentido de habilitar o recurso de diagnóstico da aplicação é verificar se o respectivo módulo importado a mesma. Para isso, vá até o arquivo de definições de sua <em>role</em> (com a extensão *.csdef) e verifique as linhas destacadas em verde na Figura 1 encontram-se também no corpo de seu código. Se sim ótimo, primeira etapa concluída. Senão, adicione-as, conforme apresentado na figura.</p>
<p><a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/02/azure-diag-1.png"><img class="aligncenter size-full wp-image-223681" alt="azure-diag-1" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/02/azure-diag-1.png" width="634" height="337" /></a></p>
<p style="text-align: center;"><strong>Figura 1</strong>. Verificando adicionando as linhas de importação do módulo de diagnóstico</p>
<h2 style="text-align: left;"><strong>Passo 2. Verificando se os valores estão corretamente atribuídos</strong></h2>
<p>A próxima etapa consiste em verificar se os valores para cada uma das propriedades que fazem com que as coisas aconteçam, estão corretamente atribuídos. Como você já deve saber, o arquivo responsável por carregar tais atribuições é aquele com a extensão *.cscfg. Em seu projeto devem existir duas opções deste arquivo: Local e Cloud. Ambos serão úteis em seus respectivos ambientes, portanto, verifique se o trecho de código apresentado pela Figura 2 encontra-se disponível em ambos. Em caso positivo, mais uma etapa foi superada. Em caso negativo, você deverá adicionar tais linhas.</p>
<p style="text-align: center;"><a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/02/azure-diag-2.png"><img class="aligncenter  wp-image-223682" alt="azure-diag-2" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/02/azure-diag-2.png" width="600" height="100" /></a></p>
<p style="text-align: center;"><strong>Figura 2</strong>. Atribuindo os valores para que o módulo de diagnóstico funcione corretamente</p>
<p style="text-align: left;">Neste ponto, precisamos informar ao Windows Azure, onde os dados provenientes do processo de monitoramento serão armazenados para posterior consulta. Nesta linha, duas observações importantes sobre o trecho de código apresentado anteriormente são:</p>
<ol>
<li><span style="line-height: 13px;">Note que para este exemplo, a propriedade &#8220;<em>value</em>&#8221; está com valor &#8220;UseDevelopmentStorage=true&#8221;. Isso significa que estaremos utilizando o esquema de armazenamento proporcionado pelo emulador do Windows Azure.</span></li>
<li>Você pode realizar o mesmo processo utilizando um ambiente de armazenamento de produção. Bastaria para isso adicionar o trecho de código apresentado pela Figura 3 (a seguir).</li>
</ol>
<p><a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/02/azure-diag-3.png"><img class="aligncenter size-full wp-image-223684" alt="azure-diag-3" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/02/azure-diag-3.png" width="697" height="73" /></a></p>
<p style="text-align: center;"><strong>Figura 3</strong>. Atribuindo valores para o monitor para ambiente de produção</p>
<p style="text-align: left;">Pronto! Tecnicamente nossa <em>role </em>está pronta para iniciar a coleta dos dados. O que precisamos agora é adicionar um contador de ocorrências. Para testar exemplificar o funcionamento, utilizarei um contador de performance (já disponível na plataforma .NET) &#8211; o <em>Performance Counter</em>.</p>
<p style="text-align: left;">Os passos para realizar esta tarefa são:</p>
<ol>
<li><span style="line-height: 13px;">Edite o arquivo &#8220;WebRole.cs&#8221;;</span></li>
<li>Sobrescreva o método &#8220;OnStart&#8221; com o código apresentado pela Figura 4;</li>
<li>Execute o projeto (com Visual Studio em modo administrador);</li>
</ol>
<p style="text-align: center;"><a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/02/azure-diag-4.png"><img class="aligncenter  wp-image-223686" alt="azure-diag-4" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/02/azure-diag-4.png" width="600" height="380" /></a></p>
<p style="text-align: center;"><strong>Figura 4</strong>. Sobreescrevendo o método &#8220;OnStart&#8221; da <em>web role</em></p>
<p style="text-align: left;">Os comentários no código da Figura 4 já explicam sua atividade mas, o de forma geral, o que estamos fazendo nada mais é do que, informar ao monitor de diagnósticos do Windows Azure, que ele deverá gerar <em>logs</em> de 30 em 30 segundos e, especificamente para o contador de performance do processador, estes <em>logs</em> deverão ser gerados de 5 em 5 segundos.</p>
<p style="text-align: left;">Pronto, nossa aplicação já está sendo monitorada. Agora, bastaria tratar tal armazenamento e utilizar um mecanismo como Linq, por exemplo, para montar relatórios detalhados exibindo os dados de <em>logs</em>.</p>
<p style="text-align: left;">Você já pode verificar de antemão o monitoramento da aplicação acontecendo através dos <em>logs</em> gerados nos diretórios utilizados localmente pelo emulador do Windows Azure, através do <em>Azure Emulator UI </em>(conforme apresentado pela Figura 5).</p>
<p style="text-align: left;"><a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/02/azure-diag-5.png"><img class="aligncenter" alt="azure-diag-5" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/02/azure-diag-5.png" width="600" height="210" /></a></p>
<p style="text-align: center;"><strong>Figura 5</strong>. O emulador em execução e monitorando</p>
<p style="text-align: left;">Por hoje é só. Forte abraço a todos!</p>
]]></content:encoded>
			<wfw:commentRss>http://fabriciosanchez.com.br/2/inicializando-e-utilizando-o-windows-azure-diagnostic-monitor-para-web-roles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML 5: Início, Meio e Fim &#8211; SVG &#8211; Parte 8</title>
		<link>http://fabriciosanchez.com.br/2/html-5-inicio-meio-e-fim-svg-parte-8/</link>
		<comments>http://fabriciosanchez.com.br/2/html-5-inicio-meio-e-fim-svg-parte-8/#comments</comments>
		<pubDate>Tue, 19 Feb 2013 00:05:56 +0000</pubDate>
		<dc:creator>Fabrício Sanchez</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[HTML 5]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Webstandards]]></category>
		<category><![CDATA[scalable vector graphics]]></category>
		<category><![CDATA[SVG]]></category>

		<guid isPermaLink="false">http://fabriciosanchez.com.br/2/?p=223591</guid>
		<description><![CDATA[Depois de um longo tempo escrevendo sobre diversas outras &#8220;coisas&#8221; aqui no site, com este post, continuo a série de HTML 5. Até aqui, já falamos sobre alguns dos mais importantes recursos da nova especificação da linguagem, tais como: Uma visão geral dos novos elementos (post) Utilização da tag &#60;video&#62; (post) Utilização da tag &#60;audio&#62; (post) Utilização do recurso [...]]]></description>
				<content:encoded><![CDATA[<p>Depois de um longo tempo escrevendo sobre diversas outras &#8220;coisas&#8221; aqui no site, com este <em>post,</em> continuo a série de HTML 5. Até aqui, já falamos sobre alguns dos mais importantes recursos da nova especificação da linguagem, tais como:</p>
<ul>
<li><span style="line-height: 13px;">Uma visão geral dos novos elementos (<strong><a title="HTML 5: Início, Meio e Fim – Novos elementos – Parte 2" href="http://fabriciosanchez.com.br/2/html-5-incio-meio-e-fim-novos-elementos-parte-2/"><em>post</em></a></strong>)</span></li>
<li>Utilização da <em>tag</em> &lt;video&gt; (<strong><a title="HTML 5: Início, Meio e Fim – A tag &lt;video&gt; – Parte 3" href="http://fabriciosanchez.com.br/2/html-5-incio-meio-e-fim-a-tag-video-parte-3/"><em>post</em></a></strong>)</li>
<li>Utilização da <em>tag</em> &lt;audio&gt; (<strong><a title="HTML 5: Início, Meio e Fim – A tag audio" href="http://fabriciosanchez.com.br/2/html-5-inicio-meio-e-fim-a-tag/"><em>post</em></a></strong>)</li>
<li>Utilização do recurso de <em>canvas</em> (<strong><a title="HTML 5: Início, Meio e Fim – A tag canvas" href="http://fabriciosanchez.com.br/2/html-5-inicio-meio-e-fim-a-tag-canvas/"><em>post</em></a></strong>)<em><br />
</em></li>
<li>Utilização do recurso de geolocalização (<strong><a title="HTML 5: Início, Meio e Fim – Geolocalização" href="http://fabriciosanchez.com.br/2/html-5-inicio-meio-e-fim-geolocalizacao/"><em>post</em></a></strong>)</li>
<li>Utilização do recurso <em>drag-and-drop</em> (<strong><a title="HTML 5: Início, Meio e Fim – Drag and Drop – Parte 7" href="http://fabriciosanchez.com.br/2/html-5-inicio-meio-e-fim-drag-and-drop-parte-7/"><em>post</em></a></strong>)</li>
</ul>
<p>No texto de hoje, falaremos um pouco sobre outro importante recurso disponível na nova especificação &#8211; o SVG.<span id="more-223591"></span></p>
<h2><strong>SVG?</strong></h2>
<p>SVG é o acrônimo para <em>Scalable Vector Graphics</em> (em português gráficos de vetores escaláveis). Em linhas gerais, SVG disponibiliza um novo modelo para criação de elementos gráficos. É na prática, uma alternativa para se criar imagens sem a utilização dos tradicionais arquivos JPEG, PNG, GIF, BMP, etc.</p>
<p>A pergunta que você deve estar se fazendo neste momento é: mas e o recurso de <em>canvas</em>, não faz rigorosamente a mesma coisa? De maneira direta, a resposta é &#8220;sim, possuem a mesma função&#8221;. A diferença fundamental entre as abordagens está no &#8220;<em>modus operandi</em>&#8221; de cada uma. Diferentemente do recurso <em>canvas</em> (escrevi sobre ele <a title="HTML 5: Início, Meio e Fim – A tag canvas" href="http://fabriciosanchez.com.br/2/html-5-inicio-meio-e-fim-a-tag-canvas/"><strong>aqui</strong></a>) que trabalha <em>on the fly</em> com Javascript, SVG compõe as figuras baseado no modelo XML (veja um bom tutorial sobre esta tecnologia seguindo <strong><a href="http://www.w3schools.com/xml/" target="_blank">este link</a></strong> [em inglês]).</p>
<p>Algumas características marcantes do SVG:</p>
<ul>
<li>As figuras compostas utilizando SVG não perdem qualidade. Seja ela maximizada (através de recursos de <em>zoom</em>) ou suas dimensões redimensionadas.</li>
<li>SVG é renderizado da mesma forma, independentemente da resolução do computador cliente, enquanto <em>canvas</em>, depende desta resolução.</li>
<li>Cada elemento de uma imagem SVG pode ser animado.</li>
<li>SVG é integrado a outros padrões da W3C, como DOM e XSL.</li>
<li>SVG é uma recomendação da W3C para elaboração de gráficos.</li>
<li>Gráficos SVG podem ser criados utilizando qualquer editor de textos.</li>
<li>Como HTML que é, um gráfico SVG pode ser manipulado por javascript (por exemplo), pode ser indexado, etc.</li>
<li>SVG é um padrão aberto, uma vez que sua constituição é XML puro.</li>
</ul>
<p>Atualmente, os <em>browsers</em> que suportam SVG são: Internet Explorer 9 (ou superior), Google Chrome, Mozilla Firefox, Safari e Opera. Versões anteriores do Internet Explorer (como a 8, por exemplo), precisam de <i>plugins </i>para a visualização de figuras SVG. O <em>plugin</em> mais tradicional para este fim é o <a href="http://www.adobe.com/devnet/svg.html" target="_blank"><strong>Adobe SVG Viewer</strong></a>.</p>
<p>Na ocasião em que este <em>post</em> foi escrito, SVG encontrava-se na versão 1.1. Para saber o <em>status</em> atual do projeto na W3C, basta seguir <a href="http://www.w3.org/Graphics/SVG/" target="_blank"><strong>este link.</strong></a></p>
<p>A Figura 1 apresenta a diferença gerada entre uma imagem JPG e uma imagem SVG. Ela dá a noção exata da importância na utilização do recurso discutido neste <em>post</em>.</p>
<p><a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/01/svg-1.png"><img class="aligncenter size-full wp-image-223644" alt="svg-1" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/01/svg-1.png" width="294" height="172" /></a></p>
<p style="text-align: center;"><strong>Figura 1</strong>. Comparação entre uma imagem JPG e outra SVG</p>
<p>&nbsp;</p>
<h2><strong>Entendendo o XML</strong></h2>
<p>Existem basicamente duas formas de se trabalhar com SVG em páginas HTML 5: incorporando o arquivo XML através das tags <strong>&lt;embed&gt;</strong>, <strong>&lt;object&gt;</strong> e <strong>&lt;iframe&gt; </strong>ou de modo <em>inline</em> através da <em>tag</em> <strong>&lt;SVG&gt;</strong>. Mas antes de apresentarmos estes modelos, é importante entender a estrutura básica de um arquivo SVG (que sempre possuirá a extensão <em>.svg</em>). Observe o exemplo apresentado pela Listagem 1.</p>
<p>[xml]<br />
&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;ISO-8859-1&#8243; standalone=&#8221;no&#8221;?&gt;<br />
&lt;!DOCTYPE svg PUBLIC &#8220;-//W3C//DTD SVG 20010904//EN&#8221;<br />
&#8220;http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd&#8221;&gt;<br />
&lt;svg xmlns=&#8221;http://www.w3.org/2000/svg&#8221;<br />
xmlns:xlink=&#8221;http://www.w3.org/1999/xlink&#8221; xml:space=&#8221;preserve&#8221;<br />
width=&#8221;350px&#8221; height=&#8221;120px&#8221;<br />
viewBox=&#8221;0 0 200 50&#8243;<br />
zoomAndPan=&#8221;disable&#8221; &gt;</p>
<p>&lt;!&#8211; Adicione o código SVG aqui &#8211;&gt;<br />
&lt;/svg&gt;<br />
[/xml]</p>
<p style="text-align: center;"><strong>Listagem 1</strong>. Estrutura básica de uma página SVG</p>
<p style="text-align: left;">Como você pode observar, a estrutura básica de um arquivo SVG não difere em nada em relação a qualquer arquivo XML. Algumas observações importantes em relação ao arquivo apresentado pela Listagem 1 são:</p>
<ul>
<li>
<div style="text-align: left;">Os atributos &#8220;<em>width</em>&#8221; e &#8220;<em>height</em>&#8221; informam ao <em>browser</em> a dimensão da imagem no momento da renderização. Neste caso, a imagem deverá ter 350 pixels (comprimento) por 120 pixels (altura).</div>
</li>
<li>O atributo &#8220;<em>viewBox</em>&#8221; é utilizado para construir (como o próprio nome sugere) a caixa de visualização da imagem. Se estamos dizendo ao <em>browser </em>que nosso desenho deverá ter 350px por 120 px, evidentemente que as dimensões mínimas da caixa deverão ser as mesmas. Caso, contrário, sua imagem será visualizada de forma limitada (entenda-se, cortada).</li>
</ul>
<p>Uma menção importante neste momento é: SVG possui algumas propriedades pré-construídas, criadas para facilitar a vida dos desenvolvedores, as quais listamos a seguir:</p>
<ul>
<li>Retângulo &lt;rect&gt;</li>
<li>Círculo &lt;circle&gt;</li>
<li>Elipse &lt;ellipse&gt;</li>
<li>Linha &lt;line&gt;</li>
<li>Múltiplas linhas &lt;polyline&gt;</li>
<li>Polígono &lt;polygon&gt;</li>
<li>Caminho &lt;path&gt;</li>
<li>Texto &lt;text&gt;</li>
</ul>
<p>&nbsp;</p>
<h2><strong>Exemplo 1: Construindo um exemplo básico (Hello World)</strong></h2>
<p>Conforme mencionado anteriormente, podemos incorporar o código SVG através de <em>tags</em> de <em>embeding</em> ou ainda, através de uma <em>tag </em>específica. Vamos iniciar utilizando a segunda opção. Vou utilizar o WebMatrix para a construção dos arquivos SVG, entretanto, você pode utilizar qualquer outro editor de textos ou ainda, ferramentas de construção de imagens vetoriais, como o Corel Draw, por exemplo.</p>
<p><a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/02/svg-2.tiff"><img class="aligncenter size-full wp-image-223666" alt="svg-2" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/02/svg-2.tiff" /></a></p>
<p style="text-align: center;"><strong>Listagem 2</strong>. Escrevendo um texto utilizando SVG <em>inline</em></p>
<p style="text-align: left;">Considerações a serem realizadas sobre o código apresentado pela Listagem 2:</p>
<ul>
<li><span style="line-height: 13px;">Adicionamos uma nova <em>tag </em>&#8220;svg&#8221; e configuramos então algumas propriedades. Como você pôde perceber, trata-se de uma diretiva XML tradicional. Basicamente, o que &#8220;dissemos&#8221; ao <em>browser</em> foi: crie um <em>container</em> SVG, cuja dimensão máxima é 350 <em>pixels</em> (comprimento) por 120 <em>pixels</em> (altura), com área de visualização &#8220;0 0 200 50&#8243; sem <em>zoom</em>.</span></li>
</ul>
<p>O resultado do processamento do código apresentado na Listagem 2 pode ser visualizado na Figura 2 a seguir.</p>
<p><a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/02/svg-3.tiff"><img class="aligncenter size-full wp-image-223667" alt="svg-3" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/02/svg-3.tiff" /></a></p>
<p>&nbsp;</p>
<p style="text-align: center;"><strong>Figura 2</strong>. O resultado do processamento do código apresentado na Listagem 2</p>
<h2><strong>Exemplo 2: Desenhando com SVG</strong></h2>
<p>Na sequência, o que faremos com SVG é criar um desenho um pouco mais complexo. Faremos um conglomerado de figuras circunferenciais vistas sob certa perspectiva. Criaremos em um arquivo XML a parte e o incorporaremos a página principal através da <em>tag</em> embed.</p>
<p><a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/02/svg-4.tiff"><img class="aligncenter size-full wp-image-223669" alt="svg-4" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/02/svg-4.tiff" /></a></p>
<p style="text-align: center;"><strong>Listagem 3</strong>. Criando um desenho em perspectiva</p>
<p style="text-align: left;">O código é simples e dispensa maiores comentários. Em linhas gerais, o que estamos fazendo aqui é: criar três elipses (note a utilização da diretiva SVG &#8220;ellipse&#8221;), configurando seus <em>containers</em> de exibição (note a utilização das propriedades &#8220;cx&#8221;, &#8220;cy&#8221;, &#8220;rx&#8221; e &#8220;ry&#8221;) e estilizando o objeto (note a utilização da propriedade <i>style</i>).</p>
<p style="text-align: left;">O resultado da execução do código apresentado pela Listagem 3 pode ser visualizado na Figura 3 (a seguir).</p>
<p style="text-align: left;"><a href="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/02/svg-5.tiff"><img class="aligncenter" alt="svg-5" src="http://fabriciosanchez.com.br/2/wp-content/uploads/2013/02/svg-5.tiff" /></a></p>
<p style="text-align: center;"><strong>Figura 3</strong>. Elipses em perspectiva</p>
<h2 style="text-align: left;"><strong>Conclusões</strong></h2>
<p style="text-align: left;">SVG é um importante recurso que permite ao desenvolvedor <em>web</em> criar elementos gráficos interessantes com HTML 5. Fatores como maior performance no processo de renderização e simplicidade de criação através de ferramentas para editoração gráfica (CorelDraw, por exemplo), são decisivos na opção pela adoção do recurso.</p>
<p style="text-align: left;">Com isso, sua imaginação passa a ser o limite!</p>
<p style="text-align: left;">Era isso. Até a próxima!</p>
<p style="text-align: left;">
]]></content:encoded>
			<wfw:commentRss>http://fabriciosanchez.com.br/2/html-5-inicio-meio-e-fim-svg-parte-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
