<?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>Carlos dos Santos</title>
	<atom:link href="http://carloscds.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://carloscds.net</link>
	<description>Entity Framework, C#, Visual Studio ALM</description>
	<lastBuildDate>Sat, 27 Apr 2013 22:55:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Global Windows Azure Bootcamp &#8211; Londrina &#8211; P&#243;s Evento</title>
		<link>http://carloscds.net/2013/04/global-windows-azure-bootcamp-londrina-ps-evento/</link>
		<comments>http://carloscds.net/2013/04/global-windows-azure-bootcamp-londrina-ps-evento/#comments</comments>
		<pubDate>Sat, 27 Apr 2013 22:52:44 +0000</pubDate>
		<dc:creator>Carlos dos Santos</dc:creator>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[msdn;c#;azure]]></category>

		<guid isPermaLink="false">http://carloscds.net/2013/04/global-windows-azure-bootcamp-londrina-ps-evento/</guid>
		<description><![CDATA[Pessoal, Gostaria de agradecer a todos que participarem do GWAB de Londrina, tivemos mais de 40 pessoas durante o evento onde foi realizado um treinamento que abordou as principais funcionalidades do Windows Azure. Tudo na prática! Obrigado ao professor Eidy &#8230; <a href="http://carloscds.net/2013/04/global-windows-azure-bootcamp-londrina-ps-evento/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pessoal,</p>
<p>Gostaria de agradecer a todos que participarem do GWAB de Londrina, tivemos mais de 40 pessoas durante o evento onde foi realizado um treinamento que abordou as principais funcionalidades do Windows Azure. Tudo na prática!</p>
<p>Obrigado ao professor Eidy da PUC de Londrina, que nos apoiou cedendo o espaço para realizarmos o evento.</p>
<p>Vejam as fotos aqui no meu <a href="https://www.facebook.com/media/set/?set=a.10201027431627287.1073741825.1212382196&amp;type=1&amp;l=1795cd07b0">Facebook</a>.</p>
<p>Para baixar as aplicações usadas no evento, acesse este link do <a href="http://sdrv.ms/15Q2mpR">SkyDrive</a>.</p>
<p>Abraços e até a próxima!</p>
<p>Carlos dos Santos.</p>
]]></content:encoded>
			<wfw:commentRss>http://carloscds.net/2013/04/global-windows-azure-bootcamp-londrina-ps-evento/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Global Windows Azure Bootcamp</title>
		<link>http://carloscds.net/2013/04/global-windows-azure-bootcamp/</link>
		<comments>http://carloscds.net/2013/04/global-windows-azure-bootcamp/#comments</comments>
		<pubDate>Tue, 23 Apr 2013 21:45:17 +0000</pubDate>
		<dc:creator>Carlos dos Santos</dc:creator>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[msdn;c#;azure]]></category>

		<guid isPermaLink="false">http://carloscds.net/2013/04/global-windows-azure-bootcamp/</guid>
		<description><![CDATA[Olá pessoal, Acontecerá no próximo sábado, 27 de abril, o maior evento de Windows Azure já realizado no mundo. Serão mais de 95 cidades ao redor do globo e no Brasil teremos 12 cidades com mais de 6 horas de &#8230; <a href="http://carloscds.net/2013/04/global-windows-azure-bootcamp/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h3><a href="http://lucasromao.azurewebsites.net/wp-content/uploads/2013/04/bootcamp1.png"><img alt="" src="http://lucasromao.azurewebsites.net/wp-content/uploads/2013/04/bootcamp1-300x202.png" width="541" height="364"></a></h3>
<p>Olá pessoal,
<p>Acontecerá no próximo <strong>sábado, 27 de abril,</strong> o maior evento de Windows Azure já realizado no mundo. Serão mais de 95 cidades ao redor do globo e no Brasil teremos <strong>12 cidades</strong> com mais de 6 horas de puro treinamento 100% prático e presencial.
<p>Confira abaixo a relação de todas as cidades que estarão executando a ação, veja a mais próxima de você e inscreva-se pois as <strong>vagas são limitadas</strong>!
<ul>
<li>Blumenau – <a href="http://www.eventick.com.br/GWAB-Blumenau-SC">http://www.eventick.com.br/GWAB-Blumenau-SC</a>
<li>Curitiba – <a href="http://www.eventick.com.br/GWAB-Curitiba-PR">http://www.eventick.com.br/GWAB-Curitiba-PR</a>
<li>Londrina – <a href="http://www.eventick.com.br/GWAB-Londrina-PR">http://www.eventick.com.br/GWAB-Londrina-PR</a>
<li>Piracicaba – <a href="http://www.eventick.com.br/GWAB-Piracicaba-SP">http://www.eventick.com.br/GWAB-Piracicaba-SP</a>
<li>Campo Grande – <a href="http://www.eventick.com.br/GWAB-CampoGrande-MS">http://www.eventick.com.br/GWAB-CampoGrande-MS</a>
<li>Goiânia – <a href="http://www.eventick.com.br/GWAB-Goiania-GO">http://www.eventick.com.br/GWAB-Goiania-GO</a>
<li>Brasília – <a href="http://www.eventick.com.br/GWAB-Brasilia-DF">http://www.eventick.com.br/GWAB-Brasilia-DF</a>
<li>Vitória – <a href="http://www.eventick.com.br/GWAB-Vitoria-ES">http://www.eventick.com.br/GWAB-Vitoria-ES</a>
<li>Fortaleza – <a href="http://www.eventick.com.br/GWAB-Fortaleza-CE">http://www.eventick.com.br/GWAB-Fortaleza-CE</a>
<li>Salvador – <a href="http://www.eventick.com.br/GWAB-Salvador-BA">http://www.eventick.com.br/GWAB-Salvador-BA</a>
<li>São Paulo – <a href="http://www.eventick.com.br/GWAB-SaoPaulo-SP">http://www.eventick.com.br/GWAB-SaoPaulo-SP</a>
<li>Rio de Janeiro – <a href="http://www.eventick.com.br/GWAB-RioDeJaneiro-RJ">http://www.eventick.com.br/GWAB-RioDeJaneiro-RJ</a></li>
</ul>
<p><em>Observação: Inscrições sujeitas a disponibilidade de vaga local.</em>
<p><strong>Estes são os pré-requisitos para participar do bootcamp:</strong>
<ul>
<li><strong>Você precisará de uma Windows Azure Subscription</strong>. Se ainda não tem, você pode assinar uma<a href="http://www.windowsazure.com/pt-br/pricing/free-trial/?WT.mc_id=A7C6F03CD">Avaliação Gratuíta de 90 dias</a> ou se já tem uma MSDN Subscription você pode ativar <a href="http://www.windowsazure.com/pt-br/pricing/member-offers/msdn-benefits/">seus Benefícios do Azure.</a> Você precisará informar um número de cartão de crédito para assinar a subscrição do Azure. As novas contas tem um limite de gastos de $0.00 para evitar que o consumo ultrapasse o limite dos benefícios sem custo. Você precisará desta conta para completar os laboratórios.
<li><strong>Um computador ou laptop com</strong>:
<ul>
<li><a href="http://www.microsoft.com/visualstudio/eng/downloads">Microsoft Visual Studio 2012 (full version or Visual Studio Express 2012 for Web)</a> ou
<li><a href="http://www.microsoft.com/visualstudio/eng/downloads#d-2010-express">Microsoft Visual Studio 2010 com SP1 (full version ou Visual Studio Express 2010 for Web)</a>.
<li><a href="http://go.microsoft.com/fwlink/?LinkID=254364&amp;clcid=0x409">Instale o Windows Azure Tools for Visual Studio</a>
<li><a href="http://www.microsoft.com/en-us/download/details.aspx?id=8396">Instale o Windows Azure Training Kit</a></li>
</ul>
</li>
</ul>
<p>Para saber mais como será o treinamento visite o site oficial do evento <a href="http://globalwindowsazure.azurewebsites.net/">http://globalwindowsazure.azurewebsites.net/</a>
<p>Grande abraço e nos vemos no sábado!</p>
]]></content:encoded>
			<wfw:commentRss>http://carloscds.net/2013/04/global-windows-azure-bootcamp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Azure Bootcamp</title>
		<link>http://carloscds.net/2013/04/windows-azure-bootcamp/</link>
		<comments>http://carloscds.net/2013/04/windows-azure-bootcamp/#comments</comments>
		<pubDate>Fri, 12 Apr 2013 20:14:14 +0000</pubDate>
		<dc:creator>Carlos dos Santos</dc:creator>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[msdn;c#;azure]]></category>

		<guid isPermaLink="false">http://carloscds.net/2013/04/windows-azure-bootcamp/</guid>
		<description><![CDATA[Pessoal, Iremos realizar o evento mundial de Windows Azure em Londrina no dia 27 de abril na PUC. A idéia deste evento é ser totalmente prático, ou seja, como criar e publicar uma aplicação no Windows Azure. Fique atento aos &#8230; <a href="http://carloscds.net/2013/04/windows-azure-bootcamp/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pessoal,</p>
<p>Iremos realizar o evento mundial de Windows Azure em Londrina no dia 27 de abril na PUC. A idéia deste evento é ser totalmente prático, ou seja, como criar e publicar uma aplicação no Windows Azure.</p>
<p>Fique atento aos pré-requisitos na página de inscrição: <a title="http://www.eventick.com.br/GWAB-Londrina-PR" href="http://www.eventick.com.br/GWAB-Londrina-PR">http://www.eventick.com.br/GWAB-Londrina-PR</a></p>
<p><a href="http://www.eventick.com.br/GWAB-Londrina-PR"><img title="GlobalBootCamp" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="GlobalBootCamp" src="http://carloscds.net/wp-content/uploads/2013/04/GlobalBootCamp.png" width="692" height="405"></a> </p>
<p>Abraços e até lá!<br />Carlos dos Santos</p>
]]></content:encoded>
			<wfw:commentRss>http://carloscds.net/2013/04/windows-azure-bootcamp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como escolher o modelo ideal de TFS para sua empresa</title>
		<link>http://carloscds.net/2013/03/como-escolher-o-modelo-ideal-de-tfs-para-sua-empresa/</link>
		<comments>http://carloscds.net/2013/03/como-escolher-o-modelo-ideal-de-tfs-para-sua-empresa/#comments</comments>
		<pubDate>Mon, 01 Apr 2013 00:03:35 +0000</pubDate>
		<dc:creator>Carlos dos Santos</dc:creator>
				<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[tfs]]></category>

		<guid isPermaLink="false">http://carloscds.net/2013/03/como-escolher-o-modelo-ideal-de-tfs-para-sua-empresa/</guid>
		<description><![CDATA[Pessoal, Semana passada aconteceu o MVP Virtual Conference (http://mvpvirtualconference.azurewebsites.net), um evento totalmente online, com várias trilhas de mais de 45 palestras, e eu tive a honra de participar da organização deste evento cuidando também da trilha de Gerenciamento de Equipes &#8230; <a href="http://carloscds.net/2013/03/como-escolher-o-modelo-ideal-de-tfs-para-sua-empresa/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pessoal,</p>
<p>Semana passada aconteceu o MVP Virtual Conference (<a href="http://mvpvirtualconference.azurewebsites.net">http://mvpvirtualconference.azurewebsites.net</a>), um evento totalmente online, com várias trilhas de mais de 45 palestras, e eu tive a honra de participar da organização deste evento cuidando também da trilha de Gerenciamento de Equipes de Desenvolvimento junto com o André Dias.</p>
<p>Gostaria de agradecer a todos que participaram também da minha palestra no dia 26/03/2013. Foram mais de 120 pessoas online. Muitíssimo obrigado!!!</p>
<p>O PPT da apresentação está disponível no slideshare no endereço: <a title="http://www.slideshare.net/carloscds/mvp-virtual-conferencecarlosdossantos" href="http://www.slideshare.net/carloscds/mvp-virtual-conferencecarlosdossantos">http://www.slideshare.net/carloscds/mvp-virtual-conferencecarlosdossantos</a></p>
<p>Abraços e até a próxima.<br />Carlos dos Santos</p>
]]></content:encoded>
			<wfw:commentRss>http://carloscds.net/2013/03/como-escolher-o-modelo-ideal-de-tfs-para-sua-empresa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MVP Virtual Conference</title>
		<link>http://carloscds.net/2013/03/mvp-virtual-conference/</link>
		<comments>http://carloscds.net/2013/03/mvp-virtual-conference/#comments</comments>
		<pubDate>Sun, 17 Mar 2013 17:47:46 +0000</pubDate>
		<dc:creator>Carlos dos Santos</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://carloscds.net/2013/03/mvp-virtual-conference/</guid>
		<description><![CDATA[A comunidade de Microsoft Most Valuable Professionals (MVP) convida você para participar do MVP Virtual Conference dias 26, 27 e 28 de Março de forma 100% online. Aproveite essa oportunidade de entender e tirar suas dúvidas sobre como as tecnologias &#8230; <a href="http://carloscds.net/2013/03/mvp-virtual-conference/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img alt="Microsoft Virtual Conference" src="http://www.microsoft.com/Brasil/images/MVPShow/MVP_Banner.jpg" width="600" height="116"><br /><img alt="" src="http://www.microsoft.com/Brasil/images/MVPShow/Text.jpg" width="600" height="50">
<p>A comunidade de <a href="http://mvp.microsoft.com/"><strong>Microsoft Most Valuable Professionals (MVP)</strong></a> convida você para participar do <a href="http://mvpvirtualconference.azurewebsites.net/"><strong>MVP Virtual Conference</strong></a> dias <strong>26, 27 e 28 de Março</strong> de forma <strong>100% online</strong>.
<p>Aproveite essa oportunidade de entender e tirar suas dúvidas sobre como as tecnologias e produtos Microsoft podem te ajudar a solucionar problemas e/ou otimizar tarefas do seu dia a dia. Aprenda diretamente com MVPs, profissionais reconhecidos pela Microsoft, independentes e especialistas, além de convidados especiais da comunidade técnica brasileira e da Microsoft, como os arquitetos do <a href="http://www.microsoft.com/brasil/mtc/"><strong>Microsoft Technology Center (MTC)</strong>.</a>
<p><strong>Objetivo </strong><br />Apresentar online capacidades e funcionalidades de produtos e tecnologias Microsoft dentro de um contexto baseado em cenários do mundo real.
<p><strong>Formato<br /></strong>O evento conta com nove diferentes trilhas, abordando tópicos relevantes a cenários do dia a dia para as empresas, profissionais de TI e desenvolvedores. Durante cada dia de evento, três trilhas serão apresentadas por completa de forma online no formato de um webcast. Cada trilha comtemplará apresentações sobre tecnologias e produtos Microsoft dentro de um especifico cenário, finalizando com uma rica sessão estilo roundtable com todos os palestrantes da trilha. <br /><em><strong>Horário das palestras</strong>: Das <strong>08:45 às 17:00hrs</strong> com intervalo para almoço das 11:30 às 13:00hrs.</em>
<p><strong>Inscrição<br /></strong>As inscrições são <strong>abertas</strong> a todos os interessados. Escolha o(s) tópico(s) que mais lhe interessam, clique no respectivo link para realizar a inscrição e receber uma confirmação via e-mail para adicionar ao seu calendário. Fique à vontade em convidar outras pessoas. Clique no assunto de seu interesse abaixo para realizar a inscrição. <a href="http://mvpvirtualconference.azurewebsites.net/"><strong>Clique aqui</strong></a> para ver a lista de palestras que você irá encontrar em cada um dos nove assuntos principais.
<p><strong>Dia 26 de Março / terça-feira</strong>
<p><strong>Consumerização de TI</strong><br /><strong>Responsável</strong>: Alexandro Prado &#8211; MVP <br /><strong>Palestrantes</strong>: Jorge Barata (MVP), Paulo Sant´anna (MTAC), Marcondes Alexandre (MVP), Igor Humberto (MTAC), Rover Marinho (MVP) <strong><em><br />Exemplo de cenário</em></strong><em>: Para você profissional da área, entender Consumerização de TI e as tecnologias que viabilizam isso passam a ser essenciais para você alcançar e ser bem sucedido na sua empresa e acompanhar essa tendência do mercado de TI. Acompanhe esse tema e aprenda como aplicar as tecnologias Microsoft no mundo real. </em><br /><a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032533126&amp;Culture=pt-BR&amp;community=1">Inscreva-se agora</a>
<p><strong>Segurança</strong><br /><strong>Responsável</strong>: Rodrigo Immaginario – MVP <br /><strong>Palestrantes</strong>: Rodrigo Immaginario (MVP), Alberto Oliveira (MVP), Luciano Lima (MVP), Marcos Tupinambá (MVP) <br /><strong><em>Exemplo de cenário abordado</em></strong><em>: Uma empresa de consultoria, que possui diversos colaboradores trabalhando de forma remota, recentemente identificou diversas falhas de segurança em sua rede local e na proteção dos seus projetos confidenciais. Para melhorar a segurança do seu ambiente será adotado o conceito de &#8220;defesa em profundidade&#8221; mas o projeto deverá ser implementado com o mínimo de investimento e em curto espaço de tempo. Veja como as tecnologias já disponíveis nos sistemas operacionais da Microsoft (Server e Client) pode ajudar.</em><br /><a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032547864&amp;Culture=pt-BR&amp;community=1">Inscreva-se agora</a>
<p><strong>Gerenciamento de Projetos e Equipes de Desenvolvimento </strong><br /><strong>Responsáveis</strong>: André Dias &#8211; MVP / Carlos dos Santos – MVP <br /><strong>Palestrantes</strong>: Carlos dos Santos (MVP), Ramon Durães (MVP), Marcelo Azuma (MVP), Cláudio Leite (ALM Ranger), André Dias (MVP), Igor Abade (MVP), Adriano Bertucci (MVP), Marcio Sete (MVP) <br /><strong><em>Exemplo de cenário abordado:</em></strong><em> Uma empresa de médio porte está em franco crescimento, aproveitando oportunidades do mercado. Suas aplicações estão se tornando mais complexas e o time de desenvolvedores está crescendo. Nos últimos anos, a empresa tem sofrido com uma demanda crescente por suporte, devido constantes falhas no software em produção. A qualidade do software gerado pelos times é sofrível e essa percepção tem crescido no mercado. A empresa espera continuar crescendo, mas precisa corrigir e evitar novos problemas com a gestão de seu processo de desenvolvimento de software. Recentemente, a empresa ouviu falar sobre as novas tendências no desenvolvimento ágil e os benefícios da abordagem para Modern Apps. </em><br /><a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032547866&amp;Culture=pt-BR&amp;community=1">Inscreva-se agora</a>
<p><strong>Dia 27 de Março / quarta-feira</strong>
<p><strong>Interoperabilidade no Desenvolvimento e Infraestrutura</strong><br /><strong>Responsáveis</strong>: André Ruschel &#8211; MVP / Rogério de Carvalho &#8211; MVP <br /><strong>Palestrantes</strong>: André Ruschel (MVP), Rogério Moraes de Carvalho (MVP), Rogerio Cordeiro (Microsoft) <br /><strong><em>Exemplo de cenário</em></strong><em>: Uma empresa ampliou seu ambiente de TI recentemente, após a aquisição de duas novas empresas do mercado. Os ambientes de TI das 3 unidades são heterogêneos, contemplando diferentes cenários para monitoração, segurança, bancos de dados, desenvolvimento de aplicações e integração de processos. Mesmo antes da consolidação de todas as unidades, a empresa enfrenta uma demanda crescente por aplicações consumindo informações das 3 unidades de negócio, que rodam em plataformas heterogêneas. As equipes de desenvolvimento e infraestrutura precisam decidir quais são as tecnologias e abordagens para esse cenário de interoperabilidade interna na empresa. </em><br /><a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032547868&amp;Culture=pt-BR&amp;community=1">Inscreva-se agora</a>
<p><strong>Arquitetura e Gerenciamento de TI</strong><br /><strong>Responsável</strong>: Marcelo Sincic &#8211; MVP <br /><strong>Palestrantes</strong>: Marcelo Sincic (MVP), Hélio Panissa (MVP), Waldemir Cambiucci (Microsoft), Daniel Donda (MVP) <br /><strong>Exemplo de cenário</strong>: Uma empresa possui um datacenter de 3ª geração, baseado em servidores blades adotados de diferentes fornecedores. Ao longo dos anos, a empresa tem usado fortemente o modelo de virtualização, mas tem enfrentado desafios no gerenciamento de sua TI. Constantemente, VM’s são perdidas, o processo de suporte e provisionamento é lento e não existe um portal de autoatendimento para os clientes de TI, o que exige horas de atendimento telefônico e atrasos constantes nas requisições. A empresa adota alguns processos de ITIL v3, mas não possui uma ferramenta unificada de gestão de processos ITIL. <br /><a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032547870&amp;Culture=pt-BR&amp;community=1">Inscreva-se agora</a>
<p><strong>Desenvolvimento de Software e Aplicativos</strong><br /><strong>Responsáveis</strong>: Renato Haddad &#8211; MVP / André Carlucci &#8211; MVP <br /><strong>Palestrantes</strong>: Renato Haddad (MVP), Victor Cavalcante (MVP), André Carlucci (MVP), Rodolpho Marques (MVP) <br /><strong><em>Exemplo de cenário</em></strong><em>: Uma empresa da área anúncios desenvolve aplicações para seus mais de 10 mil clientes e está em franco crescimento. O perfil de seus clientes está na classe média, consumindo cada vez mais dispositivos móveis, mas também acessando informações da empresa através de desktops em casa, no trabalho ou através de sites na Web. Como desenvolver novas aplicações atendendo a todos esses requisitos?</em><br /><a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032547872&amp;Culture=pt-BR&amp;community=1">Inscreva-se agora</a>
<p><strong>Dia 28 de Março / </strong>quinta-feira
<p><strong>Produtividade, colaboração e comunicação unificada</strong><br /><strong>Responsável</strong>: João Benito Savastano &#8211; MVP <br /><strong>Palestrantes</strong>: Fernando Andreazi (MVP), Sara Barbosa (MVP), André Xavier (MVP), Eduardo Freire (MVP), Fernanda Saraiva (MVP), Andrea Morais (Microsoft), João Paulo Sevegnani (Microsoft)<br /><strong><em>Exemplo de cenário</em></strong><em>: Uma empresa da área de vendas possui um número grande de vendedores em campo. A maioria de sua força de venda possui pouco tempo para retornar ao escritório ou sincronizar seus dados, acessando as informações da empresa mais de 90% do tempo externamente. Muito processos exigem a aprovação de workflows ou leitura de e-mails do pessoal em campo. Ao mesmo tempo, a empresa tem percebido um aumento crescente em seus gastos com telefonia, devido a maior capilaridade de empresa pelo Brasil.</em><br /><a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032547874&amp;Culture=pt-BR&amp;community=1">Inscreva-se agora</a>
<p><strong>Computação em Nuvem</strong><br /><strong>Responsáveis</strong>: Lucas Romão &#8211; MVP, Evilázaro Alves &#8211; MVP, Fabrício Sanchez &#8211; MVP <br /><strong>Palestrantes</strong>: Lucas Romão (MVP), Evilázaro Alves (MVP), Fabrício Sanchez (MVP), Humberto Silva (Microsoft)<br /><strong><em>Exemplo de cenário</em></strong><em>: Pequenas, médias e grandes empresas hoje avaliam sua infraestrutura, em relação aos desafios para o gerenciamento e manutenção do ambiente de TI. O mercado tem apresentado nos últimos anos alternativas para a gestão de TI, através de modelos baseados em nuvem pública ou privada. Mais recentemente, a construção de nuvens híbridas tem recebido destaque em fóruns de arquitetura e gerenciamento de infraestrutura. Uma empresa está hoje com 80% de sua TI baseada em máquinas virtuais sem gerenciamento unificado. Outros 20% estão em máquinas físicas, com aplicações legadas. Como dar o próximo passo?</em><br /><a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032547876&amp;Culture=pt-BR&amp;community=1">Inscreva-se agora</a>
<p><strong>BI, Big Data e Gerenciamento de Dados</strong><br /><strong>Responsáveis</strong>: Luciano Moreira &#8211; MVP, Gustavo Maia &#8211; MVP <br /><strong>Palestrantes</strong>: Luciano Moreira (MVP), Pericles Rocha (Microsoft), Nilton Pinheiro (MVP), Felipe Ferreira (MVP), Fabiano Amorim (MVP) <br /><strong><em>Exemplo de cenário</em></strong><em>: A análise de dados é um dos principais elementos de sucesso para o bom entendimento de diversas linhas de negócio. Sem uma análise de dados robusta, é impossível entender as tendências e comportamento de seu negócio, durante as várias fases de sua execução. Uma empresa da área financeira deseja analisar o comportamento de risco de seus milhares de clientes e investidores. Ela busca ferramentas de análise e mecanismos de integração para consumo de diferentes fontes de dados de seus vários sistemas. </em><br /><a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032547878&amp;Culture=pt-BR&amp;community=1"><strong>Inscreva-se agora</strong></a>
<p>Para conhecer mais sobre o Programa MVP, visite o site <a href="http://mvp.microsoft.com/">http://mvp.microsoft.com</a>
<p>Acompanhe também as novidades e atividades dos MVPs do Brasil no <a href="http://www.facebook.com/mvpbr">Facebook</a> e <a href="http://twitter.com/mvpbrasil">Twitter</a> oficiais do programa no país.
<p>* O MVP Virtual Conference é uma iniciativa independente dos MVPs do Brasil.
<p><img src="http://www.microsoft.com/Brasil/images/MVPShow/Bottom.jpg"></p>
]]></content:encoded>
			<wfw:commentRss>http://carloscds.net/2013/03/mvp-virtual-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Desenvolvimento para Windows 8</title>
		<link>http://carloscds.net/2013/01/desenvolvimento-para-windows-8/</link>
		<comments>http://carloscds.net/2013/01/desenvolvimento-para-windows-8/#comments</comments>
		<pubDate>Thu, 17 Jan 2013 19:25:08 +0000</pubDate>
		<dc:creator>Carlos dos Santos</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[msdn;c#;windows 8]]></category>

		<guid isPermaLink="false">http://carloscds.net/2013/01/desenvolvimento-para-windows-8/</guid>
		<description><![CDATA[Olá pessoal, Neste primeiro post de 2013 vou falar um pouco somente a minha experiência no desenvolvimento de duas aplicações para Windows 8. A primeira aplicação eu fiz no final do ano passado, apenas com o intuito de validar o &#8230; <a href="http://carloscds.net/2013/01/desenvolvimento-para-windows-8/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal,</p>
<p>Neste primeiro post de 2013 vou falar um pouco somente a minha experiência no desenvolvimento de duas aplicações para Windows 8.</p>
<p>A primeira aplicação eu fiz no final do ano passado, apenas com o intuito de validar o processo de desenvolvimento e publicação na Store da Microsoft. É uma aplicação bem simples, para lista de compras, onde o usuário cria uma lista de compras e relaciona os produtos que vai comprar, podendo enviar esta lista por email através do Share do Windows.</p>
<p>O que achei bem interessante foi a facilidade do desenvolvimento. O Visual Studio ajuda muito e a linguagem C# também, o que torna o desenvolvimento bem rápido. Mas vale a pena ficar em dois apectos fundamentais no desenvolvimento usando C#: primeiro é um bom conhecimento de XAML, pois todo o designer da aplicação é baseado nele, e depois conhecer sobre programação assíncrona, já que é importante manter a resposta para o usuário rápida, afinal ninguem quer clicar em um botão e ficar esperando eternamente algo acontecer. </p>
<p>A segunda aplicação que fiz, na semana passada, me surpreendeu mais ainda. Trata-se de um quadro de reuniões, que o usuário pode “rabiscar” a tela do micro ou do tablet, como se fosse um quadro branco e nesta aplicação eu apliquei recursos de globalização e estou disponibilizando a aplicação em Português e Inglês. Isto foi realmente muito simples de fazer, praticamente nenhuma linha de código, somente aquivos de recursos e tags em XAML. O processo de validação e publicação desta aplicação aconteceu em apenas 2 dias, ou seja, eu enviei para certificação e dois dias depois estava publicado na loja.</p>
<p>A plataforma Windows 8 deixou o desenvolvimento mais interessante e divertido, os recursos são fantásticos e para citar apenas alguns: Share e Search, que são contratos que podem ser implementados na aplicação. Estes recursos proporcionam uma nova visão sobre a interação da applicação com o sistema operacional e também com as outras aplicações.</p>
<p>Para conhecer mais sobre como programar para Wndows 8, você pode começar por aqui:<br /><a title="http://www.microsoft.com/brasil/apps/windows.html" href="http://www.microsoft.com/brasil/apps/windows.html">http://www.microsoft.com/brasil/apps/windows.html</a></p>
<p>Para conhecer as minhas aplicações:<br />Lista de Compras: <a href="http://apps.microsoft.com/windows/pt-br/app/lista-de-compra/2cb1f61a-6d08-4697-8af0-a313f63cfea5">http://apps.microsoft.com/windows/pt-br/app/lista-de-compra/2cb1f61a-6d08-4697-8af0-a313f63cfea5</a><br />MeetingBoard:&nbsp; <a href="http://apps.microsoft.com/windows/pt-BR/app/meetingboard/ad8d8944-5e3b-4c00-9211-93cc1c5ebcbf">http://apps.microsoft.com/windows/pt-BR/app/meetingboard/ad8d8944-5e3b-4c00-9211-93cc1c5ebcbf</a></p>
<p>Começe a desenvolver agora mesmo!</p>
<p>Abraços e até a próxima!<br />Carlos dos Santos.</p>
]]></content:encoded>
			<wfw:commentRss>http://carloscds.net/2013/01/desenvolvimento-para-windows-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TFS com GIT para versionamento local</title>
		<link>http://carloscds.net/2012/08/tfs-com-git-para-versionamento-local/</link>
		<comments>http://carloscds.net/2012/08/tfs-com-git-para-versionamento-local/#comments</comments>
		<pubDate>Mon, 13 Aug 2012 18:00:04 +0000</pubDate>
		<dc:creator>Carlos dos Santos</dc:creator>
				<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[msdn;c#; tfs]]></category>

		<guid isPermaLink="false">http://carloscds.net/2012/08/tfs-com-git-para-versionamento-local/</guid>
		<description><![CDATA[Olás pessoal, A Microsoft acaba de anunciar a integração do TFS com o GIT para versionamento local, ou DCVS (Distributed Concurrent Versions System), ou basicamente, versionamento local integrado ao servidor de código. Na prática você pode estar fora do seu &#8230; <a href="http://carloscds.net/2012/08/tfs-com-git-para-versionamento-local/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Olás pessoal,</p>
<p>A Microsoft acaba de anunciar a integração do TFS com o GIT para versionamento local, ou DCVS (Distributed Concurrent Versions System), ou basicamente, versionamento local integrado ao servidor de código.</p>
<p>Na prática você pode estar fora do seu ambiente TFS, trabalhlar normalmente no seu código, fazendo Check-in e Check-out e depois você publica tudo no servidor TFS, integrando o código.</p>
<p>Para quem trabalha fora do ambiente e quer ter um versionador local de código, ou seja, você quer manter mais do que a cópia atual do seu código, este recurso sem dúvida fará a diferença.</p>
<p>No blog do Brian Harry tem um post explicando detalhadamente o processo: <br /><a title="http://blogs.msdn.com/b/bharry/archive/2012/08/13/announcing-git-integration-with-tfs.aspx" href="http://blogs.msdn.com/b/bharry/archive/2012/08/13/announcing-git-integration-with-tfs.aspx">http://blogs.msdn.com/b/bharry/archive/2012/08/13/announcing-git-integration-with-tfs.aspx</a></p>
<p>Abraços e até a próxima.<br />Carlos.</p>
]]></content:encoded>
			<wfw:commentRss>http://carloscds.net/2012/08/tfs-com-git-para-versionamento-local/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entity Framework&#8211;Open Source</title>
		<link>http://carloscds.net/2012/07/entity-frameworkopen-source/</link>
		<comments>http://carloscds.net/2012/07/entity-frameworkopen-source/#comments</comments>
		<pubDate>Thu, 19 Jul 2012 20:04:36 +0000</pubDate>
		<dc:creator>Carlos dos Santos</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[msdn;c#;ef codefirst; ef]]></category>

		<guid isPermaLink="false">http://carloscds.net/2012/07/entity-frameworkopen-source/</guid>
		<description><![CDATA[Pessoal, A Microsoft anunciou hoje que o Entity Framework terá seu código fonte Open Source e ela vai contar com a ajuda da comunidade para poder melhorá-lo. Mesmo sendo Open Source, a Microsoft irá continuar o desevolvimento do produto, e &#8230; <a href="http://carloscds.net/2012/07/entity-frameworkopen-source/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pessoal,</p>
<p>A Microsoft anunciou hoje que o Entity Framework terá seu código fonte Open Source e ela vai contar com a ajuda da comunidade para poder melhorá-lo.</p>
<p>Mesmo sendo Open Source, a Microsoft irá continuar o desevolvimento do produto, e já fala inclusive no roadmap do Entity Framework 6.</p>
<p>Se você tem interesse em conhecer o código fonte, e principalmente, contribuir, acesse o portal do projeto no CodePlex no link: <a title="http://entityframework.codeplex.com/" href="http://entityframework.codeplex.com/">http://entityframework.codeplex.com/</a></p>
<p>Abraços e até a próxima.<br />Carlos dos Santos.</p>
]]></content:encoded>
			<wfw:commentRss>http://carloscds.net/2012/07/entity-frameworkopen-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entity Framework Code First&#8211;Migrations</title>
		<link>http://carloscds.net/2012/07/entity-framework-code-firstmigrations/</link>
		<comments>http://carloscds.net/2012/07/entity-framework-code-firstmigrations/#comments</comments>
		<pubDate>Mon, 16 Jul 2012 01:20:07 +0000</pubDate>
		<dc:creator>Carlos dos Santos</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[c#; msdn; entity framework]]></category>

		<guid isPermaLink="false">http://carloscds.net/2012/07/entity-framework-code-firstmigrations/</guid>
		<description><![CDATA[Olá pessoal, Uma das grandes funcionalidades do Entity Framework Code First é o processo de atualização automatica do banco de dados através do pacote chamado Migrations. O Migrations permite que você, que já trabalha com o CodeFirst, gere atualizações gerenciáveis &#8230; <a href="http://carloscds.net/2012/07/entity-framework-code-firstmigrations/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal,</p>
<p>Uma das grandes funcionalidades do Entity Framework Code First é o processo de atualização automatica do banco de dados através do pacote chamado Migrations.</p>
<p>O Migrations permite que você, que já trabalha com o CodeFirst, gere atualizações gerenciáveis no seu banco de dados, ou se preferir, deixar que o próprio Migrations cuide de tudo de forma automatica, mantendo seu banco de dados sempre atualizado com suas classes.</p>
<p>Na prática temos duas maneiras de trabalhar com o Migrations:<br />1. Usar pontos de migração no banco de dados, onde podemos avançar, aplicando as últimas modificações, ou voltar na linha do tempo, em qualquer momento do banco de dados;<br />2. Usar o modo totalmente automático, onde você não precisa se preocupar em atualizar o banco, pois ao executar o seu programa, isto será feito de maneira automatica.</p>
<p>Mas qual dos dois modelos eu devo utilizar em minha aplicação ? E a resposta é: Depende!. Se você precisa de um controle rigoroso das modificações, se precisa gerar scripts que serão executados no seu ambiente de produção, o melhor é usar o modo mais manual. Mas se o que lhe interessa é manter o banco sempre atualizado, sem se preocupar em rodar scripts, então use o modo automatico.</p>
<p>Neste artigo iremos abordar os dois métodos de utilização do Migrations e após entender cada um você poderá optar pelo que melhor se adequa ao seu processo.</p>
<p><strong><u>Criando o projeto de exemplo</u></strong></p>
<p>Antes de começar, vamos criar nosso projeto de exemplo. Eu estou usando o <a href="http://www.microsoft.com/visualstudio/11/en-us/downloads">Visual Studo 2012</a>, mas você pode também usar o Visual Studio 2010.</p>
<p>Vamos iniciar criando um projeto do tipo console, com o .Net Framework 4:<br /><a href="http://carloscds.net/wp-content/uploads/2012/07/image.png" rel="lightbox"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://carloscds.net/wp-content/uploads/2012/07/image_thumb.png" width="712" height="494"></a></p>
<p>Logo após criar o projeto, vamos adicionar o Entity Framework CodeFirst usando o NuGet. Para isto abra o gerenciador do NuGet em Tools/Library Package Manager/Packager Manager Console e digite:<br /><a href="http://carloscds.net/wp-content/uploads/2012/07/image1.png" rel="lightbox"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://carloscds.net/wp-content/uploads/2012/07/image_thumb1.png" width="712" height="107"></a></p>
<p>Após isto teremos o EF CodeFirst instalado em nosso projeto. Vamos agora criar um Contexto e uma classe para podermos trabalhar com o Migrations.</p>
<p>Esta será a nossa classe de Contexto:</p>
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">class</span> Contexto : DbContext
    {
        <span class="kwrd">public</span> DbSet&lt;Cliente&gt; Cliente { get; set; }
    }</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<p>E esta será a nossa classe de Clientes:
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">class</span> Cliente
    {
        <span class="kwrd">public</span> <span class="kwrd">int</span> ID { get; set; }
        <span class="kwrd">public</span> <span class="kwrd">string</span> Nome { get; set; }
    }</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<p>Vamos também adicionar um arquivo app.config para identificarmos nosso servidor SQL e o nome do banco de dados:</p>
<pre class="csharpcode">&lt;?xml version=<span class="str">"1.0"</span> encoding=<span class="str">"utf-8"</span>?&gt;
&lt;configuration&gt;
  &lt;connectionStrings&gt;
    &lt;add name=<span class="str">"Contexto"</span> providerName=<span class="str">"System.Data.SqlClient"</span> connectionString=<span class="str">"data source=(local); initial catalog=ExemploMigrations; integrated security=true;"</span>/&gt;
  &lt;/connectionStrings&gt;
&lt;/configuration&gt;</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<p>Agora que já temos nossas classes e o arquivo de configuração, vamos adicionar o Migrations.</p>
<p><strong><u>Migrations – Gerenciando cada atualização no banco de dados</u></strong></p>
<p>Vamos inicialmente adicionar o Migrations ao nosso projeto. Independente do método: manual ou automático, precisamos adicioná-lo ao nosso projeto. Faremos isto usando novamente a janela do Nuget através do comando Enable-Migrations: <br /><a href="http://carloscds.net/wp-content/uploads/2012/07/image2.png" rel="lightbox"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://carloscds.net/wp-content/uploads/2012/07/image_thumb2.png" width="712" height="178"></a></p>
<p>Após este comando, uma nova classe será adicionada ao nosso projeto, o nome dela é Configurations:<br /><a href="http://carloscds.net/wp-content/uploads/2012/07/image3.png" rel="lightbox"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://carloscds.net/wp-content/uploads/2012/07/image_thumb3.png" width="712" height="240"></a></p>
<p>Como vamos trabalhar com o processo manual, vamos deixar esta classe como está e vamos iniciar com os comandos do Migrations, que devem ser executados na janela do NuGet:</p>
<p>Agora, para todas as alterações que fizermos nas classes executaremos basicamente dois comandos: <br /><strong>Add-Migrations <br />Update-DataBase</strong></p>
<p>Add-Migrations “nome_migrations” – cria um alteração no banco de dados, onde o “nome_migrations” é o nome que você irá dar para a atualização;<br />Update-DataBase – aplica as alterações no banco de dados;<br />Update-DataBase – script – gera um script com os comandos SQL para serem executados no banco de dados.</p>
<p>Para nosso exemplo, iremos executar:<br /><strong>Add-Migrations “CriacaoBanco”<br />Update-DataBase<br /></strong><br />Veja que ao executar o Add-Migrations, um novo arquivo foi adicionado ao projeto, contendo os comandos Migrations para o banco de dados:<br /><a href="http://carloscds.net/wp-content/uploads/2012/07/image4.png" rel="lightbox"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://carloscds.net/wp-content/uploads/2012/07/image_thumb4.png" width="417" height="350"></a></p>
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">partial</span> <span class="kwrd">class</span> CriacaoBanco : DbMigration
    {
        <span class="kwrd">public</span> <span class="kwrd">override</span> <span class="kwrd">void</span> Up()
        {
            CreateTable(
                <span class="str">"Clientes"</span>,
                c =&gt; <span class="kwrd">new</span>
                    {
                        ID = c.Int(nullable: <span class="kwrd">false</span>, identity: <span class="kwrd">true</span>),
                        Nome = c.String(),
                    })
                .PrimaryKey(t =&gt; t.ID);

        }

        <span class="kwrd">public</span> <span class="kwrd">override</span> <span class="kwrd">void</span> Down()
        {
            DropTable(<span class="str">"Clientes"</span>);
        }
    }</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<p>Como nosso banco de dados ainda não existia, ele foi criado após o comando Update-DataBase:<br /><a href="http://carloscds.net/wp-content/uploads/2012/07/image5.png" rel="lightbox"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://carloscds.net/wp-content/uploads/2012/07/image_thumb5.png" width="712" height="237"></a></p>
<p>Para que nossos exemplo fiquem mais interessantes, vou adicionar alguns registros no banco de dados usando o código abaixo, mas se você preferir, insira os dados diretamente no SQL:</p>
<pre class="csharpcode"><span class="kwrd">static</span> <span class="kwrd">void</span> Main(<span class="kwrd">string</span>[] args)
        {
            var db = <span class="kwrd">new</span> Contexto();
            db.Cliente.Add(<span class="kwrd">new</span> Cliente() { Nome = <span class="str">"Carlos dos Santos"</span> });
            db.Cliente.Add(<span class="kwrd">new</span> Cliente() { Nome = <span class="str">"Jose da Silva"</span> });
            db.Cliente.Add(<span class="kwrd">new</span> Cliente() { Nome = <span class="str">"Antonio das Couves"</span> });
            db.SaveChanges();
        }</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<p>Agora vamos começar a modificar a nossa classe e ver como realmente o migrations pode nos ajudar. Inicialmente vamos adicionar um campo chamado Ativo na classe Cliente, e logo após vamos criar um novo Migration para enviar isto ao banco de dados:</p>
<p>Classe Cliente com o novo campo:</p>
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">class</span> Cliente
    {
        <span class="kwrd">public</span> <span class="kwrd">int</span> ID { get; set; }
        <span class="kwrd">public</span> <span class="kwrd">string</span> Nome { get; set; }
        <span class="kwrd">public</span> <span class="kwrd">bool</span> Ativo { get; set; }
    }</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<p>Agora ao executar o comando Add-Migrations “Cliente_Ativo” teremos mais um arquivo do Migrations:</p>
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">partial</span> <span class="kwrd">class</span> Cliente_Ativo : DbMigration
    {
        <span class="kwrd">public</span> <span class="kwrd">override</span> <span class="kwrd">void</span> Up()
        {
            AddColumn(<span class="str">"Clientes"</span>, <span class="str">"Ativo"</span>, c =&gt; c.Boolean(nullable: <span class="kwrd">false</span>));
        }

        <span class="kwrd">public</span> <span class="kwrd">override</span> <span class="kwrd">void</span> Down()
        {
            DropColumn(<span class="str">"Clientes"</span>, <span class="str">"Ativo"</span>);
        }
    }</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<p>Mas antes de enviar isto para o banco, vamos imaginar que você queira setar um valor para o campo Ativo, por exemplo, todos os campos Ativos deverão estar true. Você pode fazer isto através do comando Sql() dentro do arquivo do migrations, veja:</p>
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">partial</span> <span class="kwrd">class</span> Cliente_Ativo : DbMigration
    {
        <span class="kwrd">public</span> <span class="kwrd">override</span> <span class="kwrd">void</span> Up()
        {
            AddColumn(<span class="str">"Clientes"</span>, <span class="str">"Ativo"</span>, c =&gt; c.Boolean(nullable: <span class="kwrd">false</span>));
            Sql(<span class="str">"update clientes set ativo = 1"</span>);
        }

        <span class="kwrd">public</span> <span class="kwrd">override</span> <span class="kwrd">void</span> Down()
        {
            DropColumn(<span class="str">"Clientes"</span>, <span class="str">"Ativo"</span>);
        }
    }</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<p>Obviamente você poderia ter definido isto como um valor default par o banco, mass o intuito aqui é lhe mostrar como é possível enviar comandos durante o processo do Migrations. </p>
<p>Agora vamos enviar o comando para o banco, mas de uma maneira um pouco diferente, vamos gerar um script SQL. Para isto execute o comando da seguinte maneira:</p>
<p><strong>Update-DataBase –script</strong></p>
<p>E o resultado será um arquivo de script SQL:</p>
<pre class="csharpcode">ALTER TABLE [Clientes] ADD [Ativo] [bit] NOT NULL DEFAULT 0
update clientes set ativo = <span class="kwrd">1</span>
INSERT INTO [__MigrationHistory] ([MigrationId], [CreatedOn], [Model], [ProductVersion]) VALUES (<span class="str">'201207160033131_Cliente_Ativo'</span>, <span class="str">'2012-07-16T00:38:19.710Z'</span>, 0x1F8B0800000000000400CD56C96EDB3010BD17E83F083CB587988E0B0449202748ECB8085A3B4194E64E4B6387281755A40CFBDB7AE827F5173AD46E79C97AE84D2267797C7C33C3BFBFFFF8E74B29BC0524866BD527879D2EF140853AE26ADE27A99D1D1C93F3B38F1FFCAB482EBD87D2AEE7ECD053993E79B4363EA5D4848F2099E9481E26DAE899ED845A521669DAEB768FE9619702862018CBF3FCBB54592E21FBC1DF815621C4366562AC2310A658C79D208BEA4D980413B310FAE46A0932167ACCE709B308C610EF427086400210B317A2EA9E3854A4CA8719AF10995DDDAF62C8B2F6C9407050169A4668F60D566B0BB8749BE81812BBBA8359E17A3D241E5DF7A36DC7CAADE1E3B2E397B25F7AC49BA442B0A9C08519130688171F9D065627F01514200710DD326B21C16BB98E20435FB0701A1F3D8F8813DAED392228534ADB8CD60DE02D98132DA1041AD804E542BC115F42F41DD4DC3E5660C76C59AEE027F17E288EEA42279BA4D03C5CFEBF3FE985E50B5D66BDD45A00535B086A06F1697DA19BD78CC2B38C238DE55DE33F2CAD6E5D766E1C806D49C2AB63E7F2EB543BDB3054D96A7DD35CE06521D01D95E08F591C23C78DCA2856BC202F8BC141F072EDCB3C060DCD9612A8D0569950746C0EAD5D475A04239E183B64964D99BB814124B798EDE7B64CB3A7EAD6CAB3B477DFB9CF466BE8EC8852D337C2134934C90E0715969DF933DF206482255BEA76A0452AD5AEDADFE79D9753D33F5F797E84A2369A218AA5CD183E6D1DBFCD32DDA0B9D5C5DAB7B64FED6D932A7BA5FA96BAFD42694F0F830DE9E526C44372163C72B20B56C682EC38834EF04BE4F75A1B8C99E23330F65EFF0437D8B0325E3F50AA3E6A4C24FED3A9C2DDE99F9C1F7B7BEAFE69A0162C091F59F249B2E5E73775F829B7EFDCDDDB8DEACD6D3ED75B9F4453873AC7596C9A570F814DF9FBB4F962F28760F8BC0EE1DE4F0A42D7F2EAA0A5CDB59AE992643C5A135169D2BA8331581621431789E533165ADC0EC1986CC43F3091BA4E2BA7105DAB9BD4C6A9BD3006E454AC9AE7F5E9FEFCD9A45BC7ECDFC459D37E8F23204C8E47801B7599721155B8475B24B42384134B5121880A9F38186EBEAA224DB47A66A082BE21C4A05C7DDDBB2185C1CC8D0AD80276637B9AC375C6FC216738F96493C17CA5401230CCDC4881099A1E753EF7E0A7EEC57FF60FBDB90F33230C0000, <span class="str">'4.3.1'</span>)
</pre>
<p>Basta executar este arquivo dentro do SQL que o campo será criado e atualizado, ou se preferir, execute novamente o Update-DataBase que isto será feito automaticamente. <br />Este recurso do script pode ser util se você precisar atualizar também um ambiente e produção da sua aplicação.<br /><a href="http://carloscds.net/wp-content/uploads/2012/07/image6.png" rel="lightbox"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://carloscds.net/wp-content/uploads/2012/07/image_thumb6.png" width="425" height="264"></a></p>
<p><strong><u>Obs: </u></strong>A tabela __MigrationHistory é usada pelo Migrations para gerenciar o histórico das versões dentro do banco de dados. </p>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<p><strong><u>Voltando o banco de dados em um determinado ponto:</u></strong></p>
<p>Um recurso bem interessante do Migrations é que você pode voltar o seu banco de dados a qualquer ponto em que tenha executado um Add-Migrations. Imagine então que nós criamos o campo ativo no banco e agora você queira voltar ao ponto onde este campo ainda não existia, para isto vamos executar o seguinte comando do Migrations:</p>
<p><strong>Update-DataBase –target “CriacaoBanco”</strong></p>
<p>Isto volta nosso banco de dados a este ponto, que nosso caso foi a criação do banco, mas poderia ser qualquer outro ponto. Lembrando que este comando afeta apenas o banco de dados e não a nossa classe.</p>
<p>Agora vamos ver como é executar o Migrations de forma totalmente automatica.</p>
<p><strong><u>Migrations – Executando as atualizações automaticamente</u></strong></p>
<p>Agora que você já sabe como manter seu banco de dados atualizados, gerando versões das atualizações, vamos imaginar que você não precisa manter este histórico, mas simplesmente manter o banco atualizado.</p>
<p>Para este exemplo, vamos criar um projeto com os mesmos dados do exemplo anterior, ou seja: crie um projeto do tipo console:<br /><a href="http://carloscds.net/wp-content/uploads/2012/07/image7.png" rel="lightbox"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://carloscds.net/wp-content/uploads/2012/07/image_thumb7.png" width="712" height="494"></a></p>
<p>Adicione o EF CodeFirst através do console do NuGet e depois adicione o contexto, a classe cliente e o arquivo app.config, mas neste arquivo iremos modificar o nome do bando de dados para ExemploMigrationsAutomatico:</p>
<p>
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">class</span> Contexto : DbContext
    {
        <span class="kwrd">public</span> DbSet&lt;Cliente&gt; Cliente { get; set; }
    }</pre>
</p>
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">class</span> Cliente
    {
        <span class="kwrd">public</span> <span class="kwrd">int</span> ID { get; set; }
        <span class="kwrd">public</span> <span class="kwrd">string</span> Nome { get; set; }
    }</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<pre class="csharpcode">&lt;?xml version=<span class="str">"1.0"</span> encoding=<span class="str">"utf-8"</span>?&gt;
&lt;configuration&gt;
  &lt;connectionStrings&gt;
    &lt;add name=<span class="str">"Contexto"</span> providerName=<span class="str">"System.Data.SqlClient"</span> connectionString=<span class="str">"data source=(local); initial catalog=ExemploMigrationsAutomatico; integrated security=true;"</span>/&gt;
  &lt;/connectionStrings&gt;
&lt;/configuration&gt;</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<p>Feito isto vamos adicionar o migrations, da mesma forma que antes, mas agora modificando os parâmetros necessários para que tudo fique automático, então abra o console do NuGet e execute o comando Enable-Migrations:<br /><a href="http://carloscds.net/wp-content/uploads/2012/07/image8.png" rel="lightbox"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://carloscds.net/wp-content/uploads/2012/07/image_thumb8.png" width="712" height="178"></a></p>
<p>Agora que começam as diferenças. No exemplo anterior não modificamos nada na classe configurations, mas neste caso iremos fazer alguns ajustes:<br /><a href="http://carloscds.net/wp-content/uploads/2012/07/image9.png" rel="lightbox"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://carloscds.net/wp-content/uploads/2012/07/image_thumb9.png" width="712" height="163"></a></p>
<p>Primeiro vamos mudar a classe para “public class”, pois precisaremos refenciá-lá posteriormente. Depois vamos ativar a propriedade da migração automatica e por fim vamos marcar a opção que dados podem ser perdidos durante a migração. Esta última opção fica a seu critério, pois se você não habilitar a opção e o Migrations não conseguir atualizar o banco de dados. você receberá um erro.</p>
<p>E agora vamos modificar o construtor do contexto para ele chamar o DatabaseInitializer, que é quem faz todo o processo acontecer:
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">class</span> Contexto : DbContext
    {
        <span class="kwrd">public</span> DbSet&lt;Cliente&gt; Cliente { get; set; }

        <span class="kwrd">public</span> Contexto()
        {
            Database.SetInitializer(<span class="kwrd">new</span> MigrateDatabaseToLatestVersion&lt;Contexto, Configuration&gt;());
        }
    }</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</p>
<p>O que fizemos foi adicionar a chamada do DatabaseSetInitializer() com a opção MigrateDatabaseToLastVersion, o que faz com que nosso banco de dados seja sempre atualizado de acordo com as nossas classes.</p>
<p>Agora é só executar o exemplo abaixo para criarmos o banco de dados:
<pre class="csharpcode"><span class="kwrd">static</span> <span class="kwrd">void</span> Main(<span class="kwrd">string</span>[] args)
        {
            var db = <span class="kwrd">new</span> Contexto();
            db.Cliente.Add(<span class="kwrd">new</span> Cliente() { Nome = <span class="str">"Carlos dos Santos"</span> });
            db.Cliente.Add(<span class="kwrd">new</span> Cliente() { Nome = <span class="str">"Jose da Silva"</span> });
            db.Cliente.Add(<span class="kwrd">new</span> Cliente() { Nome = <span class="str">"Antonio das Couves"</span> });
            db.SaveChanges();
        }</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</p>
<p>Agora vamos modificar a classe cliente e simplesmente executar o programa novamente:
<pre class="csharpcode">    <span class="kwrd">public</span> <span class="kwrd">class</span> Cliente
    {
        <span class="kwrd">public</span> <span class="kwrd">int</span> ID { get; set; }
        <span class="kwrd">public</span> <span class="kwrd">string</span> Nome { get; set; }
        <span class="kwrd">public</span> <span class="kwrd">string</span> CPF { get; set; }
        <span class="kwrd">public</span> <span class="kwrd">decimal</span> Limite { get; set; }
    }
</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</p>
<p>Após executar o programa e fazer uma consulta no SQL:<br /><a href="http://carloscds.net/wp-content/uploads/2012/07/image10.png" rel="lightbox"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://carloscds.net/wp-content/uploads/2012/07/image_thumb10.png" width="519" height="337"></a></p>
<p>Conclusão:</p>
<p>O recurso de Migrations sem dúvida é algo realmente fantástico no Entity Framework CodeFirst e certament ajuda na produtividade do nosso dia a dia. Escolha o que melhor lhe atender e começe a usar agora mesmo.</p>
<p>Abraços e até a próxima.<br />Carlos dos Santos.</p>
]]></content:encoded>
			<wfw:commentRss>http://carloscds.net/2012/07/entity-framework-code-firstmigrations/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Testes para Entrega Cont&#237;nua com Visual Studio 2012 RC</title>
		<link>http://carloscds.net/2012/06/testes-para-entrega-contnua-com-visual-studio-2012-rc/</link>
		<comments>http://carloscds.net/2012/06/testes-para-entrega-contnua-com-visual-studio-2012-rc/#comments</comments>
		<pubDate>Thu, 21 Jun 2012 18:44:19 +0000</pubDate>
		<dc:creator>Carlos dos Santos</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[msdn;c#; tfs]]></category>

		<guid isPermaLink="false">http://carloscds.net/2012/06/testes-para-entrega-contnua-com-visual-studio-2012-rc/</guid>
		<description><![CDATA[Pessoal, Recentemente eu participei do processo de revisão do material sobre Testes para Entrega Contínua com Visual Studio 2012 RC juntamente com o time de Patterns &#38; Practices da Microsoft. O material está muito interessante e vários exemplos. Se você &#8230; <a href="http://carloscds.net/2012/06/testes-para-entrega-contnua-com-visual-studio-2012-rc/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pessoal,</p>
<p>Recentemente eu participei do processo de revisão do material sobre Testes para Entrega Contínua com Visual Studio 2012 RC juntamente com o time de Patterns &amp; Practices da Microsoft.</p>
<p>O material está muito interessante e vários exemplos. Se você trabalha com entrega contínua integrada ao processo de desenvolvimento, sem dúvida é um material essencial para você.</p>
<p>Para acessar o material acesse este link: <a title="http://msdn.microsoft.com/en-us/library/jj159344" href="http://msdn.microsoft.com/en-us/library/jj159344">http://msdn.microsoft.com/en-us/library/jj159344</a></p>
<p>Abraços,<br />Carlos dos Santos.</p>
]]></content:encoded>
			<wfw:commentRss>http://carloscds.net/2012/06/testes-para-entrega-contnua-com-visual-studio-2012-rc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
