<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>.NET</title>
        <link>http://geekswithblogs.net/scottkuhl/category/2570.aspx</link>
        <description>Articles, links and whitepapers that reference useful code samples.</description>
        <language>en-US</language>
        <copyright>Scott Kuhl</copyright>
        <managingEditor>scott@kuhl.ws</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Windows Live Tools for Visual Studio</title>
            <link>http://geekswithblogs.net/scottkuhl/archive/2007/09/21/Windows-Live-Tools-for-Visual-Studio.aspx</link>
            <description>&lt;p&gt;Microsoft is releasing a Windows Live toolkit for Visual Studio into beta in the next couple of months.  Think it will help adoption?&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.infoworld.com/article/07/09/17/Microsoft-to-integrate-Windows-Live-tools-into-Visual-Studio_1.html"&gt;Microsoft to integrate Windows Live tools into Visual Studio&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115506"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115506" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/scottkuhl/aggbug/115506.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Kuhl</dc:creator>
            <guid>http://geekswithblogs.net/scottkuhl/archive/2007/09/21/Windows-Live-Tools-for-Visual-Studio.aspx</guid>
            <pubDate>Fri, 21 Sep 2007 19:13:09 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/scottkuhl/comments/115506.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/scottkuhl/archive/2007/09/21/Windows-Live-Tools-for-Visual-Studio.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/scottkuhl/comments/commentRss/115506.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/scottkuhl/services/trackbacks/115506.aspx</trackback:ping>
        </item>
        <item>
            <title>Code Snippet Manager Missing</title>
            <link>http://geekswithblogs.net/scottkuhl/archive/2007/08/30/Code-Snippet-Manager-Missing.aspx</link>
            <description>&lt;p&gt;By default the Code Snippet Manager in Visual Studio 2005 should appear directly under the Tools menu.&lt;/p&gt; &lt;p&gt;This is the second install I have noticed that it wasn't there.  Not sure what the combination is that is keeping it from being there by default, but if this happens to you restoring it is simple.&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Go to Tools -&amp;gt; Customize&lt;/li&gt; &lt;li&gt;Select the Commands tab&lt;/li&gt; &lt;li&gt;Select Tools&lt;/li&gt; &lt;li&gt;Drag the Code Snippets Manager.. from Command up to the Tools menu.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115074"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115074" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/scottkuhl/aggbug/115074.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Kuhl</dc:creator>
            <guid>http://geekswithblogs.net/scottkuhl/archive/2007/08/30/Code-Snippet-Manager-Missing.aspx</guid>
            <pubDate>Thu, 30 Aug 2007 15:30:30 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/scottkuhl/comments/115074.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/scottkuhl/archive/2007/08/30/Code-Snippet-Manager-Missing.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/scottkuhl/comments/commentRss/115074.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/scottkuhl/services/trackbacks/115074.aspx</trackback:ping>
        </item>
        <item>
            <title>25 Most Active Open Source Projects at Microsoft's CodePlex</title>
            <link>http://geekswithblogs.net/scottkuhl/archive/2007/08/23/25-Most-Active-Open-Source-Projects-at-Microsofts-CodePlex.aspx</link>
            <description>&lt;p&gt;eWeek has put together a nice slide show, including screen shots, of the &lt;a href="http://www.eweek.com/slideshow/0,1206,l=&amp;amp;s=&amp;amp;a=213883,00.asp?kc=EWKNLEDP082307A"&gt;top 25 projects on CodePlex based on activity&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;This would be a nice feature for CodePlex to browse based on screen shots or other project contributed images instead of just a list mode.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114920"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114920" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/scottkuhl/aggbug/114920.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Kuhl</dc:creator>
            <guid>http://geekswithblogs.net/scottkuhl/archive/2007/08/23/25-Most-Active-Open-Source-Projects-at-Microsofts-CodePlex.aspx</guid>
            <pubDate>Thu, 23 Aug 2007 16:18:43 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/scottkuhl/comments/114920.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/scottkuhl/archive/2007/08/23/25-Most-Active-Open-Source-Projects-at-Microsofts-CodePlex.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/scottkuhl/comments/commentRss/114920.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/scottkuhl/services/trackbacks/114920.aspx</trackback:ping>
        </item>
        <item>
            <title>The .NET Show's Final Episode</title>
            <link>http://geekswithblogs.net/scottkuhl/archive/2007/08/15/The-.NET-Shows-Final-Episode.aspx</link>
            <description>&lt;p&gt;I'll assume many of you reading this at least know what &lt;a href="http://msdn.microsoft.com/theshow/"&gt;The .NET Show&lt;/a&gt; is.  Well, after 7 years its over.  Their &lt;a href="http://blogs.msdn.com/theshow/archive/2007/08/14/the-net-show-the-final-episode-silverlight.aspx"&gt;announcement&lt;/a&gt; post doesn't really explain why.  Ratings?&lt;/p&gt; &lt;p&gt;I never understood why this show didn't transition into a podcast.  You always had to go download each episode manually.  Or did I just miss something.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114692"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114692" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/scottkuhl/aggbug/114692.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Kuhl</dc:creator>
            <guid>http://geekswithblogs.net/scottkuhl/archive/2007/08/15/The-.NET-Shows-Final-Episode.aspx</guid>
            <pubDate>Wed, 15 Aug 2007 15:05:18 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/scottkuhl/comments/114692.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/scottkuhl/archive/2007/08/15/The-.NET-Shows-Final-Episode.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/scottkuhl/comments/commentRss/114692.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/scottkuhl/services/trackbacks/114692.aspx</trackback:ping>
        </item>
        <item>
            <title>Visual Studio 2005 Collapse All Macro</title>
            <link>http://geekswithblogs.net/scottkuhl/archive/2007/04/09/111195.aspx</link>
            <description>&lt;p&gt;Visual Studio has this annoying habit of expanding the solution folder tree, especially when synchronizing with Visual SourceSafe.&amp;nbsp; Even without that problem I sometimes find myself with many expanded tree nodes in the Solution Explorer and I want a quick way to collapse them all.&lt;/p&gt; &lt;p&gt;So I searched for a macro based solution to the problem and came up with the &lt;a href="http://www.cptloadtest.com/?p=56"&gt;VS.Net Macro: Collapse All&lt;/a&gt; from Captain LoadTest.&amp;nbsp;&amp;nbsp;This macro was not designed to&amp;nbsp;collapse a non-expanded folder's sub items.&amp;nbsp; So I made a few quick changes to get the macro to walk the entire tree and collapse every item that was expanded.&lt;/p&gt; &lt;p&gt;But is was not working.&amp;nbsp; Some items just were not collapsing, so I ended up with more items expanded than when I started because Visual Studio will expand the items while you walk the tree.&amp;nbsp; It turns out I ran into a &lt;a href="http://www.mztools.com/Articles/2006/MZ023.htm"&gt;bug in Visual Studio 2005&lt;/a&gt;&amp;nbsp;that should have been fixed in SP1 and that was &lt;a href="http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=114597"&gt;marked as fixed by Microsoft&lt;/a&gt;, but still is not fixed.&amp;nbsp; Carlos J. Quintero mentioned a work-around in a Microsoft forum that seems to do the job.&lt;/p&gt; &lt;p&gt;The code to collapse everything does take longer to run (10 seconds across a very large solution, compared to 1 second with the original script) but it does work now.&lt;/p&gt; &lt;p&gt;So now that everything is working here is the code:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre class="csharpcode"&gt;    &lt;span class="kwrd"&gt;Sub&lt;/span&gt; CollapseAll()

        &lt;span class="rem"&gt;' Get the the Solution Explorer tree&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; solutionExplorer &lt;span class="kwrd"&gt;As&lt;/span&gt; UIHierarchy
        solutionExplorer = DTE.Windows.Item(Constants.vsext_wk_SProjectWindow).&lt;span class="kwrd"&gt;Object&lt;/span&gt;()

        &lt;span class="rem"&gt;' Check if there is any open solution&lt;/span&gt;
        &lt;span class="kwrd"&gt;If&lt;/span&gt; (solutionExplorer.UIHierarchyItems.Count = 0) &lt;span class="kwrd"&gt;Then&lt;/span&gt;
            &lt;span class="kwrd"&gt;Return&lt;/span&gt;
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;

        &lt;span class="rem"&gt;' Get the top node (the name of the solution)&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; rootNode &lt;span class="kwrd"&gt;As&lt;/span&gt; UIHierarchyItem = solutionExplorer.UIHierarchyItems.Item(1)
        rootNode.DTE.SuppressUI = &lt;span class="kwrd"&gt;True&lt;/span&gt;

        &lt;span class="rem"&gt;' Collapse each project node&lt;/span&gt;
        Collapse(rootNode, solutionExplorer)

        &lt;span class="rem"&gt;' Select the solution node, or else when you click &lt;/span&gt;
        &lt;span class="rem"&gt;' on the solution window&lt;/span&gt;
        &lt;span class="rem"&gt;' scrollbar, it will synchronize the open document &lt;/span&gt;
        &lt;span class="rem"&gt;' with the tree and pop&lt;/span&gt;
        &lt;span class="rem"&gt;' out the corresponding node which is probably not what you want.&lt;/span&gt;

        rootNode.&lt;span class="kwrd"&gt;Select&lt;/span&gt;(vsUISelectionType.vsUISelectionTypeSelect)
        rootNode.DTE.SuppressUI = &lt;span class="kwrd"&gt;False&lt;/span&gt;

    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;

    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Collapse(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; item &lt;span class="kwrd"&gt;As&lt;/span&gt; UIHierarchyItem, &lt;span class="kwrd"&gt;ByRef&lt;/span&gt; solutionExplorer &lt;span class="kwrd"&gt;As&lt;/span&gt; UIHierarchy)

        &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; innerItem &lt;span class="kwrd"&gt;As&lt;/span&gt; UIHierarchyItem &lt;span class="kwrd"&gt;In&lt;/span&gt; item.UIHierarchyItems
            &lt;span class="kwrd"&gt;If&lt;/span&gt; innerItem.UIHierarchyItems.Count &amp;gt; 0 &lt;span class="kwrd"&gt;Then&lt;/span&gt;

                &lt;span class="rem"&gt;' Re-cursive call&lt;/span&gt;
                Collapse(innerItem, solutionExplorer)

                &lt;span class="rem"&gt;' Collapse&lt;/span&gt;
                &lt;span class="kwrd"&gt;If&lt;/span&gt; innerItem.UIHierarchyItems.Expanded &lt;span class="kwrd"&gt;Then&lt;/span&gt;
                    innerItem.UIHierarchyItems.Expanded = &lt;span class="kwrd"&gt;False&lt;/span&gt;
                    &lt;span class="kwrd"&gt;If&lt;/span&gt; innerItem.UIHierarchyItems.Expanded = &lt;span class="kwrd"&gt;True&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;
                        &lt;span class="rem"&gt;' Bug in VS 2005&lt;/span&gt;
                        innerItem.&lt;span class="kwrd"&gt;Select&lt;/span&gt;(vsUISelectionType.vsUISelectionTypeSelect)
                        solutionExplorer.DoDefaultAction()
                    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
                &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;

            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
        &lt;span class="kwrd"&gt;Next&lt;/span&gt;

    &lt;span class="kwrd"&gt;End&lt;/span&gt; Sub&lt;/pre&gt;
