<?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>João Felipe Portela &#187; C#</title>
	<atom:link href="http://www.joaofelipe.com/index.php/tag/c/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.joaofelipe.com</link>
	<description>Microsoft Student Partner</description>
	<lastBuildDate>Fri, 23 Dec 2011 12:26:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>101 exemplos de operações com LINQ</title>
		<link>http://www.joaofelipe.com/index.php/programacao/101-exemplos-de-operacoes-com-linq/</link>
		<comments>http://www.joaofelipe.com/index.php/programacao/101-exemplos-de-operacoes-com-linq/#comments</comments>
		<pubDate>Mon, 09 May 2011 13:15:54 +0000</pubDate>
		<dc:creator>João Felipe Portela</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MSDN]]></category>

		<guid isPermaLink="false">http://www.joaofelipe.com/?p=845</guid>
		<description><![CDATA[Para quem está começando ou até mesmo já utiliza LINQ nos seus projetos aqui vai uma lista retirada do site do MSDN com 101 exemplos de operações com LINQ. É bem provável que aquela sua dúvida possa estar aqui. Restriction Operators Where &#8211; Simple 1 Where &#8211; Simple 2 Where &#8211; Simple 3 Where &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>Para quem está começando ou até mesmo já utiliza LINQ nos seus projetos aqui vai uma lista retirada do site do <a title="MSDN" href="http://msdn.microsoft.com/pt-br/default.aspx" target="_blank">MSDN </a>com 101 exemplos de operações com LINQ. É bem provável que aquela sua dúvida possa estar aqui.</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top"><strong>Restriction Operators</strong></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336760#WhereSimple1">Where &#8211; Simple 1</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336760#WhereSimple2">Where &#8211; Simple 2</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336760#WhereSimple3">Where &#8211; Simple 3</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336760#WhereDrilldown">Where &#8211; Drilldown</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336760#WhereIndexed">Where &#8211; Indexed</a></p>
<p><strong>Projection Operators</strong></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336758#SelectSimple1">Select &#8211; Simple 1</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336758#SelectSimple2">Select &#8211; Simple 2</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336758#SelectTransformation">Select &#8211; Transformation</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336758#SelectAnonymousTypes1">Select &#8211; Anonymous Types 1</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336758#SelectAnonymousTypes2">Select &#8211; Anonymous Types 2</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336758#SelectAnonymousTypes3">Select &#8211; Anonymous Types 3</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336758#SelectIndexed">Select &#8211; Indexed</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336758#SelectFiltered">Select &#8211; Filtered</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336758#SelectManyCompoundfrom1">SelectMany &#8211; Compound from 1</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336758#SelectManyCompoundfrom2">SelectMany &#8211; Compound from 2</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336758#SelectManyCompoundfrom3">SelectMany &#8211; Compound from 3</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336758#SelectManyfromAssignment">SelectMany &#8211; from Assignment</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336758#SelectManyMultiplefrom">SelectMany &#8211; Multiple from</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336758#SelectManyIndexed">SelectMany &#8211; Indexed</a></p>
<p><strong>Partitioning Operators</strong></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336757#TakeSimple">Take &#8211; Simple</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336757#TakeNested">Take &#8211; Nested</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336757#SkipSimple">Skip &#8211; Simple</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336757#SkipNested">Skip &#8211; Nested</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336757#TakeWhileSimple">TakeWhile &#8211; Simple</a></p>
<p><a title="New Link" href="http://msdn.microsoft.com/en-us/vcsharp/aa336757#TakeWhileIndexed">TakeWhile &#8211;   Indexed</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336757#SkipWhileSimple">SkipWhile &#8211; Simple</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336757#SkipWhileIndexed">SkipWhile &#8211; Indexed</a></p>
<p><strong>Ordering Operators</strong></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336756#OrderBySimple1">OrderBy &#8211; Simple 1</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336756#OrderBySimple2">OrderBy &#8211; Simple 2</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336756#OrderBySimple3">OrderBy &#8211; Simple 3</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336756#OrderBycomparer">OrderBy &#8211; Comparer</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336756#OrderByDescendingSimple1">OrderByDescending &#8211; Simple 1</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336756#OrderByDescendingSimple2">OrderByDescending &#8211; Simple 2</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336756#OrderByDescendingComparer">OrderByDescending &#8211; Comparer</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336756#thenBySimple">ThenBy &#8211; Simple</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336756#thenByComparer">ThenBy &#8211; Comparer</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336756#thenByDescendingSimple">ThenByDescending &#8211; Simple</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336756#ThenByDescendingComparer">ThenByDescending &#8211; Comparer</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336756#reverse">Reverse</a></td>
<td valign="top"><strong>Grouping Operators</strong></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336754.aspx#simple1">GroupBy &#8211; Simple 1</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336754.aspx#simple2">GroupBy &#8211; Simple 2</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336754.aspx#simple3">GroupBy &#8211; Simple 3</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336754.aspx#nested">GroupBy &#8211; Nested</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336754.aspx#comparer">GroupBy &#8211; Comparer</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336754.aspx#comparerMapped">GroupBy &#8211; Comparer, Mapped</a></p>
<p><strong>Set Operators</strong></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336761.aspx#distinct1">Distinct &#8211; 1</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336761.aspx#distinct2">Distinct &#8211; 2</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336761.aspx#union1">Union &#8211; 1</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336761.aspx#union2">Union &#8211; 2</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336761.aspx#intersect1">Intersect &#8211; 1</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336761.aspx#intersect2">Intersect &#8211; 2</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336761.aspx#except1">Except &#8211; 1</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336761.aspx#except2">Except &#8211; 2</a></p>
<p><strong>Conversion Operators</strong></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336748#ToArray">To Array</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336748#ToList">To List</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336748#ToDictionary">To Dictionary</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336748#OfType">OfType</a></p>
<p><strong>Element Operators</strong></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336750#FirstSimple">First &#8211; Simple</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336750#FirstCondition">First &#8211; Condition</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336750#FirstOrDefaultSimple">FirstOrDefault &#8211; Simple</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336750#FirstOrDefaultCondition">FirstOrDefault &#8211; Condition</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336750#ElementAt">ElementAt</a></p>
<p><strong>Generation Operators</strong></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336752.aspx#range">Range</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336752.aspx#repeat">Repeat</a></p>
<p><strong>Quantifiers</strong></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336759.aspx#anySimple">Any &#8211; Simple</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336759.aspx#anyGrouped">Any &#8211; Grouped</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336759.aspx#allSimple">All &#8211; Simple</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336759.aspx#allGrouped">All &#8211; Grouped</a></td>
<td valign="top"><strong>Aggregate Operators</strong></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336747#countSimple">Count &#8211; Simple</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336747#countConditional">Count &#8211; Conditional</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336747#countNested">Count &#8211; Nested</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336747#countGrouped">Count &#8211; Grouped</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336747#sumSimple">Sum &#8211; Simple</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336747#sumProjection">Sum &#8211; Projection</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336747#sumGrouped">Sum &#8211; Grouped</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336747#minSimple">Min &#8211; Simple</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336747#minProjection">Min &#8211; Projection</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336747#minGrouped">Min &#8211; Grouped</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336747#minElements">Min &#8211; Elements</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336747#maxSimple">Max &#8211; Simple</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336747#maxProjection">Max &#8211; Projection</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336747#maxGrouped">Max &#8211; Grouped</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336747#maxElements">Max &#8211; Elements</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336747#avgSimple">Average &#8211; Simple</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336747#avgProjection">Average &#8211; Projection</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336747#avgGrouped">Average &#8211; Grouped</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336747#AggregateSimple">Aggregate &#8211; Simple</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336747#AggregateSeed">Aggregate &#8211; Seed</a></p>
<p><strong>Miscellaneous Operators</strong></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336755#Concat1">Concat &#8211; 1</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336755#concat2">Concat &#8211; 2</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336755#equalAll1">EqualAll &#8211; 1</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336755#equalAll2">EqualAll &#8211; 2</a></p>
<p><strong>Custom Sequence Operators</strong></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336749#combine">Combine</a></p>
<p><strong>Query Execution</strong></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336751#DeferredExecution">Deferred Execution</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336751#ImmediateExecution">Immediate Execution</a></p>
<p><a href="http://msdn.microsoft.com/en-us/vcsharp/aa336751#QueryReuse">Query Reuse</a></p>
<p><strong>Utility Routines</strong></p>
<p><a title="GetProductList code" href="http://msdn.microsoft.com/vcsharp/aa336753.aspx">GetProductList   code</a></p>
<p><strong>Join Operators</strong></p>
<p><a title="New Link" href="http://msdn.microsoft.com/en-us/vcsharp/ee908647#crossjoin">Cross Join</a></p>
<p><a title="New Link" href="http://msdn.microsoft.com/en-us/vcsharp/ee908647#groupjoin">Group Join</a></p>
<p><a title="New Link" href="http://msdn.microsoft.com/en-us/vcsharp/ee908647#crossgroup">Cross Join   with Group Join</a></p>
<p><a title="New Link" href="http://msdn.microsoft.com/en-us/vcsharp/ee908647#leftouterjoin">Left Outer   Join</a></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.joaofelipe.com/index.php/programacao/101-exemplos-de-operacoes-com-linq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CRUD com Entity Framework</title>
		<link>http://www.joaofelipe.com/index.php/programacao/crud-com-entity-framework/</link>
		<comments>http://www.joaofelipe.com/index.php/programacao/crud-com-entity-framework/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 15:09:08 +0000</pubDate>
		<dc:creator>João Felipe Portela</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Entity Framework]]></category>

		<guid isPermaLink="false">http://www.joaofelipe.com/?p=606</guid>
		<description><![CDATA[O Entity Framework permite aos desenvolvedores criar mecanismos de acesso a dados em cima de um mapeamento objeto relacional, no qual classes que representam a estrutura da base de dados são utilizadas, em vez de programação diretamente sobre o esquema de armazenamento relacional. O objetivo é diminuir a quantidade de código e manutenção necessária para [...]]]></description>
			<content:encoded><![CDATA[<p>O Entity Framework permite aos desenvolvedores criar mecanismos de acesso a dados em cima de um mapeamento objeto relacional, no qual classes que representam a estrutura da base de dados são utilizadas, em vez de programação diretamente sobre o esquema de armazenamento relacional. O objetivo é diminuir a quantidade de código e manutenção necessária para aplicações orientadas por dados.</p>
<p>Abaixo temos exemplos simples de seleção, inserção, atualização e remoção de dados através do Entity Framework.</p>
<pre class="brush: c-sharp;">// selecionar
Aluno aluno;
using (DBEntities contexto = new DBEntities())
{
    // seleciona um aluno especifico na lista de alunos
    aluno = (from alunoX in contexto.Aluno
              where alunoX.Nome == "João Felipe Portela"
              select alunoX);
}</pre>
<pre class="brush: csharp;">// inserir
using (DBEntities contexto = new DBEntities())
{
    // cria aluno define um novo objeto aluno
    Aluno aluno = new Aluno() { Nome = "João Felipe Portela" }; 

    // adiciona a lista de alunos
    contexto.AddToAluno(aluno); 

    // salva as alterações
    contexto.SaveChanges();
}</pre>
<pre class="brush: csharp;">// atualizar
using (DBEntities contexto = new DBEntities())
{
    // seleciona um aluno especifico na lista de alunos
    Aluno aluno = (from alunoX in contexto.Aluno
             	   where alunoX.Nome == "João Felipe Portela"
             	   select alunoX).First(); 

    // altera o nome do aluno
    aluno.Name = "João Felipe"; 

    // salva as alterações
    contexto.SaveChanges();
}</pre>
<pre class="brush: csharp;">// remover
using (DBEntities contexto = new DBEntities())
{
    // seleciona um aluno especifico na lista de alunos
    Aluno aluno = (from alunoX in contexto.Aluno
             	   where alunoX.Nome == "João Felipe Portela"
             	   select alunoX).First(); 

    // remove da lista de alunos
    contexto.DeleteObject(aluno);

    // salva as alterações
    contexto.SaveChanges();
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.joaofelipe.com/index.php/programacao/crud-com-entity-framework/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Programas Acadêmicos Microsoft: Faculdade ÁREA1 2010</title>
		<link>http://www.joaofelipe.com/index.php/eventos/programas-academicos-microsoft-faculdade-area1-2010/</link>
		<comments>http://www.joaofelipe.com/index.php/eventos/programas-academicos-microsoft-faculdade-area1-2010/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 23:25:31 +0000</pubDate>
		<dc:creator>João Felipe Portela</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[.net 4.0]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[ASP.net 4.0]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Imagine Cup]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[S2B]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">http://www.joaofelipe.com/?p=467</guid>
		<description><![CDATA[Hoje pela manhã apresentei junto a Alex Kondera os programas acadêmicos da Microsoft e as novidades tecnológicas que estão por vir como Visual Studio 2008, .net 4.0 e ASP.net 4.0. Seguem algumas fotos: .]]></description>
			<content:encoded><![CDATA[<p>Hoje pela manhã apresentei junto a Alex Kondera os programas acadêmicos da Microsoft e as novidades tecnológicas que estão por vir como Visual Studio 2008, .net 4.0 e ASP.net 4.0.</p>
<p>Seguem algumas fotos:</p>
<div id="attachment_468" class="wp-caption alignleft" style="width: 528px"><img class="size-full wp-image-468 " title="Apresentação João Felipe Portela" src="http://www.joaofelipe.com/wp-content/uploads/2010/03/DSC03387.jpg" alt="" width="518" height="292" /><p class="wp-caption-text">Apresentação João Felipe Portela</p></div>
<div id="attachment_469" class="wp-caption alignleft" style="width: 528px"><img class="size-full wp-image-469 " title="Apresentação Alex Kondera" src="http://www.joaofelipe.com/wp-content/uploads/2010/03/DSC03382.jpg" alt="" width="518" height="292" /><p class="wp-caption-text">Apresentação Alex Kondera</p></div>
<p>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joaofelipe.com/index.php/eventos/programas-academicos-microsoft-faculdade-area1-2010/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Manipulando Microsoft Office usando C#</title>
		<link>http://www.joaofelipe.com/index.php/programacao/manipulando-microsoft-office-usando-c/</link>
		<comments>http://www.joaofelipe.com/index.php/programacao/manipulando-microsoft-office-usando-c/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 23:21:43 +0000</pubDate>
		<dc:creator>João Felipe Portela</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Microsoft Office]]></category>
		<category><![CDATA[Microsoft Word]]></category>

		<guid isPermaLink="false">http://www.joaofelipe.com/?p=351</guid>
		<description><![CDATA[Desenvolver aplicações que manipulem arquivos do Microsoft Office utilizando .net Framework é muito simples. Neste artigo mostrarei sem entrar em muitos detalhes o que é necessário fazer para que uma aplicação desenvolvida utilizando o .net Framework alimente um arquivo do Microsoft Word. Importante ressaltar que utilizarei da forma mais básica para atingir este propósito, podendo haver [...]]]></description>
			<content:encoded><![CDATA[<p>Desenvolver aplicações que manipulem arquivos do Microsoft Office utilizando .net Framework é muito simples. </p>
<p>Neste artigo mostrarei sem entrar em muitos detalhes o que é necessário fazer para que uma aplicação desenvolvida utilizando o .net Framework alimente um arquivo do Microsoft Word. Importante ressaltar que utilizarei da forma mais básica para atingir este propósito, podendo haver rotinas mais complexas para criação de documentos com as mais variadas tecnologias suportadas pelo Microsoft Office.</p>
<p>Primeiramente deve-se adicionar ao conjunto de referencias o seguinte item:</p>
<pre class="brush: csharp;">
Microsoft.Office.Interop.Word</pre>
<p>Logo após, definir o namespace:</p>
<pre class="brush: csharp;">
using Word = Microsoft.Office.Interop.Word;</pre>
<p>Agora finalmente começamos com a implementação:</p>
<pre class="brush: csharp;">
// Cria a varável do tipo Missing
object missing = System.Reflection.Missing.Value;

// Cria a variável da aplicação Word
Word.Application wordApp = new Word.ApplicationClass();

// Cria e define as demais variáveis
object readOnly = false;
object isVisible = false;
object fileName = @"c:\texto.doc";
object saveAs = @"c:\novo_texto.doc";

// Define o Word como não visivel
wordApp.Visible = false;

// Cria um objeto Documento Word baseado em um arquivo existente
Word.Document doc = wordApp.Documents.Open(ref fileName, ref missing, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref isVisible, ref missing, ref missing, ref missing, ref missing);

// Ativa o documento
doc.Activate();

// Acrescenta informações no inicio do documento
doc.Content.InsertBefore("Conversando com o Microsoft Word!\r\n\r\n");

// Acrescenta informações no fim do documento
doc.Content.InsertAfter("\r\n\r\nEstá é uma aplicação que utiliza tecnologia Microsoft.");

// Salva o documento do Word com o novo nome
doc.SaveAs(ref saveAs, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);

// Fecha o documento Word
doc.Close(ref missing, ref missing, ref missing);</pre>
<p>É importante perceber que devido a não terem sido feitas definições de usuário é preciso que o documento do Word seja criado pelo usuário da aplicação, caso contrário uma mensagem de erro de permissão será exibida.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joaofelipe.com/index.php/programacao/manipulando-microsoft-office-usando-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eliminando processos do Windows com C#</title>
		<link>http://www.joaofelipe.com/index.php/programacao/eliminando-processos-do-windows-com-c/</link>
		<comments>http://www.joaofelipe.com/index.php/programacao/eliminando-processos-do-windows-com-c/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 15:34:25 +0000</pubDate>
		<dc:creator>João Felipe Portela</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Killer.Net]]></category>

		<guid isPermaLink="false">http://www.joaofelipe.com/?p=332</guid>
		<description><![CDATA[Que tal eliminar uma aplicação que por algum motivo abriu inúmeras copias de uma vez, ou uma aplicação que parou de responder, utilizando C# fazer isso é muito simples, confira: Querendo remover todos os processos da aplicação &#8216;notepad&#8217;: Process[] processes = Process.GetProcessesByName("notepad"); foreach (Process process in processes) { process.Kill(); // Mata o processo } Mais informações sobre [...]]]></description>
			<content:encoded><![CDATA[<p>Que tal eliminar uma aplicação que por algum motivo abriu inúmeras copias de uma vez, ou uma aplicação que parou de responder, utilizando <strong>C#</strong> fazer isso é muito simples, confira:</p>
<p>Querendo remover todos os processos da aplicação &#8216;notepad&#8217;:</p>
<pre class="brush: c-sharp;">
Process[] processes = Process.GetProcessesByName("notepad");
foreach (Process process in processes)
{
    process.Kill(); // Mata o processo
}</pre>
<p>Mais informações sobre a classe <strong>Process </strong>no <a title="MSDN" href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx" target="_blank">site do MSDN</a>.<br />
Segue aqui uma aplicação que desenvolvi utilizando este recurso:</p>
<p><strong>Killer.Net</strong> &#8211; <a href="http://www.joaofelipe.com/wp-content/uploads/2009/12/Killer.Net_.zip">Download</a></p>
<p>Apertando F1 um form surgirá com dicas de uso.</p>
<p>Na verdade fiz esta aplicação com o intuito de ajudar um colega de trabalho que a todo momento fazia vários processos abrirem graças a alguma falha causado no desenvolvimento de um outro software.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joaofelipe.com/index.php/programacao/eliminando-processos-do-windows-com-c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>C# 4.0 : Suporte a parâmetros opcionais</title>
		<link>http://www.joaofelipe.com/index.php/programacao/c-4-0-suporte-a-parametros-opcionais/</link>
		<comments>http://www.joaofelipe.com/index.php/programacao/c-4-0-suporte-a-parametros-opcionais/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 01:34:18 +0000</pubDate>
		<dc:creator>João Felipe Portela</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">http://www.joaofelipe.com/?p=165</guid>
		<description><![CDATA[Muitas vezes no desenvolvimento de aplicações em C# ao criar sobrecargas ocorre a repetição de métodos de forma não muito agradável, o que dificulta a manutenção e aumenta a complexidade do código. Na versão 4.0 o C# vai possuir suporte a parâmetros opcionais, que permite que sejam pré-definidos valores aos parâmetros, para caso os mesmos [...]]]></description>
			<content:encoded><![CDATA[<p>Muitas vezes no desenvolvimento de aplicações em C# ao criar sobrecargas ocorre a repetição de métodos de forma não muito agradável, o que dificulta a manutenção e aumenta a complexidade do código.</p>
<p>Na versão 4.0 o C# vai possuir suporte a parâmetros opcionais, que permite que sejam pré-definidos valores aos parâmetros, para caso os mesmos não sejam passados. Uma aplicação hoje é disposta da seguinte forma:</p>
<pre class="brush: c-sharp;">
public class Pessoa
{
    string Nome { get; set; }
    int Idade { get; set; }
    bool Estudante { get; set; }

    public Pessoa(string nome) : this(nome, 18) { }
    public Pessoa(string nome, int idade) : this(nome, idade, true) { }
    public Pessoa(string nome, int idade, bool estudante)
    {
        this.Nome = nome;
        this.Idade = idade;
        this.Estudante = estudante;
    }
}
</pre>
<p>Na nova versão de forma muito mais simples, fazemos apenas:</p>
<pre class="brush: c-sharp;">
public class Pessoa
{
    string Nome { get; set; }
    int Idade { get; set; }
    bool Estudante { get; set; }

    public Pessoa(string nome, int idade = 18, bool estudante = true)
    {
        this.Nome = nome;
        this.Idade = idade;
        this.Estudante = estudante;
    }
}
</pre>
<p>Em aplicações mais complexas essas mudanças são muito mais vantajosas. Agora só resta aguardar o lançamento oficial do Microsoft Visual Studio 2010, do .Net 4.0 e do C# 4.0, que devem chegar juntos, para poder começar a implantar essas novas funcionalidades em nossas aplicações.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joaofelipe.com/index.php/programacao/c-4-0-suporte-a-parametros-opcionais/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ListNames &#8211; Listar nome de pastas e arquivos</title>
		<link>http://www.joaofelipe.com/index.php/software/listnames-listar-nome-de-pastas-e-arquivos/</link>
		<comments>http://www.joaofelipe.com/index.php/software/listnames-listar-nome-de-pastas-e-arquivos/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 13:54:29 +0000</pubDate>
		<dc:creator>João Felipe Portela</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.joaofelipe.com/?p=9</guid>
		<description><![CDATA[Eu estava precisando listar o nome de algumas pastas e arquivos para criar uma relação, porém me deparei com uma enorme quantidade de pastas, e logo vi que iria dar um trabalho grandioso, daí decidir criar um software que fizesse isso para mim. Utilizei C# junto com o .net Framework e não foi necessário muito [...]]]></description>
			<content:encoded><![CDATA[<p>Eu estava precisando listar o nome de algumas pastas e arquivos para criar uma relação, porém me deparei com uma enorme quantidade de pastas, e logo vi que iria dar um trabalho grandioso, daí decidir criar um software que fizesse isso para mim. Utilizei C# junto com o .net Framework e não foi necessário muito esforço.</p>
<p>Quem quiser pode fazer download pelo link abaixo:</p>
<p><a href="http://www.joaofelipe.com/ListNames.zip">Download do ListNames.</a></p>
<p>Lembrando que como o aplicativo foi desenvolvido em .Net é necessário ter o .Net Framework 2.0 ou superior instalado em sua maquina. Caso use Windows Vista, ele já vem o .Net Framework 3.0.</p>
<p><a href="http://www.microsoft.com/downloads/info.aspx?na=47&amp;p=1&amp;SrcDisplayLang=en&amp;SrcCategoryId=&amp;SrcFamilyId=ec2ca85d-b255-4425-9e65-1e88a0bdb72a&amp;u=details.aspx?familyid=333325FD-AE52-4E35-B531-508D977D32A6&amp;displaylang=en" target="_blank">Download do .NET Framework 3.5</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.joaofelipe.com/index.php/software/listnames-listar-nome-de-pastas-e-arquivos/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Usando uma DLL no .net</title>
		<link>http://www.joaofelipe.com/index.php/programacao/usando-uma-dll-no-net/</link>
		<comments>http://www.joaofelipe.com/index.php/programacao/usando-uma-dll-no-net/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 09:48:16 +0000</pubDate>
		<dc:creator>João Felipe Portela</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Visual Studio 2008]]></category>

		<guid isPermaLink="false">http://www.joaofelipe.com/?p=19</guid>
		<description><![CDATA[Primeiramente ao abrir o Microsoft Visual Studio deve-se selecionar a opção criar projeto, e lá optar por Class Library em C#. Neste projeto iremos desenvolver nosso código que será armazenado pela DLL. Uma vez feito isso, partimos para a configuração da classe que vai receber a DLL. Para adicionar uma DLL num projeto deve-se ir [...]]]></description>
			<content:encoded><![CDATA[<p>Primeiramente ao abrir o <strong>Microsoft Visual Studio</strong> deve-se selecionar a opção criar projeto, e lá optar por <strong>Class Library</strong> em C#.</p>
<p>Neste projeto iremos desenvolver nosso código que será armazenado pela DLL. Uma vez feito isso, partimos para a configuração da classe que vai receber a DLL.</p>
<p>Para adicionar uma DLL num projeto deve-se ir até a baia do <strong>Solution Explorer</strong> e clicar com o botão direito sobre “<strong>References</strong>”, e depois “<strong>Add Reference</strong>”. Na guia que será aberta deve-se clicar em “<strong>Browser</strong>” uma vez que iremos buscar um DLL para o sistema. Ao encontrar tal DLL, deve-se adicioná-la.</p>
<p>Uma vez adicionada nas “<strong>References</strong>” deve adicionar a classe da biblioteca a ser usada junto as outras do .NET, usando a diretiva “<strong>using</strong>”.</p>
<p>Depois de feito essas operações já se podem instanciar objetos e começar a usar sua Class Library.</p>
<p>Assista a esse vídeo feito por mim efetuando as operações acima:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="src" value="http://www.youtube.com/v/Ju8lWyFCrsc&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/Ju8lWyFCrsc&amp;hl=en&amp;fs=1" allowfullscreen="true"></embed></object></p>
<p><a href="http://www.youtube.com/v/Ju8lWyFCrsc" target="_blank"> http://www.youtube.com/v/Ju8lWyFCrsc</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.joaofelipe.com/index.php/programacao/usando-uma-dll-no-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

