<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Matt Manela's Blog : Visual Studio</title><link>http://blogs.msdn.com/matt/archive/tags/Visual+Studio/default.aspx</link><description>Tags: Visual Studio</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>My xUnit.net Visual Studio Code Snippets</title><link>http://blogs.msdn.com/matt/archive/2009/03/02/my-xunit-net-vs-code-snippets.aspx</link><pubDate>Tue, 03 Mar 2009 02:58:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9455475</guid><dc:creator>MattManela</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/matt/comments/9455475.aspx</comments><wfw:commentRss>http://blogs.msdn.com/matt/commentrss.aspx?PostID=9455475</wfw:commentRss><description>&lt;P&gt;The &lt;A href="http://xunit.codeplex.com/" mce_href="http://xunit.codeplex.com/"&gt;xUnit .Net&lt;/A&gt; codeplex page &lt;A href="http://xunit.codeplex.com/Wiki/View.aspx?title=VsSnippets" mce_href="http://xunit.codeplex.com/Wiki/View.aspx?title=VsSnippets"&gt;lists one&lt;/A&gt; useful Visual Studio code snippet for creating a Fact.&amp;nbsp; As you &lt;A href="http://snippetdesigner.codeplex.com/" mce_href="http://snippetdesigner.codeplex.com"&gt;can tell&lt;/A&gt; I am fairly fond of code snippets so I created a few more which I use when writing xUnit.net facts. These are one line snippets that I find very convenient when writing my assertions.&lt;/P&gt;
&lt;P&gt;Below is a table which shows the shortcut you use to access the snippet and the code the snippet generates&lt;/P&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=2 width=362&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=90&gt;&lt;STRONG&gt;Shortcut&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=270&gt;&lt;STRONG&gt;Snippet&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=90&gt;ae&lt;/TD&gt;
&lt;TD vAlign=top width=270&gt;Assert.Equal($expected$,$actual$)&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=90&gt;ane&lt;/TD&gt;
&lt;TD vAlign=top width=270&gt;Assert.NotEqual($expected$,$actual$)&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=90&gt;an&lt;/TD&gt;
&lt;TD vAlign=top width=270&gt;Assert.Null($actual$)&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=90&gt;ann&lt;/TD&gt;
&lt;TD vAlign=top width=270&gt;Assert.NotNull($actual$)&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=90&gt;at&lt;/TD&gt;
&lt;TD vAlign=top width=270&gt;Assert.True($actual$)&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=90&gt;af&lt;/TD&gt;
&lt;TD vAlign=top width=270&gt;Assert.False($actual$)&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;I have included a &lt;A title="xUunit.net Snippets" href="http://blogs.msdn.com/matt/attachment/9455475.ashx" mce_href="http://blogs.msdn.com/matt/attachment/9455475.ashx"&gt;zip containing these snippets&lt;/A&gt;.&amp;nbsp;&amp;nbsp; Enjoy!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9455475" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/matt/attachment/9455475.ashx" length="3703" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/matt/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/matt/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/matt/archive/tags/Snippets/default.aspx">Snippets</category></item><item><title>Snippet Designer 1.1 Released</title><link>http://blogs.msdn.com/matt/archive/2009/01/05/snippet-designer-1-1-released.aspx</link><pubDate>Tue, 06 Jan 2009 05:11:28 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9284420</guid><dc:creator>MattManela</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/matt/comments/9284420.aspx</comments><wfw:commentRss>http://blogs.msdn.com/matt/commentrss.aspx?PostID=9284420</wfw:commentRss><description>&lt;p&gt;I just released &lt;a href="http://www.codeplex.com/SnippetDesigner" target="_blank"&gt;Snippet Designer&lt;/a&gt; 1.1.&amp;#160; This is not a major release but just some bug fixes and often requested changes to make the snippet designer more useful.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Some of the most notable changes are:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Languages Service are turned OFF by default now.&amp;#160; Since I was unable to figure out a way to host the C# and VB language services in the snippet editor without causing fake errors in projects I decided to give the users an option to turn them on or off.&amp;#160; If you are ok with the fake error you can turn this back on but since it really annoyed me I have it off.&amp;#160; I plan in a future release to provide some basic color coding outside of the language service so you can at least have color coded code.&lt;/li&gt;    &lt;li&gt;Many more aspects of the plug in are now configurable through the options menu under Snippet Designer.&amp;#160; you can now set the location of the snippet index, set preferences for which snippet languages you would like to appear in the snippet explorer.&lt;/li&gt;    &lt;li&gt;Several bug fixes to how the highlighting of replacements works and performance improvements with it also.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hopefully these changes will make it much more useful so please download it and try it out &lt;a href="http://www.codeplex.com/SnippetDesigner" target="_blank"&gt;here&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;The future…&lt;/h3&gt;  &lt;p&gt;My plans for the future are still up in the air but some of the things I would like to add are:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;More bug fixes and more feature enhancements suggested by many helpful users on the &lt;a href="http://www.codeplex.com/SnippetDesigner" target="_blank"&gt;Snippet Designer&lt;/a&gt; Codeplex page.&lt;/li&gt;    &lt;li&gt;Ability to color code snippets without using the language service.&amp;#160; I have a few options here I have been looking at.&lt;/li&gt;    &lt;li&gt;Create a website to host snippets and allow you to consume and publish from Visual Studio to this website.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I don’t know how much time I will have to commit to any of these but hopefully I will be able to get more work done on this.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Thanks!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9284420" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/matt/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/matt/archive/tags/Programming/default.aspx">Programming</category><category domain="http://blogs.msdn.com/matt/archive/tags/Personal/default.aspx">Personal</category><category domain="http://blogs.msdn.com/matt/archive/tags/Snippet+Designer/default.aspx">Snippet Designer</category></item><item><title>What annoys me when writing generic functions in Visual Studio...</title><link>http://blogs.msdn.com/matt/archive/2008/10/14/what-annoys-me-when-writing-generic-functions-in-visual-studio.aspx</link><pubDate>Tue, 14 Oct 2008 20:38:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8999842</guid><dc:creator>MattManela</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/matt/comments/8999842.aspx</comments><wfw:commentRss>http://blogs.msdn.com/matt/commentrss.aspx?PostID=8999842</wfw:commentRss><description>&lt;p&gt;When writing a generic function I start from left to right (the same way I write most things except when I took Yiddish in college).&amp;#160; For example, Lets say I am writing a simple generic method which return the first element of a generic list. I want the signature of this method to be:&lt;/p&gt;  &lt;div&gt;   &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;private&lt;/span&gt; T First&amp;lt;T&amp;gt;(List&amp;lt;T&amp;gt; list)&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;&amp;#160;&lt;/div&gt;