&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;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111195"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111195" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/scottkuhl/aggbug/111195.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Kuhl</dc:creator>
            <guid>http://geekswithblogs.net/scottkuhl/archive/2007/04/09/111195.aspx</guid>
            <pubDate>Mon, 09 Apr 2007 22:43:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/scottkuhl/comments/111195.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/scottkuhl/archive/2007/04/09/111195.aspx#feedback</comments>
            <slash:comments>20</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/scottkuhl/comments/commentRss/111195.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/scottkuhl/services/trackbacks/111195.aspx</trackback:ping>
        </item>
        <item>
            <title>Enterprise Library 3</title>
            <link>http://geekswithblogs.net/scottkuhl/archive/2007/04/09/111180.aspx</link>
            <description>&lt;p&gt;Microsoft's &lt;a href="http://msdn2.microsoft.com/en-us/library/aa480453.aspx"&gt;Enterprise Library version 3&lt;/a&gt; is now available.&amp;nbsp; The two big new features are:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;Validation Application Block&lt;/strong&gt; - Developers can use this application block to create validation rules for business objects that can be used across different layers of their applications.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Policy Injection Application Block&lt;/strong&gt; - Developers can use this application block to implement interception policies that can be used to streamline the implementation of common features, such as logging, caching, exception handling, and validation, across an application.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111180"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111180" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/scottkuhl/aggbug/111180.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Kuhl</dc:creator>
            <guid>http://geekswithblogs.net/scottkuhl/archive/2007/04/09/111180.aspx</guid>
            <pubDate>Mon, 09 Apr 2007 20:11:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/scottkuhl/comments/111180.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/scottkuhl/archive/2007/04/09/111180.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/scottkuhl/comments/commentRss/111180.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/scottkuhl/services/trackbacks/111180.aspx</trackback:ping>
        </item>
        <item>
            <title>Designing .NET Class Libraries - Video</title>
            <link>http://geekswithblogs.net/scottkuhl/archive/2007/04/02/110578.aspx</link>
            <description>&lt;p&gt;The research channel has a 3.5 hour video on designing .NET class libraries by Krzysztof Cwalina the program manager for the .NET Framework team.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;This class presents best practices for designing frameworks that are reusable object-oriented libraries. The guidelines are applicable to frameworks ranging in size and in their scale of reuse from large system frameworks to small components shared among several applications. They started as a small set of naming and design conventions, but have been enhanced, scrutinized, and refined to a point where they are generally considered the canonical way to design frameworks at Microsoft. They carry the experience and cumulative wisdom of thousands of developer hours, over three versions of the .NET Framework.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;a href="http://www.researchchannel.org/prog/displayevent.aspx?rID=11087&amp;amp;fID=2740"&gt;Watch MSR Technical Education Series: Designing .NET Class Libraries&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Via &lt;a href="http://coolthingoftheday.blogspot.com/2007/03/research-channel-three-hour-video-on.html"&gt;Greg's Cool [Insert Clevel Name] of the Day&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=110578"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=110578" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/scottkuhl/aggbug/110578.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Kuhl</dc:creator>
            <guid>http://geekswithblogs.net/scottkuhl/archive/2007/04/02/110578.aspx</guid>
            <pubDate>Mon, 02 Apr 2007 18:58:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/scottkuhl/comments/110578.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/scottkuhl/archive/2007/04/02/110578.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/scottkuhl/comments/commentRss/110578.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/scottkuhl/services/trackbacks/110578.aspx</trackback:ping>
        </item>
        <item>
            <title>Run .NET code from a Vista Sidebar Gadget</title>
            <link>http://geekswithblogs.net/scottkuhl/archive/2007/03/12/108556.aspx</link>
            <description>&lt;p&gt;This article show how to create a self registering COM interop layer for your .NET code that can be called from JavaScript in a Vista Sidebar gadget.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.codeproject.com/gadgets/GadgetInterop.asp"&gt;Read .NET Interop for Gadgets&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=108556"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=108556" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/scottkuhl/aggbug/108556.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Kuhl</dc:creator>
            <guid>http://geekswithblogs.net/scottkuhl/archive/2007/03/12/108556.aspx</guid>
            <pubDate>Mon, 12 Mar 2007 19:43:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/scottkuhl/comments/108556.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/scottkuhl/archive/2007/03/12/108556.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/scottkuhl/comments/commentRss/108556.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/scottkuhl/services/trackbacks/108556.aspx</trackback:ping>
        </item>
        <item>
            <title>New Microsoft Developer Site for Beginners</title>
            <link>http://geekswithblogs.net/scottkuhl/archive/2007/03/02/107771.aspx</link>
            <description>&lt;p&gt;Microsoft has launched a new site, &lt;a href="http://msdn.microsoft.com/vstudio/express/beginner/"&gt;Beginner Developer Learning Center&lt;/a&gt;.&amp;nbsp; This adds to, but does not replace, the &lt;a href="http://msdn.microsoft.com/vstudio/express/"&gt;Express sites&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/coding4fun/"&gt;Coding4Fun&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Much of the content seems to be copied from other Microsoft sources.&amp;nbsp; However it has been put together in a very clear, step-by-step, learning path to get started.&amp;nbsp; Overall, it looks like Microsoft has done a good job organizing the information.&lt;/p&gt; &lt;p&gt;&lt;img src="http://athena.divshare.com/files/2007/03/02/179556/express.jpg"&gt; &lt;/p&gt; &lt;p&gt;Their target audience, if you judge by the photos, would&amp;nbsp;seem to be kids.&amp;nbsp; And this will probably turn some people away since the content is not aimed at kids, with the exception of&amp;nbsp;a link on the page to a Kid's Corner.&amp;nbsp; When I clicked on it I expected to be greeted with toddler's in diapers coding away.&amp;nbsp; What you get are pictures of the same kids.&amp;nbsp; Microsoft needs to change this.&amp;nbsp; At least use high-school kids outside the Kid's Corner.&lt;/p&gt; &lt;p&gt;The only real gripe I have is that is stops short of any deeper learning and doesn't give further direction.&amp;nbsp; But according to the start page you don't need any.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Here you'll find a rich array of learning content that starts with the very basics, and guides you through step-by-step to becoming a fully-fledged developer!&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Fully-fledged developer?&amp;nbsp; So Microsoft, you would hire someone based on completing this information?&lt;/p&gt; &lt;p&gt;&lt;em&gt;(If you want to go a little deeper in web development, check out my previous post on &lt;/em&gt;&lt;a href="http://geekswithblogs.net/scottkuhl/archive/2007/02/16/106520.aspx"&gt;&lt;em&gt;learning to program ASP.NET&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.)&lt;/em&gt;&lt;/p&gt; &lt;p&gt;As a side note, the Express sites have also had a re-work to now include information by topic: Windows, Web, Game and Hardware.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=107771"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=107771" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/scottkuhl/aggbug/107771.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Kuhl</dc:creator>
            <guid>http://geekswithblogs.net/scottkuhl/archive/2007/03/02/107771.aspx</guid>
            <pubDate>Fri, 02 Mar 2007 19:20:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/scottkuhl/comments/107771.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/scottkuhl/archive/2007/03/02/107771.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/scottkuhl/comments/commentRss/107771.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/scottkuhl/services/trackbacks/107771.aspx</trackback:ping>
        </item>
        <item>
            <title>5 .NET Podcasts</title>
            <link>http://geekswithblogs.net/scottkuhl/archive/2007/02/28/107538.aspx</link>
            <description>&lt;p&gt;I found a post by Sean Deasy that lists the 5 podcasts every developer should listen to:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;a href="http://www.hanselminutes.com/"&gt;Hanselminutes&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.dotnetrocks.com/"&gt;.NET Rocks!&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.skyscrapr.net/blogs/arcasts/"&gt;ArCast&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.polymorphicpodcast.com/"&gt;Polymorphic Podcast&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://aspnetpodcast.com/CS11/"&gt;ASP.NET Podcast&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Here is what I think of each of them.&lt;/p&gt; &lt;p&gt;Hanselminutes is tied with .NET Rocks for the best of the bunch.&amp;nbsp; Scott Hanselman covers interesting topics, not always related to .NET, that are short and to the point.&amp;nbsp; I think the show would flow a little better with Carl Franklin.&lt;/p&gt; &lt;p&gt;.NET Rocks has the best guests and usually covers interesting topics.&amp;nbsp; It's downside is that is can be very long (min 1 hour).&amp;nbsp; The show also has some major cheese factor.&amp;nbsp; Carl seems a little arrogant at times&amp;nbsp;and sometimes not very interested.&amp;nbsp; Richard is an Ed McMahon style suck-up sidekick even down to the over-the-top intros.&amp;nbsp; The music is produced by Carl Franklin's band and is awful.&amp;nbsp; They also make a point of almost exclusively reading e-mails from listeners congratulating themselves on a good show.&amp;nbsp; But hey, it's about the content right?&amp;nbsp; Skip the first 5 minutes and the last 5 minutes and the podcast is excellent.&lt;/p&gt; &lt;p&gt;ArCast is architecture centered and seems to have gotten quite boring lately.&amp;nbsp; I still subscribe but skip listening to most of shows, while I wait for a good topic to pop up.&lt;/p&gt; &lt;p&gt;I have never listened to Polymorphic, I'll have to check that one out.&lt;/p&gt; &lt;p&gt;ASP.NET podcast is more hard core coding than the rest.&amp;nbsp; Think of this more like training than roundtable discussion.&lt;/p&gt; &lt;p&gt;You'll notice the &lt;a href="http://www.podcaststudio.net/"&gt;GWB podcast&lt;/a&gt; isn't in here.&amp;nbsp; There hasn't been a new episode since December 2005 and I'm not sure there will be any more.&amp;nbsp; But Jeff can answer that question better.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=107538"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=107538" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/scottkuhl/aggbug/107538.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Kuhl</dc:creator>
            <guid>http://geekswithblogs.net/scottkuhl/archive/2007/02/28/107538.aspx</guid>
            <pubDate>Wed, 28 Feb 2007 19:47:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/scottkuhl/comments/107538.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/scottkuhl/archive/2007/02/28/107538.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/scottkuhl/comments/commentRss/107538.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/scottkuhl/services/trackbacks/107538.aspx</trackback:ping>
        </item>
    </channel>
</rss>