<?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>Charlie Calvert's Community Blog : Samples</title><link>http://blogs.msdn.com/charlie/archive/tags/Samples/default.aspx</link><description>Tags: Samples</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>CSharp “How Do I Videos (Podcasts)” for the Zune Software</title><link>http://blogs.msdn.com/charlie/archive/2009/11/01/csharp-how-do-i-videos-for-the-zune-software.aspx</link><pubDate>Sun, 01 Nov 2009 20:54:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9915933</guid><dc:creator>Charlie Calvert</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/charlie/comments/9915933.aspx</comments><wfw:commentRss>http://blogs.msdn.com/charlie/commentrss.aspx?PostID=9915933</wfw:commentRss><description>&lt;style type="text/css"&gt;


.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; }&lt;/style&gt;  &lt;p&gt;It can be handy to create custom RSS feeds for the Zune so that it is easy to download and watch selected videos. You can watch these videos either on your PC, or on the Zune itself. &lt;a href="http://www.elvenware.com/charlie/rss/CSharpZuneReadyHowDoIVideos.rss"&gt;Here&lt;/a&gt; is a custom feed I created that contains all the new C# 4.0 language and IDE &lt;a href="http://msdn.microsoft.com/en-us/bb629407.aspx"&gt;How Do I Videos&lt;/a&gt;, plus a selection of other How Do I videos. In total, at this time, there are 35 videos in the feed. The RSS I created uses a simple and quite minimal syntax tested only with Internet Explorer 8 and the software for Zune 4.0.740.0. The source for the C# program that generated the feed includes regular expressions, LINQ to Objects and LINQ to SQL. I discuss that program briefly at the bottom of this post.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.elvenware.com/charlie/rss/CSharpZuneReadyHowDoIVideos.rss"&gt;Charlie’s Custom C# and Visual Studio Feed&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/bb629407.aspx"&gt;The How Do I Video Home Page with over 500 Videos&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;How Do Videos for &lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb507746.aspx"&gt;Visual Studio&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/vcsharp/bb798022.aspx"&gt;How Do I Videos for C#&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Download the &lt;a href="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=linqfarm&amp;amp;DownloadId=7971"&gt;source&lt;/a&gt; for this post from the &lt;a href="http://code.msdn.microsoft.com/linqfarm"&gt;LINQ farm&lt;/a&gt;. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can use this custom feed from inside IE, as shown in Figure 0. However, I really created this feed to run on the Zune, so you should import the feed into the Zune software as a series of podcast. I explain this latter process in the next section of this post.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/CSharpHowDoIVideosfortheZuneSoftware_AB92/Figure00_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Figure00" border="0" alt="Figure00" src="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/CSharpHowDoIVideosfortheZuneSoftware_AB92/Figure00_thumb.png" width="644" height="471" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Figure 0: Viewing a simple RSS feed in IE 8. Click the image to expand it.&lt;/strong&gt;&lt;/p&gt;  &lt;h2&gt;Using the Feed in the Zune Software&lt;/h2&gt;  &lt;p&gt;In this section I provide a quick tutorial for those who’ve never used Podcasts with a Zune. Open &lt;a href="http://www.elvenware.com/charlie/rss/CSharpZuneReadyHowDoIVideos.rss"&gt;the custom RSS&lt;/a&gt; feed in IE and grab the URL from the address bar. Alternately, you can just right click on any of the links to the feed in this document and choose &lt;strong&gt;Copy Shortcut &lt;/strong&gt;or whatever the equivalent command is in Firefox or other browsers. Open the Zune software and turn to the &lt;strong&gt;Collection | Podcasts&lt;/strong&gt; page. Click the button on the bottom left of the page called &lt;strong&gt;Add a Podcast&lt;/strong&gt;. The &lt;strong&gt;Subscribe&lt;/strong&gt; dialog appears. Paste in the URL for the feed, as shown in Figure 1, and then click the &lt;strong&gt;Subscribe&lt;/strong&gt; button. The various How Do I podcasts included in the feed should begin downloading to your system, as shown in Figure 2.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Figure01" border="0" alt="Figure01" src="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/CSharpHowDoIVideosfortheZuneSoftware_AB92/Figure01_3.png" width="471" height="223" /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Figure 1: Subscribing to an RSS Podcast feed in Zune Software 4.0.740.0&lt;/strong&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/CSharpHowDoIVideosfortheZuneSoftware_AB92/Figure02_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Figure02" border="0" alt="Figure02" src="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/CSharpHowDoIVideosfortheZuneSoftware_AB92/Figure02_thumb.png" width="644" height="317" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Figure 2: Viewing a feed in the Zune Software.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;You can then plug in your Zune and right click on the feed and choose to sync the videos to your device. I’ll confess, however, that many of these videos look best on a PC, since you need a certain amount of screen real estate to adequately view the code typed in by the presenters. &lt;/p&gt;  &lt;h2&gt;&lt;strong&gt;Creating the RSS Feed by Screen Scrapping&lt;/strong&gt;&lt;/h2&gt;  &lt;p&gt;I created this feed by the time honored hack of screen scraping. I first copied the URL for the home page of each video and passed it to C# code designed to download the HTML associated with the URL. The program parsed the HTML looking for the elements I needed in my feed. LINQ to XML provided a handy tool for creating my simple RSS feed. I simply passed in the data retrieved from the HTML file to a set of LINQ routines designed to produce the XML for an RSS feed. &lt;/p&gt;  &lt;p&gt;This technique is simple to implement.&amp;#160; Screen scraping is nevertheless a very brittle practice, as my code will last only so long as the basic structure of the HTML pages that I’m parsing remains static. How long such conditions will prevail one can only suppose.&lt;/p&gt;  &lt;p&gt;I called my quick and dirty program &lt;strong&gt;CreateRssFeed, &lt;/strong&gt;and its source is available for &lt;a href="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=linqfarm&amp;amp;DownloadId=7971"&gt;download&lt;/a&gt;. The program is based on two custom classes, one for generating the RSS feed, the other for using Regular Expressions to parse the HTML file.&amp;#160; I store the URLs for the 35 HDI video pages in a file called &lt;strong&gt;UrlsToProcess.txt&lt;/strong&gt;. I won’t bore you with the complete listings for this code, but I show the main body in Listing 1, and a short excerpt from the RSS feed is shown in Listing 2. &lt;/p&gt;  &lt;p&gt;When you download the source, you will find versions for both VS 2008 and VS 2010, Beta 2. The latter solution contains both a console and a windows forms app. They each have their advantages, but I tend to prefer the former.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Listing 1: The main body of the program.&lt;/strong&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:86edbd1a-51cc-4e41-8c27-625eb52e991e" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px"&gt;Code Snippet&lt;/div&gt; &lt;div style="background: #ddd; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt; System;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt; System.IO;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt; CreateRssVideo.Code;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;namespace&lt;/span&gt; CreateRssVideo&lt;/li&gt; &lt;li&gt;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af"&gt;ProgramConsole&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff"&gt;void&lt;/span&gt; Main(&lt;span style="color:#0000ff"&gt;string&lt;/span&gt;[] args)&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;string&lt;/span&gt;[] urls = &lt;span style="color:#2b91af"&gt;File&lt;/span&gt;.ReadAllLines(&lt;span style="color:#a31515"&gt;&amp;quot;UrlsToProcess.txt&amp;quot;&lt;/span&gt;);&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#2b91af"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:#0000ff"&gt;string&lt;/span&gt;&amp;gt; items = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:#0000ff"&gt;string&lt;/span&gt;&amp;gt;();&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#2b91af"&gt;ParseHdiVideoPages&lt;/span&gt; parser = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;ParseHdiVideoPages&lt;/span&gt;(items);&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;foreach&lt;/span&gt; (&lt;span style="color:#0000ff"&gt;var&lt;/span&gt; url &lt;span style="color:#0000ff"&gt;in&lt;/span&gt; urls)&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;parser.ProcessUrl(url);&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#2b91af"&gt;Console&lt;/span&gt;.WriteLine(items[items.Count-&lt;span style="color:#a52a2a"&gt;1&lt;/span&gt;]);&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#2b91af"&gt;File&lt;/span&gt;.WriteAllText(&lt;span style="color:#a31515"&gt;@&amp;quot;..&amp;#92;..&amp;#92;CSharpZuneReadyHowDoIVideos.rss&amp;quot;&lt;/span&gt;, parser.RetrieveXml());&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/li&gt; &lt;li&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Listing 1: An abbreviated version of the RSS Feed created by the code for the CreateRssVideo program.&lt;/strong&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:afae1f2d-aa35-488e-b6cb-aa3a70ad7f2b" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px"&gt;Code Snippet&lt;/div&gt; &lt;div style="background: #ddd; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#a31515"&gt;xml&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;version&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;1.0&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;encoding&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;utf-8&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;standalone&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;yes&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;?&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color:#008000"&gt;Charlie&amp;#39;s RSS Feed for Videos&lt;/span&gt;&lt;span style="color:#0000ff"&gt;--&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;rss&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;version&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;2.0&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;channel&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;title&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;CSharp How Do I Video Custom Feed for Zune Software&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;title&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;description&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;VS 2010 Related Videos&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;description&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;link&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;http://blogs.msdn.com/charlie&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;link&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;item&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;title&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;Add Tool Windows to the Visual Studio IDE?&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;title&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;description&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;This video demonstrates how to&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;description&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;link&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;http://msdn.microsoft.com/en-us/vstudio/dd250814.aspx&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;link&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;enclosure&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;url&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://download.microsoft.com/CreatingToolWindows.wmv&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;video/x-ms-wmv&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;item&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;channel&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;rss&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;The C# code for the &lt;strong&gt;CreateRssVideo&lt;/strong&gt; program uses the build-in &lt;strong&gt;WebClient&lt;/strong&gt; object to download the HTML for the video home page as a string: &lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; RetrieveHtmlFromSite(&lt;span class="kwrd"&gt;string&lt;/span&gt; urlName)
{
    WebClient objWebClient = &lt;span class="kwrd"&gt;new&lt;/span&gt; WebClient();
    &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] requestedUrl = objWebClient.DownloadData(urlName);
    UTF8Encoding utf8 = &lt;span class="kwrd"&gt;new&lt;/span&gt; UTF8Encoding();
    &lt;span class="kwrd"&gt;string&lt;/span&gt; htmlAsString = utf8.GetString(requestedUrl);
    &lt;span class="kwrd"&gt;return&lt;/span&gt; htmlAsString;
}&lt;/pre&gt;