&lt;div&gt; I start by writing the visibility:&lt;/div&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;I then need to write the return type so I type T.&amp;#160; The problem is that since T is not defined as a generic type parameter yet so intellisense tries to help me out by showing me all types that begin with T:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/matt/WindowsLiveWriter/Whatannoysmewhenwritinggenericfunctions_9211/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/matt/WindowsLiveWriter/Whatannoysmewhenwritinggenericfunctions_9211/image_thumb.png" width="212" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Now my instinct here (every time) is to press space since I just want to move on to the next word since T is all I want.&amp;#160; But space will auto-complete T with ThreadStaticAtrribute.&amp;#160; What I need to do is press esc to close the intellisense window and then press space.&amp;#160; This may seems like a silly issue, but I seem to never remember that I need to do this. &lt;/p&gt;

&lt;p&gt;Visual Studio and intellisense have done nothing wrong here , I just wish intellisense had the ability to read my mind and understand exactly what I am intended to do.&amp;#160; It could save me a couple key presses a day!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8999842" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/matt/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>The Snippet Designer is Released!!!!</title><link>http://blogs.msdn.com/matt/archive/2008/09/21/the-snippet-designer-is-released.aspx</link><pubDate>Mon, 22 Sep 2008 08:06:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8960861</guid><dc:creator>MattManela</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/matt/comments/8960861.aspx</comments><wfw:commentRss>http://blogs.msdn.com/matt/commentrss.aspx?PostID=8960861</wfw:commentRss><description>&lt;h3&gt;Some History&lt;/h3&gt; &lt;p&gt;The &lt;a href="http://www.codeplex.com/SnippetDesigner" target="_blank"&gt;Snippet Designer&lt;/a&gt; was started as an intern project of mine during the Summer of 2006.&amp;nbsp; The idea was to make snippet files (which were introduced to Visual Studio in 2005) a first class entity.&amp;nbsp; Following this idea I created a Visual Studio plug-in which included an editor for snippet files and a search tool window to find snippets.&amp;nbsp; The plan then was to release it on Codeplex but when my internship ended the project was forgotten about.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h3&gt;Today&lt;/h3&gt; &lt;p&gt;Now after two year of sitting there I found the code, cleaned it up a bit and am releasing it on Codeplex as an open source project at &lt;a title="http://www.codeplex.com/SnippetDesigner" href="http://www.codeplex.com/SnippetDesigner"&gt;http://www.codeplex.com/SnippetDesigner&lt;/a&gt;.&amp;nbsp; My goal in releasing it on Codeplex is two fold.&amp;nbsp; First I would like people to try it out, give me feedback and see if we can make it better (it still has plenty of rough edges).&amp;nbsp; Second I would love to turn this into a community developed project where we all can collaborate on it.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h3&gt;Features&lt;/h3&gt; &lt;p&gt;The Snippet Designer has two main features:&lt;/p&gt; &lt;p&gt;A &lt;strong&gt;&lt;font color="#0080ff" size="3"&gt;Snippet Editor&lt;/font&gt;&lt;/strong&gt; hosted in the IDE which lets you edit the code, make replacements and change snippet properties:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/matt/WindowsLiveWriter/TheSnippetDesignerisReleased_5F4F/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="293" alt="image" src="http://blogs.msdn.com/blogfiles/matt/WindowsLiveWriter/TheSnippetDesignerisReleased_5F4F/image_thumb.png" width="446" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;A &lt;strong&gt;&lt;font color="#0080ff" size="3"&gt;Snippet Explorer&lt;/font&gt; &lt;/strong&gt;which lets you search for Snippet files on your computer an quickly open and edit them.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/matt/WindowsLiveWriter/TheSnippetDesignerisReleased_5F4F/image_4.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="444" alt="image" src="http://blogs.msdn.com/blogfiles/matt/WindowsLiveWriter/TheSnippetDesignerisReleased_5F4F/image_thumb_1.png" width="210" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;In addition to these two features the plug-in adds a context menu item inside of the VB, C# and XML editor that lets you export any highlighted code into the snippet editor:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/matt/WindowsLiveWriter/TheSnippetDesignerisReleased_5F4F/image_6.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="444" alt="image" src="http://blogs.msdn.com/blogfiles/matt/WindowsLiveWriter/TheSnippetDesignerisReleased_5F4F/image_thumb_2.png" width="373" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h3&gt;Getting Started&lt;/h3&gt; &lt;p&gt;After installing the Snippet Designer you are ready to create and edit snippets.&amp;nbsp; Either open up any .snippet file or in Visual Studio go to &lt;strong&gt;View -&amp;gt; Other Windows -&amp;gt; Snippet Explorer &lt;/strong&gt;and use the Snippet Explorer to search for snippets.&lt;/p&gt; &lt;p&gt;I look forward to any and all feedback!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8960861" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/matt/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/matt/archive/tags/Applications/default.aspx">Applications</category><category domain="http://blogs.msdn.com/matt/archive/tags/Snippet+Designer/default.aspx">Snippet Designer</category><category domain="http://blogs.msdn.com/matt/archive/tags/Codeplex/default.aspx">Codeplex</category></item><item><title>Visualizing LINQ</title><link>http://blogs.msdn.com/matt/archive/2008/02/28/visualizing-linq.aspx</link><pubDate>Fri, 29 Feb 2008 09:52:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7943497</guid><dc:creator>MattManela</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/matt/comments/7943497.aspx</comments><wfw:commentRss>http://blogs.msdn.com/matt/commentrss.aspx?PostID=7943497</wfw:commentRss><description>&lt;p&gt;I ran across an awesome code sample written by &lt;a href="http://msmvps.com/blogs/jon.skeet/archive/2008/02/20/visual-linq-watch-query-expressions-as-they-happen.aspx" target="_blank"&gt;Jon Skeet&lt;/a&gt;.&amp;nbsp;&amp;nbsp; He realized that many people may have difficulty understanding how the lazy evaluation in LINQ (and programming with iterator combinators in general) works.&amp;nbsp; His program/code sample is able make the lazy evaluation clear by animating it on the fly.&amp;nbsp; He intercepts each step in the LINQ evaluation and animates that step.&amp;nbsp; When the program runs you will see one element at a time be processed through the LINQ query.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I definitely recommend taking a look:&lt;/p&gt; &lt;p&gt;&lt;a title="http://msmvps.com/blogs/jon.skeet/archive/2008/02/20/visual-linq-watch-query-expressions-as-they-happen.aspx" href="http://msmvps.com/blogs/jon.skeet/archive/2008/02/20/visual-linq-watch-query-expressions-as-they-happen.aspx"&gt;http://msmvps.com/blogs/jon.skeet/archive/2008/02/20/visual-linq-watch-query-expressions-as-they-happen.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://msmvps.com/blogs/jon.skeet/archive/2008/02/20/visual-linq-watch-query-expressions-as-they-happen.aspx"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="444" alt="image" src="http://blogs.msdn.com/blogfiles/matt/WindowsLiveWriter/VisualizingLINQ_141DB/image_3.png" width="403" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Kudos to Jon on a job well done.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7943497" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/matt/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/matt/archive/tags/Downloads/default.aspx">Downloads</category><category domain="http://blogs.msdn.com/matt/archive/tags/LINQ/default.aspx">LINQ</category></item><item><title>Foray into LINQ</title><link>http://blogs.msdn.com/matt/archive/2007/12/02/foray-into-linq.aspx</link><pubDate>Mon, 03 Dec 2007 08:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6644688</guid><dc:creator>MattManela</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/matt/comments/6644688.aspx</comments><wfw:commentRss>http://blogs.msdn.com/matt/commentrss.aspx?PostID=6644688</wfw:commentRss><description>&lt;P&gt;With the release of .NET 3.5 I started playing around with one of the cool new technologies called LINQ.  LINQ brings SQL like querying syntax for performing operations on data sources like collections into , files or databases into .NET.  The &lt;A href="http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx" mce_href="http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx" target="_blank"&gt;LINQ website&lt;/A&gt; describes LINQ as:&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;EM&gt;The LINQ Project is a codename for a set of extensions to the .NET Framework that encompass language-integrated query, set, and transform operations. It extends C# and Visual Basic with native language syntax for queries and provides class libraries to take advantage of these capabilities.&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;To truly understand why LINQ is so cool and useful you need to see an example of it in action.  When learning the basics of LINQ I concocted an unrealistic program to help exhibit LINQ's ability to join data from completely different sources together in a very clean and concise way.&lt;/P&gt;&lt;P&gt;I created a program which has three data sources.  &lt;/P&gt;&lt;OL&gt;&lt;LI&gt;SQL Database  &lt;LI&gt;XML File  &lt;LI&gt;In Memory Collection&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Each of these data sources contains different pieces of information related to employees in a company.  I have a table in the SQL database called Employees which contains 4 columns (ID, FirstName, LastName, JobCode).  The data I have stored in this table is:&lt;/P&gt;&lt;DIV STYLE='border-right-color: #808080; border-right-width: 1px; border-right-style: solid; padding-right: 4px; border-top-color: #808080; border-top-width: 1px; border-top-style: solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin-top: 20px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; overflow: auto; border-left-color: #808080; border-left-width: 1px; border-left-style: solid; width: 97.50%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom-color: #808080; border-bottom-width: 1px; border-bottom-style: solid; font-family: Consolas, "Courier New", Courier, monospace; background-color: #f4f4f4'&gt;&lt;PRE STYLE='padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; overflow: visible; width: 100%; color: #000000; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: Consolas, "Courier New", Courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none'&gt;&lt;STRONG&gt;ID   FirstName   LastName   JobCode&lt;BR&gt;&lt;/STRONG&gt; 1    Matthew     Manela     1&lt;BR&gt; 2    Boris       Dander     1&lt;BR&gt; 3    John        Jacobs     2&lt;BR&gt; 4    Sarah       Franks     2&lt;BR&gt; 5    John        Manders    3&lt;BR&gt; 6    Kreighton   Falla      1&lt;BR&gt; 7    Jeremy      Jones      2&lt;BR&gt; 8    William     Simons     4&lt;BR&gt; 9    Steve       Lott       4&lt;BR&gt; 10   Beth        Downs      2&lt;/PRE&gt;&lt;/DIV&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;The XML file's contents are fairly self explanatory, just note that the Code element maps to the JobCode column in the Employees table.&lt;/P&gt;&lt;DIV STYLE='border-right-color: #808080; border-right-width: 1px; border-right-style: solid; padding-right: 4px; border-top-color: #808080; border-top-width: 1px; border-top-style: solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin-top: 20px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; overflow: auto; border-left-color: #808080; border-left-width: 1px; border-left-style: solid; width: 97.50%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom-color: #808080; border-bottom-width: 1px; border-bottom-style: solid; font-family: Consolas, "Courier New", Courier, monospace; background-color: #f4f4f4'&gt;&lt;PRE STYLE='padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; overflow: visible; width: 100%; color: #000000; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: Consolas, "Courier New", Courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none'&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;?&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;xml&lt;/SPAN&gt; &lt;SPAN STYLE='color: #ff0000'&gt;version&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;="1.0"&lt;/SPAN&gt; &lt;SPAN STYLE='color: #ff0000'&gt;encoding&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;="utf-8"&lt;/SPAN&gt; ?&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt; &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Jobs&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;   &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Job&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;     &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Code&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;/SPAN&gt;1&lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Code&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;     &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Title&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;/SPAN&gt;SDE&lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Title&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;     &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Description&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;/SPAN&gt;Builds software for the benefit of the world&lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Description&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;   &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Job&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;   &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Job&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;     &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Code&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;/SPAN&gt;2&lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Code&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;     &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Title&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;/SPAN&gt;PM&lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Title&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;     &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Description&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;/SPAN&gt;Makes sure the developers don't bite off more than they can chew&lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Description&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;   &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Job&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;   &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Job&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;     &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Code&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;/SPAN&gt;3&lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Code&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;     &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Title&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;/SPAN&gt;Manager&lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Title&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;     &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Description&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;/SPAN&gt;Makes sure the PMs dont get too frustrated with the developers&lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Description&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;   &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Job&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;   &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Job&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;     &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Code&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;/SPAN&gt;4&lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Code&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;     &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Title&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;/SPAN&gt;Head Honcho&lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Title&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;     &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Description&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;/SPAN&gt;Makes sure the Managers dont get too frustrated with the PMs&lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Description&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;   &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Job&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt; &lt;SPAN STYLE='color: #0000ff'&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN STYLE='color: #800000'&gt;Jobs&lt;/SPAN&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&amp;gt;&lt;/SPAN&gt; &lt;/PRE&gt;&lt;/DIV&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;The third data source is the in memory collection.  This part is pretty unrealistic but I did it this way to have a different type of data source.  The collection is a dictionary which maps a job code to a string which describes how many years a person with that job code has been at the company.  The dictionary is defined as:&lt;/P&gt;&lt;DIV STYLE='border-right-color: #808080; border-right-width: 1px; border-right-style: solid; padding-right: 4px; border-top-color: #808080; border-top-width: 1px; border-top-style: solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin-top: 20px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; overflow: auto; border-left-color: #808080; border-left-width: 1px; border-left-style: solid; width: 97.50%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom-color: #808080; border-bottom-width: 1px; border-bottom-style: solid; font-family: Consolas, "Courier New", Courier, monospace; background-color: #f4f4f4'&gt;&lt;PRE STYLE='padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; overflow: visible; width: 100%; color: #000000; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: Consolas, "Courier New", Courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none'&gt;&lt;FONT color="#0000ff"&gt;var&lt;/FONT&gt; yearsWorking = &lt;SPAN STYLE='color: #0000ff'&gt;new&lt;/SPAN&gt; Dictionary&amp;lt;&lt;SPAN STYLE='color: #0000ff'&gt;int&lt;/SPAN&gt;, &lt;SPAN STYLE='color: #0000ff'&gt;string&lt;/SPAN&gt;&amp;gt;&lt;BR&gt;     {&lt;BR&gt;          { 1, &lt;SPAN STYLE='color: #006080'&gt;"1 to 5"&lt;/SPAN&gt;},&lt;BR&gt;          { 2, &lt;SPAN STYLE='color: #006080'&gt;"1 to 5"&lt;/SPAN&gt;},&lt;BR&gt;          { 3, &lt;SPAN STYLE='color: #006080'&gt;"6 to 15"&lt;/SPAN&gt;},&lt;BR&gt;          { 4, &lt;SPAN STYLE='color: #006080'&gt;"15 or more"&lt;/SPAN&gt;}&lt;BR&gt;     };&lt;/PRE&gt;&lt;/DIV&gt;&lt;P&gt;&lt;EM&gt;(The above dictionary definition also uses two other new features: Implicitly typed local variables and object\collection initializers. )&lt;/EM&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;With these three data sources I want to be able to join the job code from all three and be able to print our a string about each person which would look like:&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;Matthew Manela is a SDE with 1 to 5 years of experience&lt;BR&gt;        Builds software for the benefit of the world&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Normally to do this wouldn't be hard but would take a decent amount of code to read data from each source join them together and then print it out.  With LINQ the code to do this is super concise and will be instantly pleasing to anyone who has ever done SQL:&lt;/P&gt;&lt;DIV STYLE='border-right-color: #808080; border-right-width: 1px; border-right-style: solid; padding-right: 4px; border-top-color: #808080; border-top-width: 1px; border-top-style: solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin-top: 20px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; overflow: auto; border-left-color: #808080; border-left-width: 1px; border-left-style: solid; width: 97.50%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom-color: #808080; border-bottom-width: 1px; border-bottom-style: solid; font-family: Consolas, "Courier New", Courier, monospace; background-color: #f4f4f4'&gt;&lt;PRE STYLE='padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; overflow: visible; width: 100%; color: #000000; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: Consolas, "Courier New", Courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none'&gt;&lt;SPAN STYLE='color: #008000'&gt;//Joining SQL and XML AND in Memory Collection in LINQ&lt;/SPAN&gt; &lt;BR&gt;&lt;FONT color="#0000ff"&gt;var&lt;/FONT&gt; query =&lt;BR&gt;        &lt;FONT color="#0000ff"&gt;from&lt;/FONT&gt; e &lt;SPAN STYLE='color: #0000ff'&gt;in&lt;/SPAN&gt; xmlRoot.Elements(&lt;SPAN STYLE='color: #006080'&gt;"Job"&lt;/SPAN&gt;)&lt;BR&gt;        &lt;FONT color="#0000ff"&gt;join&lt;/FONT&gt; u &lt;SPAN STYLE='color: #0000ff'&gt;in&lt;/SPAN&gt; db.Employees &lt;FONT color="#0000ff"&gt;on&lt;/FONT&gt; e.Element(&lt;SPAN STYLE='color: #006080'&gt;"Code"&lt;/SPAN&gt;).Value equals u.JobCode.ToString()&lt;BR&gt;        &lt;FONT color="#0000ff"&gt;join&lt;/FONT&gt; y &lt;SPAN STYLE='color: #0000ff'&gt;in&lt;/SPAN&gt; yearsWorking &lt;FONT color="#0000ff"&gt;on&lt;/FONT&gt; u.JobCode &lt;FONT color="#0000ff"&gt;equals&lt;/FONT&gt; y.Key&lt;BR&gt;        &lt;FONT color="#0000ff"&gt;select&lt;/FONT&gt; &lt;SPAN STYLE='color: #0000ff'&gt;new&lt;/SPAN&gt; { Name = u.FirstName + &lt;SPAN STYLE='color: #006080'&gt;" "&lt;/SPAN&gt; + u.LastName,&lt;BR&gt;                     Description = e.Element(&lt;SPAN STYLE='color: #006080'&gt;"Description"&lt;/SPAN&gt;).Value,&lt;BR&gt;                     Title = e.Element(&lt;SPAN STYLE='color: #006080'&gt;"Title"&lt;/SPAN&gt;).Value,&lt;BR&gt;                     Year= y.Value&lt;BR&gt;        };&lt;BR&gt;&lt;SPAN STYLE='color: #0000ff'&gt;&lt;BR&gt;foreach&lt;/SPAN&gt; (var line &lt;SPAN STYLE='color: #0000ff'&gt;in&lt;/SPAN&gt; query)&lt;BR&gt; {&lt;BR&gt;     Console.WriteLine(line.Name + &lt;SPAN STYLE='color: #006080'&gt;" is a "&lt;/SPAN&gt; + line.Title + &lt;SPAN STYLE='color: #006080'&gt;" with "&lt;/SPAN&gt; + line.Year + &lt;SPAN STYLE='color: #006080'&gt;" years of experience  "&lt;/SPAN&gt; + &lt;SPAN STYLE='color: #006080'&gt;" \n\t"&lt;/SPAN&gt; + line.Description + &lt;SPAN STYLE='color: #006080'&gt;"\n"&lt;/SPAN&gt;);&lt;BR&gt; }&lt;/PRE&gt;&lt;/DIV&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;Instead of having to manually go through each piece of data from each data source, LINQ does this all for you.  You tell it what you want (just like in SQL) and it performs all the heavy lifting and tedious work for you behind the scenes.&lt;/P&gt;&lt;P&gt;This is just a small sampling of the power of LINQ but it is a good start and it got my feet wet.  &lt;/P&gt;&lt;P&gt;The Visual Studio 2008 solution where I created all this incase anyone wants to play around with it and get started seeing how cool LINQ is located &lt;A href="https://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=matt&amp;ReleaseId=208" mce_href="https://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=matt&amp;ReleaseId=208" target="_blank" title="Download"&gt;here&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6644688" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/matt/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/matt/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/matt/archive/tags/Programming/default.aspx">Programming</category><category domain="http://blogs.msdn.com/matt/archive/tags/LINQ/default.aspx">LINQ</category></item><item><title>Visual Studio 2008 and .NET 3.5  WOOOOOO!!!!!!!!!!</title><link>http://blogs.msdn.com/matt/archive/2007/11/19/visual-studio-2008-and-net-3-5-woooooo.aspx</link><pubDate>Tue, 20 Nov 2007 07:45:34 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6420564</guid><dc:creator>MattManela</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/matt/comments/6420564.aspx</comments><wfw:commentRss>http://blogs.msdn.com/matt/commentrss.aspx?PostID=6420564</wfw:commentRss><description>&lt;blockquote&gt;&lt;/blockquote&gt; &lt;p&gt;I am sure they will be many blogs and articles that will mention the awesome fact that Visual Studio 2008 and the .NET Framework 3.5 have been released.&amp;nbsp; I am also sure most of these posts will go talk about some of the many&amp;nbsp;cool new features in both.&amp;nbsp; While that is very tempting for me to do I restrain myself.&amp;nbsp; Instead I will doing something which you may find even more useful....&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I will give you links to go download and play with it!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The new .NET framework can be downloaded for free from here:&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&amp;amp;displaylang=en" target="_blank"&gt;Microsoft .NET Framework 3.5&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;And Visual Studio Express editions can be downloaded for free from here:&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/express/download/default.aspx" target="_blank"&gt;Visual Studio 2008 Express Editions&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The express editions are free version of the IDE which focus on one technology like C#, ASP .NET or VB.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;If you are interested in trying the full edition you can download a trial of it here:&lt;/p&gt; &lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx" target="_blank"&gt;Visual Studio 2008 Trial&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I guarantee if you start to play with these you will fall in love and find eternal happiness.&lt;/p&gt; &lt;p&gt;Well, maybe that is a bit of a hyperbole but it is really cool.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6420564" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/matt/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/matt/archive/tags/CLR/default.aspx">CLR</category><category domain="http://blogs.msdn.com/matt/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/matt/archive/tags/Programming/default.aspx">Programming</category><category domain="http://blogs.msdn.com/matt/archive/tags/Windows/default.aspx">Windows</category></item><item><title>Powerful Visual Studio Add-In</title><link>http://blogs.msdn.com/matt/archive/2007/11/03/powerful-visual-studio-add-in.aspx</link><pubDate>Sun, 04 Nov 2007 04:23:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5871461</guid><dc:creator>MattManela</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/matt/comments/5871461.aspx</comments><wfw:commentRss>http://blogs.msdn.com/matt/commentrss.aspx?PostID=5871461</wfw:commentRss><description>&lt;p&gt;Visual Studio doesn't seem to get much credit for the power of its extensibility model.&amp;nbsp; When most people think about a IDE with powerful plug-ins they think of Eclipse, which granted, has some incredible plug-ins.&amp;nbsp; However, Visual Studio's add-in model is no slouch and one prime example of its capabilities is in &lt;a href="http://www.jetbrains.com/resharper/" target="_blank"&gt;JetBrains Resharper&lt;/a&gt;.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;JetBrains Resharper is the best refactoring add-in to VS I have seen.&amp;nbsp; It has so many features that I won't even try to describe all of&amp;nbsp;them here, just go the their &lt;a href="http://www.jetbrains.com/resharper/" target="_blank"&gt;website&lt;/a&gt; and read about it.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I will highlight one feature which the first time I used it made me say "wow I wish I had thought of that".&amp;nbsp; When you click on a closing bracket or parenthesis and the opening one is not visible Resharper will create a popup box showing you the line where the opening bracket or parenthesis is.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.msdn.com/blogfiles/matt/WindowsLiveWriter/PowerfulVisualStudioAddIn_10294/matching.jpg" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="365" alt="matching" src="http://blogs.msdn.com/blogfiles/matt/WindowsLiveWriter/PowerfulVisualStudioAddIn_10294/matching_thumb.jpg" width="464" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;This is just one of the many features of Resharper that I can't code without now.&amp;nbsp; The only downside is that Resharper isn't free.&amp;nbsp; It costs about $150 for a personal license but you can have a 30 day free trial.&amp;nbsp; If you code often in Visual Studio try this out and see if it is worth it.&amp;nbsp; I highly recommend it.&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5871461" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/matt/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/matt/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/matt/archive/tags/Programming/default.aspx">Programming</category></item></channel></rss>