&lt;p&gt;It then uses bits of Regular Expression code to parse the HTML and extract the title, description and video URL from it:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; FindStringInHtmlFile(&lt;span class="kwrd"&gt;string&lt;/span&gt; htmlAsString, &lt;span class="kwrd"&gt;string&lt;/span&gt; regEx)
{
    Regex r = &lt;span class="kwrd"&gt;new&lt;/span&gt; Regex(regEx, RegexOptions.IgnoreCase);

    MatchCollection matchCollection = r.Matches(htmlAsString);
    &lt;span class="kwrd"&gt;string&lt;/span&gt; groupItem = &lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;

    &lt;span class="kwrd"&gt;if&lt;/span&gt; (matchCollection.Count &amp;gt; 0)
    {
        &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (Group groupItemFound &lt;span class="kwrd"&gt;in&lt;/span&gt; matchCollection[0].Groups)
        {
            groupItem = groupItemFound.Value;
        }
    }
    &lt;span class="kwrd"&gt;return&lt;/span&gt; groupItem;
}        &lt;/pre&gt;

&lt;p&gt;Below is a sample of one of the simple regular expressions that I pass into the &lt;strong&gt;FindStringInHtmlFile &lt;/strong&gt;method. This particular bit of code is used to retrieve the description of the video from the HTML file:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; regExDescriptionText = &lt;span class="str"&gt;@&amp;quot;([A-Z\s0-9#\.,\(\)\-]+)&amp;quot;&lt;/span&gt;;
&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; regExDescription = &lt;span class="str"&gt;@&amp;quot;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;About this Video&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;quot;&lt;/span&gt; + regExDescriptionText;&lt;/pre&gt;

&lt;p&gt;While we are parsing the HTML, the program works step by step to create the RSS document using LINQ to XML. The first stage in the RSS creation is to new-up an outline or shell that will hold the meat of the document:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Start()
{
    &lt;span class="kwrd"&gt;string&lt;/span&gt; link = &lt;span class="str"&gt;&amp;quot;http://blogs.msdn.com/charlie&amp;quot;&lt;/span&gt;;
    &lt;span class="kwrd"&gt;string&lt;/span&gt; title = &lt;span class="str"&gt;&amp;quot;CSharp How Do I Video Custom Feed for Zune Software&amp;quot;&lt;/span&gt;;
    &lt;span class="kwrd"&gt;string&lt;/span&gt; description = &lt;span class="str"&gt;&amp;quot;VS 2010 Related Videos&amp;quot;&lt;/span&gt;;

    theDocument = &lt;span class="kwrd"&gt;new&lt;/span&gt; XDocument(&lt;span class="kwrd"&gt;new&lt;/span&gt; XDeclaration(&lt;span class="str"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;utf-8&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;yes&amp;quot;&lt;/span&gt;),
        &lt;span class="kwrd"&gt;new&lt;/span&gt; XComment(&lt;span class="str"&gt;&amp;quot;Charlie's RSS Feed for Videos&amp;quot;&lt;/span&gt;),
        GetChannel(link, title, description));
}        

&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; XElement GetChannel(&lt;span class="kwrd"&gt;string&lt;/span&gt; link, &lt;span class="kwrd"&gt;string&lt;/span&gt; title, &lt;span class="kwrd"&gt;string&lt;/span&gt; description)
{
    &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; XElement(&lt;span class="str"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;, &lt;span class="kwrd"&gt;new&lt;/span&gt; XAttribute(&lt;span class="str"&gt;&amp;quot;version&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;2.0&amp;quot;&lt;/span&gt;),
        &lt;span class="kwrd"&gt;new&lt;/span&gt; XElement(&lt;span class="str"&gt;&amp;quot;channel&amp;quot;&lt;/span&gt;,
                        &lt;span class="kwrd"&gt;new&lt;/span&gt; XElement(&lt;span class="str"&gt;&amp;quot;title&amp;quot;&lt;/span&gt;, title),
                        &lt;span class="kwrd"&gt;new&lt;/span&gt; XElement(&lt;span class="str"&gt;&amp;quot;description&amp;quot;&lt;/span&gt;, description),
                        &lt;span class="kwrd"&gt;new&lt;/span&gt; XElement(&lt;span class="str"&gt;&amp;quot;link&amp;quot;&lt;/span&gt;, link)));
}&lt;/pre&gt;

&lt;p&gt;The &lt;strong&gt;Start&lt;/strong&gt; method creates the document itself, including an XML declaration and a comment. The &lt;strong&gt;GetChannel&lt;/strong&gt; method adds a few simple fields to the document that describes its purpose and which list the URL for my home page. Compare this code with the first few lines from Listing 1 to be sure you understand its purpose. &lt;/p&gt;

&lt;p&gt;As the information for each HDI video is discovered, a new &lt;strong&gt;&amp;lt;item&amp;gt;&lt;/strong&gt; node is created for the RSS feed. This node lists the title for the video, describes the video, and references the URL for the HTML page where the video is stored. Finally, and most importantly, the code includes the &lt;strong&gt;&amp;lt;enclosure&amp;gt;&lt;/strong&gt; node which stores the URL of the actual video. It is the &lt;strong&gt;&amp;lt;enclosure&amp;gt;&lt;/strong&gt; node that the Zune software uses to locate the video which it downloads to your system:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; XElement GetItem(&lt;span class="kwrd"&gt;string&lt;/span&gt; itemTitle, &lt;span class="kwrd"&gt;string&lt;/span&gt; description, &lt;span class="kwrd"&gt;string&lt;/span&gt; linkUrl, &lt;span class="kwrd"&gt;string&lt;/span&gt; videoUrl)
{
    XElement item = &lt;span class="kwrd"&gt;new&lt;/span&gt; XElement(&lt;span class="str"&gt;&amp;quot;item&amp;quot;&lt;/span&gt;,
                &lt;span class="kwrd"&gt;new&lt;/span&gt; XElement(&lt;span class="str"&gt;&amp;quot;title&amp;quot;&lt;/span&gt;, itemTitle),
                &lt;span class="kwrd"&gt;new&lt;/span&gt; XElement(&lt;span class="str"&gt;&amp;quot;description&amp;quot;&lt;/span&gt;, description),
                &lt;span class="kwrd"&gt;new&lt;/span&gt; XElement(&lt;span class="str"&gt;&amp;quot;link&amp;quot;&lt;/span&gt;, linkUrl),
                &lt;span class="kwrd"&gt;new&lt;/span&gt; XElement(&lt;span class="str"&gt;&amp;quot;enclosure&amp;quot;&lt;/span&gt;,
                    &lt;span class="kwrd"&gt;new&lt;/span&gt; XAttribute(&lt;span class="str"&gt;&amp;quot;url&amp;quot;&lt;/span&gt;, videoUrl), &lt;span class="kwrd"&gt;new&lt;/span&gt; XAttribute(&lt;span class="str"&gt;&amp;quot;type&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;video/x-ms-wmv&amp;quot;&lt;/span&gt;)));
    &lt;span class="kwrd"&gt;return&lt;/span&gt; item;
}&lt;/pre&gt;

&lt;p&gt;Once the &lt;strong&gt;&amp;lt;item&amp;gt;&lt;/strong&gt; node has been created, it is added to the XML document itself:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; AddItem(&lt;span class="kwrd"&gt;string&lt;/span&gt; itemTitle, &lt;span class="kwrd"&gt;string&lt;/span&gt; description, &lt;span class="kwrd"&gt;string&lt;/span&gt; linkUrl, &lt;span class="kwrd"&gt;string&lt;/span&gt; videoUrl)
{            
    XElement item = GetItem(itemTitle, description, linkUrl, videoUrl);            

    var linkNode = from x &lt;span class="kwrd"&gt;in&lt;/span&gt; theDocument.Descendants(&lt;span class="str"&gt;&amp;quot;link&amp;quot;&lt;/span&gt;)
                   select x;
    
    linkNode.First().AddAfterSelf(item);            
}&lt;/pre&gt;

&lt;p&gt;Note that this code includes a simple LINQ query used to discover the proper insertion point in the XML document, and then employs the LINQ to XML &lt;strong&gt;AddAfterSelf&lt;/strong&gt; operator to insert the new &lt;strong&gt;&amp;lt;item&amp;gt;&lt;/strong&gt; XML node into the code for the RSS feed. The program enters and loop and repeats the process of creating and inserting &lt;strong&gt;&amp;lt;item&amp;gt; &lt;/strong&gt;nodes into our RSS feed multiple times. Once all the URLs in our &lt;strong&gt;UrlsToProcess.txt&lt;/strong&gt; document have been examined the program exits.&lt;/p&gt;

&lt;h2&gt;Summary&lt;/h2&gt;

&lt;p&gt;The primary purpose of this post is to provide an RSS feed that you can use to download videos for viewing in the Zune software or in the Zune itself. I also showed a simple, and very brittle, screen scraping program that I used to create the feed. I wrote this program for my own use, and pass it on to you with only minimal claims of its value. If nothing else, it provides some examples of how to have fun writing Regular Expressions, and demonstrates how easy it is to use LINQ to Objects and LINQ to XML to create XML documents.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The &lt;a href="http://www.elvenware.com/charlie/rss/CSharpZuneReadyHowDoIVideos.rss"&gt;video feed&lt;/a&gt;. &lt;/li&gt;

  &lt;li&gt;The &lt;a href="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=linqfarm&amp;amp;DownloadId=7971"&gt;source&lt;/a&gt; from the &lt;a href="http://code.msdn.microsoft.com/linqfarm"&gt;LINQ farm&lt;/a&gt;. &lt;/li&gt;
&lt;/ul&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2fcharlie%2farchive%2f2009%2f11%2f01%2fcsharp-how-do-i-videos-for-the-zune-software.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2fcharlie%2farchive%2f2009%2f11%2f01%2fcsharp-how-do-i-videos-for-the-zune-software.aspx" /&gt;&lt;/a&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9915933" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/charlie/archive/tags/CSharp/default.aspx">CSharp</category><category domain="http://blogs.msdn.com/charlie/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/charlie/archive/tags/Samples/default.aspx">Samples</category><category domain="http://blogs.msdn.com/charlie/archive/tags/Video/default.aspx">Video</category><category domain="http://blogs.msdn.com/charlie/archive/tags/C_2300_+4.0/default.aspx">C# 4.0</category><category domain="http://blogs.msdn.com/charlie/archive/tags/Web/default.aspx">Web</category></item><item><title>Sample Code for Games, P2P Apps, Vista Tools, Web Services for Flickr, MySpace, Digg and YouTube</title><link>http://blogs.msdn.com/charlie/archive/2008/03/18/sample-code-for-games-p2p-apps-vista-tools-web-services-for-flickr-myspace-digg-and-youtube.aspx</link><pubDate>Wed, 19 Mar 2008 08:45:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8324822</guid><dc:creator>Charlie Calvert</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/charlie/comments/8324822.aspx</comments><wfw:commentRss>http://blogs.msdn.com/charlie/commentrss.aspx?PostID=8324822</wfw:commentRss><description>&lt;p&gt;A number of interesting sample applications have been released for C#, VB and C++ developers over the last few months. These include &lt;/p&gt; &lt;ul&gt; &lt;li&gt;C# Sample code for building Peer 2 Peer applications on Vista  &lt;li&gt;A C# toolkit for developing Facebook applications  &lt;li&gt;C# interfaces for web services from Digg, YouTube, Amazon, Flickr and other popular sites  &lt;li&gt;C# WPF tools  &lt;li&gt;C++ Sample Games&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Here are links to some of the most important of these toolkits:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.codeplex.com/C4FDevKit"&gt;The Coding 4 Fun Developer Kit&lt;/a&gt;  &lt;li&gt;&lt;a href="http://www.codeplex.com/C4FP2P"&gt;The Vista P2P ToolKit&lt;/a&gt;  &lt;li&gt;&lt;a href="http://www.codeplex.com/FacebookToolkit"&gt;The Facebook Developer Kit&lt;/a&gt;  &lt;li&gt;&lt;a href="http://www.microsoft.com/express/samples/GameCreators/"&gt;The Game Creators: Dark GDK&lt;/a&gt;&amp;nbsp; (C++ Only)  &lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/beginner/default.aspx"&gt;Beginner Developer Learning Center&lt;/a&gt;  &lt;ul&gt; &lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=7773854"&gt;Video: Introduction to Visual C# 2008 Express Edition&lt;/a&gt;  &lt;li&gt;&lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/beginner/bb308732.aspx"&gt;Introduction to Windows as a Platform&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Below you can see a WPF application for Peer to Peer Network programming.&lt;/p&gt; &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="556" alt="PeerToPeer" src="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/0fb9dbbfe1fe_13624/PeerToPeer_3.png" width="721" border="0"&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;FIgure 2:&amp;nbsp; An easy to build Peer to Peer application that allows you to chat, send file or share pictures over a network.&lt;/strong&gt;&lt;/p&gt; &lt;h2&gt;The Coding for Fun Developer Kit&lt;/h2&gt; &lt;p&gt;This developer kit has code for controlling many powerful technologies that are built into Vista:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Bluetooth  &lt;li&gt;Vista Contacts  &lt;li&gt;Vista Calendar  &lt;li&gt;Telephony  &lt;li&gt;Desktop Search  &lt;li&gt;Power Management&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;There are also a series of Web Services that you can use to interact with popular Internet destinations&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Yahoo Traffic  &lt;li&gt;Flickr  &lt;li&gt;MySpace  &lt;li&gt;Amazon.com  &lt;li&gt;Craig's List  &lt;li&gt;Delicious  &lt;li&gt;Digg  &lt;li&gt;YouTube &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Below you can see one of the sample applications that comes with the Coding 4 Fun Developer Kit. I entered in the string "LINQ", and the application retrieved related links to books about LINQ found on Amazon.com.&lt;/p&gt; &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="351" alt="Amazon" src="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/0fb9dbbfe1fe_13624/Amazon_3.png" width="703" border="0"&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Figure 1: Clicking on the links in this demo application causes a browser to be launched that shows books on Amazon.com related to LINQ.&lt;/strong&gt;&lt;/p&gt; &lt;h2&gt;Vista Peer 2 Peer ToolKit&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;Build Peer to Peer Applications using drag and drop WinForms and WPF controls.  &lt;li&gt;Build applications that stream video and music&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;a href="http://www.codeplex.com/C4FDevKit"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2fcharlie%2farchive%2f2008%2f03%2f18%2fsample-code-for-games-p2p-apps-vista-tools-web-services-for-flickr-myspace-digg-and-youtube.aspx"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2fcharlie%2farchive%2f2008%2f03%2f18%2fsample-code-for-games-p2p-apps-vista-tools-web-services-for-flickr-myspace-digg-and-youtube.aspx" border="0"&gt;&lt;/a&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8324822" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/charlie/archive/tags/CSharp/default.aspx">CSharp</category><category domain="http://blogs.msdn.com/charlie/archive/tags/Samples/default.aspx">Samples</category></item><item><title>Orcas Beta 2 VPC's to Expire November 1, 2007</title><link>http://blogs.msdn.com/charlie/archive/2007/10/26/orcas-beta-2-vpc-s-to-expire-november-1-2007.aspx</link><pubDate>Fri, 26 Oct 2007 22:50:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5695325</guid><dc:creator>Charlie Calvert</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/charlie/comments/5695325.aspx</comments><wfw:commentRss>http://blogs.msdn.com/charlie/commentrss.aspx?PostID=5695325</wfw:commentRss><description>&lt;p&gt;I use one of the Beta 2 VPC's regularly, and so I was interested to learn that it will expire prematurely&amp;nbsp;on November 1, 2007. This is not Orcas itself that will expire, but the entire OS. If you have any projects or data that you are keeping on one of these virtual machines, you should move it right away. A new Beta 2 VPC will be made available for those who want to keep testing. More details are available here:&lt;/p&gt; &lt;p&gt;&lt;a title="http://blogs.msdn.com/jeffbe/archive/2007/10/25/vs2008-beta2-vpcs-expiring-prematurely.aspx" href="http://blogs.msdn.com/jeffbe/archive/2007/10/25/vs2008-beta2-vpcs-expiring-prematurely.aspx"&gt;http://blogs.msdn.com/jeffbe/archive/2007/10/25/vs2008-beta2-vpcs-expiring-prematurely.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5695325" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/charlie/archive/tags/CSharp/default.aspx">CSharp</category><category domain="http://blogs.msdn.com/charlie/archive/tags/Dog+Fooding/default.aspx">Dog Fooding</category><category domain="http://blogs.msdn.com/charlie/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://blogs.msdn.com/charlie/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/charlie/archive/tags/Samples/default.aspx">Samples</category></item><item><title>Looking for Input on Visual Studio Content</title><link>http://blogs.msdn.com/charlie/archive/2007/10/13/looking-for-input-on-visual-studio-content.aspx</link><pubDate>Sun, 14 Oct 2007 02:19:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5446537</guid><dc:creator>Charlie Calvert</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/charlie/comments/5446537.aspx</comments><wfw:commentRss>http://blogs.msdn.com/charlie/commentrss.aspx?PostID=5446537</wfw:commentRss><description>&lt;p&gt;Kathleen McGrath and the folks who create the documentation for Visual Studio are running a survey to get feedback from users. Here is your chance to comment on the various types of online documentation provided by Visual Studio. Several different types of content are covered in the survey, including the content of the help files,&amp;nbsp;online videos, samples, IntelliSense, books, third party web sites and search engines, the experience you have when you press F1, or the experience you have&amp;nbsp;when you use the index to search through the docs. Don't miss this chance to tell us what you think about the content&amp;nbsp;you&amp;nbsp;encounter when you&amp;nbsp;use&amp;nbsp;C#, VB, C++, VSTO, VSTA, VS SDK or other technologies&amp;nbsp;in Visual Studio.&lt;/p&gt; &lt;p&gt;Access the survey:&amp;nbsp;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=102169"&gt;&lt;b&gt;http://go.microsoft.com/fwlink/?LinkId=102169&lt;/b&gt;&lt;/a&gt;. Click &lt;a href="http://blogs.msdn.com/kathleen/archive/2007/10/11/wanted-feedback-on-visual-studio-content.aspx"&gt;here to read more&lt;/a&gt; about the survey.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2fcharlie%2farchive%2f2007%2f10%2f13%2flooking-for-input-on-visual-studio-content.aspx"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2fcharlie%2farchive%2f2007%2f10%2f13%2flooking-for-input-on-visual-studio-content.aspx" border="0"&gt;&lt;/a&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5446537" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/charlie/archive/tags/CSharp/default.aspx">CSharp</category><category domain="http://blogs.msdn.com/charlie/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/charlie/archive/tags/Samples/default.aspx">Samples</category></item><item><title>101 LINQ Samples Code Updated</title><link>http://blogs.msdn.com/charlie/archive/2007/03/11/101-linq-samples-code-updated.aspx</link><pubDate>Mon, 12 Mar 2007 09:10:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1862617</guid><dc:creator>Charlie Calvert</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/charlie/comments/1862617.aspx</comments><wfw:commentRss>http://blogs.msdn.com/charlie/commentrss.aspx?PostID=1862617</wfw:commentRss><description>&lt;p&gt;Just a quick note to let you know that the &lt;a href="http://blogs.msdn.com/charlie/archive/2007/03/04/samples-update.aspx"&gt;LINQ Samples&lt;/a&gt; code has been updated. The only change is to add the LINQ to Entities code back into the &lt;strong&gt;SampleQueries&lt;/strong&gt; example. If you open up SampleQueries, you will see a new item called &lt;strong&gt;101 LINQ to Entities samples&lt;/strong&gt;. &lt;/p&gt; &lt;p&gt;SampleQueries has six sections, each with approximately 101 sample methods in it. Each section demonstrates a different LINQ technology:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;LINQ to Objects  &lt;li&gt;LINQ to SQL  &lt;li&gt;LINQ to XML  &lt;li&gt;LINQ to XML Part II  &lt;li&gt;LINQ to DataSet  &lt;li&gt;LINQ to Entities&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Get the updated samples &lt;a href="http://blogs.msdn.com/charlie/archive/2007/03/04/samples-update.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.msdn.com/charlie/archive/2007/03/11/101-linq-samples-code-updated.aspx"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.msdn.com/charlie/archive/2007/03/11/101-linq-samples-code-updated.aspx" border="0"&gt;&lt;/a&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1862617" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/charlie/archive/tags/Samples/default.aspx">Samples</category></item><item><title>March CTP Samples Overview Video</title><link>http://blogs.msdn.com/charlie/archive/2007/03/05/march-ctp-samples-overview-video.aspx</link><pubDate>Mon, 05 Mar 2007 12:15:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1808334</guid><dc:creator>Charlie Calvert</dc:creator><slash:comments>13</slash:comments><comments>http://blogs.msdn.com/charlie/comments/1808334.aspx</comments><wfw:commentRss>http://blogs.msdn.com/charlie/commentrss.aspx?PostID=1808334</wfw:commentRss><description>&lt;p&gt;Here is a short 7 minute video to serve as an introduction to the Samples that are included with the &lt;a href="http://blogs.msdn.com/charlie/archive/2007/03/01/february-ctp-now-available.aspx"&gt;Visual Studio Orcas March CTP&lt;/a&gt;. The samples that shipped with the CTP&amp;nbsp;needed to be updated. As a result, its best if you don't pull them from the CTP help file, instead, &lt;a href="http://blogs.msdn.com/charlie/archive/2007/03/04/samples-update.aspx"&gt;download them from my blog&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;This video gives you a brief introduction to the samples, and explains about the&amp;nbsp; support directories, called &lt;strong&gt;Data&lt;/strong&gt;, and &lt;strong&gt;ObjectDumper&lt;/strong&gt;. These directories contain files that some of the other&amp;nbsp;projects rely upon. The video also shows you key samples such as&amp;nbsp;&lt;strong&gt;SampleQueries&lt;/strong&gt;,&amp;nbsp;&lt;strong&gt;DynamicQuery, ExpressionTreeVisualizer &lt;/strong&gt;and&lt;strong&gt; WinFormsDataBinding.&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;I recorded the video on my Vista laptop, and ran the samples in the &lt;a href="http://blogs.msdn.com/charlie/archive/2007/03/01/february-ctp-now-available.aspx"&gt;Virtual PC version of the March CTP&lt;/a&gt;. Especially if you are running Vista, you also might&amp;nbsp;enjoy using&amp;nbsp;the VPC version of the CTP.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://wm.microsoft.com/ms/msdn/visualcsharp/march_ctp/MarchCtpVideoLouder.wmv"&gt;Stream the video&lt;/a&gt;.  &lt;li&gt;&lt;a href="http://www.elvenware.com/charlie/data/MarchCtpVideo.zip"&gt;Download the video&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1808334" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/charlie/archive/tags/CSharp/default.aspx">CSharp</category><category domain="http://blogs.msdn.com/charlie/archive/tags/Samples/default.aspx">Samples</category></item><item><title>LINQ Samples Update</title><link>http://blogs.msdn.com/charlie/archive/2007/03/04/samples-update.aspx</link><pubDate>Mon, 05 Mar 2007 09:12:57 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1807441</guid><dc:creator>Charlie Calvert</dc:creator><slash:comments>15</slash:comments><comments>http://blogs.msdn.com/charlie/comments/1807441.aspx</comments><wfw:commentRss>http://blogs.msdn.com/charlie/commentrss.aspx?PostID=1807441</wfw:commentRss><description>&lt;p&gt;Here are&amp;nbsp;a set of&amp;nbsp;updated samples for the &lt;a href="http://blogs.msdn.com/charlie/archive/2007/03/01/february-ctp-now-available.aspx"&gt;Visual Studio Orcas March CTP&lt;/a&gt;. These samples replace all the LINQ and LINQ to XML samples that shipped with the March CTP. &lt;/p&gt; &lt;p&gt;This is a first cut on updating the samples. More updates&amp;nbsp;may follow. Please report any problems you have with these samples by posting comments to this blog entry.&lt;/p&gt; &lt;h2&gt;History&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;March 5, 2007: Removed LINQ to Entities code, changed connection string (Version 02).  &lt;li&gt;March 11, 2007: Updated and Restored LINQ to Entities code in SampleQueries (Version 03). &lt;li&gt;March 23, 2007: Structure of main project updated. (Version 04)&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Downloads&lt;/h3&gt; &lt;p&gt;&lt;a href="http://www.elvenware.com/charlie/data/MarchCtpSamples-v04.zip"&gt;Download updated samples&lt;/a&gt;.&lt;/p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.msdn.com/charlie/archive/2007/03/04/samples-update.aspx"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.msdn.com/charlie/archive/2007/03/04/samples-update.aspx" border="0"&gt;&lt;/a&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1807441" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/charlie/archive/tags/CSharp/default.aspx">CSharp</category><category domain="http://blogs.msdn.com/charlie/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://blogs.msdn.com/charlie/archive/tags/Samples/default.aspx">Samples</category></item><item><title>February/March Orcas CTP Now Available</title><link>http://blogs.msdn.com/charlie/archive/2007/03/01/february-ctp-now-available.aspx</link><pubDate>Thu, 01 Mar 2007 11:44:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1776449</guid><dc:creator>Charlie Calvert</dc:creator><slash:comments>32</slash:comments><comments>http://blogs.msdn.com/charlie/comments/1776449.aspx</comments><wfw:commentRss>http://blogs.msdn.com/charlie/commentrss.aspx?PostID=1776449</wfw:commentRss><description>&lt;p&gt;The February CTP (aka as the March CTP) is now available for download&amp;nbsp;as a &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=cf76fcba-07af-47ac-8822-4ad346210670&amp;amp;displaylang=en&amp;amp;tm"&gt;regular install&lt;/a&gt; and as a &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=281FCB3D-5E79-4126-B4C0-8DB6332DE26E&amp;amp;displaylang=en"&gt;virtual PC&lt;/a&gt;. Here is a &lt;a href="http://wm.microsoft.com/ms/msdn/visualcsharp/FebCtp/FebCtp_0001.wmv"&gt;video&lt;/a&gt; that serves as an introduction to the CTP. &lt;/p&gt; &lt;ul&gt; &lt;li&gt;FebCtp Video: &lt;a href="http://wm.microsoft.com/ms/msdn/visualcsharp/FebCtp/FebCtp_0001.wmv"&gt;Stream it&lt;/a&gt;  &lt;li&gt;FebCtp Video: &lt;a href="http://download.microsoft.com/download/c/0/9/c0971723-89a1-46dd-ba75-ecc6de6dabbc/FebCTP.zip"&gt;Download Video&lt;/a&gt;  &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=cf76fcba-07af-47ac-8822-4ad346210670&amp;amp;displaylang=en&amp;amp;tm#Overview"&gt;Text overview&lt;/a&gt;&amp;nbsp;from the install page.  &lt;li&gt;Please check out the samples &lt;a href="http://msdn2.microsoft.com/en-us/bb330936.aspx"&gt;Update&lt;/a&gt;&amp;nbsp;page, as some of the samples that shipped with the CTP had issues. Get the latest updates, and watch the &lt;a href="http://blogs.msdn.com/charlie/archive/2007/03/05/march-ctp-samples-overview-video.aspx"&gt;samples video&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;This CTP is a pre-release version of Visual Studio Orcas. This release features support for LINQ to SQL, which means you can use LINQ to query relational databases.&lt;/p&gt; &lt;p&gt;There were a few issues with this CTP when running on Vista, and when running side by side with Visual Studio 2005. As a result, if you have VS 2005 installed, or if you are running on Vista, then I would suggest using the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=281FCB3D-5E79-4126-B4C0-8DB6332DE26E&amp;amp;displaylang=en"&gt;VPC version&lt;/a&gt; of this download. When downloading the VPC version of Orcas, don't forget to get the &lt;a href="http://download.microsoft.com/download/5/4/9/5499b008-8ae7-46f0-89ae-aeeb18df67ae/VSCTPBase.exe"&gt;base image&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Here &lt;a href="http://blogs.msdn.com/charlie/archive/2006/10/05/Links-to-LINQ.aspx"&gt;is a link&lt;/a&gt; to various LINQ related articles and posts, and be sure also to see &lt;a href="http://blogs.msdn.com/charlie/archive/2006/12/18/notes-on-the-december-ctp.aspx"&gt;this post&lt;/a&gt; which details many of the changes since the May CTP. Here is a link to &lt;a href="http://blogs.msdn.com/charlie/archive/2006/11/11/charlie-calvert-s-technical-blog-index.aspx#linq"&gt;videos and articles&lt;/a&gt; that I have written on LINQ.&lt;/p&gt; &lt;p&gt;Here are some Anders videos from Tech Ed Barcelona:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/emea/msdnshowtime/sessionh.aspx?videoid=317"&gt;LINQ Overview&lt;/a&gt;  &lt;li&gt;&lt;a href="http://www.microsoft.com/emea/msdnshowtime/sessionh.aspx?videoid=319"&gt;C# 3.0&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Here are few other LINQ related videos to help you get started:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/charlie/archive/2007/01/26/anders-hejlsberg-on-linq-and-functional-programming.aspx"&gt;Anders on LINQ and Functional Programming&lt;/a&gt;  &lt;li&gt;&lt;a href="http://channel9.msdn.com/Showpost.aspx?postid=273120"&gt;Anders on Ask the Experts, Jan 17, 2007&lt;/a&gt;  &lt;li&gt;&lt;a href="http://channel9.msdn.com/Showpost.aspx?postid=114680"&gt;Anders on LINQ&lt;/a&gt;&amp;nbsp;from 2005  &lt;li&gt;&lt;a href="http://download.microsoft.com/download/9/4/1/94138e2a-d9dc-435a-9240-bcd985bf5bd7/AndersH-LINQ_0001.wmv"&gt;Anders on LINQ from the LANG.NET Conference&lt;/a&gt;  &lt;li&gt;&lt;a href="http://channel9.msdn.com/Showpost.aspx?postid=202138"&gt;Anders Chatting about LINQ and ADO.NET&lt;/a&gt;  &lt;li&gt;&lt;a href="http://channel9.msdn.com/Showpost.aspx?postid=273697"&gt;Anders, Herb Sutter, Erik Meijer, Brian Beckman on Software Composability&lt;/a&gt;  &lt;li&gt;&lt;a href="http://channel9.msdn.com/Showpost.aspx?postid=260202"&gt;Anders with Chris McConnell&lt;/a&gt;  &lt;li&gt;&lt;a href="http://blogs.msdn.com/ericlippert/archive/2006/11/17/a-face-made-for-email-part-three.aspx"&gt;Eric Lippert on Type Inference&lt;/a&gt;  &lt;li&gt;&lt;a href="http://blogs.msdn.com/charlie/archive/2006/11/17/video-with-peter-hallam-automatic-properties.aspx"&gt;Peter Hallam on Automatic Properties&lt;/a&gt;  &lt;li&gt;&lt;a href="http://wm.microsoft.com/ms/msdn/visualcsharp/anson/Anson_0001.wmv"&gt;Performance Issues in Visual Studio&lt;/a&gt;&amp;nbsp;(Anson Horton, C# PM,&amp;nbsp;only tangentially related to LINQ)  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20060622linqlb/manifest.xml"&gt;Luca Bolognese (Lead PM, C# Team) on "What's New in the May LINQ Preview"&lt;/a&gt;  &lt;li&gt;&lt;a href="http://wm.microsoft.com/ms/msdn/visualcsharp/MVP_2006_09/DJ%20and%20Karen.wmv"&gt;C# PM's Karen Liu and DJ Park on the C# IDE, LAF, and support for LINQ.&lt;/a&gt;  &lt;li&gt;&lt;a href="http://wm.microsoft.com/ms/msdn/visualcsharp/wes_dyer_2007_01/WesDyer_0002.wmv"&gt;An Interview with Wes Dyer&lt;/a&gt;&amp;nbsp;(&lt;a href="http://download.microsoft.com/download/4/c/a/4cafaeb6-30aa-42f4-bae9-cd1a92e9789d/WesDyer_0002.zip"&gt;Download&lt;/a&gt;)  &lt;li&gt;&lt;a href="http://wm.microsoft.com/ms/msdn/visualcsharp/pm_raj/pm_raj_02.wmv"&gt;Raj Pai, C# GPM, on the C# Team&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Here are some specs to review:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;a href="http://download.microsoft.com/download/8/0/a/80a9e7ba-420a-40b4-8797-5086e40ed23b/OrcasFormatting.doc"&gt;Formatting Code in Orcas&lt;/a&gt;  &lt;li&gt;&lt;a href="http://download.microsoft.com/download/b/8/c/b8c91b0b-6da2-4708-92c7-5b1a7acfe0a3/DLinq%20Data%20Types%20and%20Functions.doc"&gt;DLINQ Data Types and Functions&lt;/a&gt;  &lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=5509134"&gt;Mapping Draft Specification&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.msdn.com/charlie/archive/2007/03/01/february-ctp-now-available.aspx"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.msdn.com/charlie/archive/2007/03/01/february-ctp-now-available.aspx" border="0"&gt;&lt;/a&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1776449" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/charlie/archive/tags/CSharp/default.aspx">CSharp</category><category domain="http://blogs.msdn.com/charlie/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://blogs.msdn.com/charlie/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/charlie/archive/tags/Samples/default.aspx">Samples</category></item><item><title>CSharp Samples</title><link>http://blogs.msdn.com/charlie/archive/2007/02/14/csharp-samples.aspx</link><pubDate>Wed, 14 Feb 2007 03:38:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1672292</guid><dc:creator>Charlie Calvert</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/charlie/comments/1672292.aspx</comments><wfw:commentRss>http://blogs.msdn.com/charlie/commentrss.aspx?PostID=1672292</wfw:commentRss><description>&lt;p&gt;I've&amp;nbsp;become the default manager for the samples that ship with the various Orcas CTP's and upcoming betas. As a result, I'm going to start a new category here on my blog where I can share information about these samples. It is quite likely that we will need to post updates to the Orcas samples during the CTP and Beta cycles. If that happens, the updates or links to the updates will appear here on my blog. To keep informed about the Orcas samples simply subscribe to the Samples RSS feed by using the links on the edges of this blog, or else come back here regularly and look for updates.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1672292" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/charlie/archive/tags/CSharp/default.aspx">CSharp</category><category domain="http://blogs.msdn.com/charlie/archive/tags/Samples/default.aspx">Samples</category></item></channel></rss>