<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>Brian Schroer</title>
        <link>http://geekswithblogs.net/brians/Default.aspx</link>
        <description>Don't Call Me Mort!</description>
        <language>en-US</language>
        <copyright>Brian Schroer</copyright>
        <managingEditor>brianschroer@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>Brian Schroer</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/brians/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>The origin of the names &amp;quot;IronPython&amp;quot; and &amp;quot;IronRuby&amp;quot;</title>
            <link>http://geekswithblogs.net/brians/archive/2008/06/14/122861.aspx</link>
            <description>&lt;p&gt;I &lt;a href="http://geekswithblogs.net/brians/archive/2007/08/04/114397.aspx" target="_blank"&gt;wondered a while ago&lt;/a&gt; where the "Iron" names came from.&lt;/p&gt;  &lt;p&gt;According to a &lt;a href="http://www.nxtgenug.net/Interview.aspx?InterviewID=253" target="_blank"&gt;NxtGenUG interview with Michael Foord&lt;/a&gt;, John Lam says that IRON can be reverse-engineered to stand for "It Runs On .Net", which is cool, but I finally found the real story in an &lt;a href="http://port25.technet.com/archive/2006/06/01/2565.aspx" target="_blank"&gt;interview on the "Port 25: The Open Source Community at Microsoft" site&lt;/a&gt;, in which IronPython creator Jim Hugunin says:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;I'll give you the story, but I'll give you the short version 'cause it's not very good. &lt;/p&gt;    &lt;p&gt;At the time, I had a consulting company called "Want of a Nail Software". "Want of a Nail" is based on a children's poem. It's about the importance of small things. I've always kind of believed in the importance of small things. Part of the story of IronPython's actual performance is it wasn't one big thing - Everybody wants to know "What was the one big thing?" There were some big things, but most of it was all the small things - paying attention to performance in every place. &lt;/p&gt;    &lt;p&gt;So, that was the consulting company and "Iron" seemed to match. &lt;/p&gt;    &lt;p&gt;There were some obvious names: Python.Net, Python#, nPython - All of those were taken. All of the URLs for those were registered. &lt;/p&gt;    &lt;p&gt;I didn't want to reuse any of those names, so "Iron" was just kind of a name that appealed to me at a visceral level - I like the feeling of "IronPython". &lt;/p&gt;    &lt;p&gt;There's a little bit of "Iron Chef" in it, although I'm always reluctant to admit that.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;About the "Python" part: According to &lt;a href="http://en.wikipedia.org/wiki/Python_(programming_language)" target="_blank"&gt;the Wikipedia article on Python&lt;/a&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;An important goal of the Python developers is making Python fun to use. This is reflected in the origin of the name (based on the television series Monty Python's Flying Circus), in the common practice of using Monty Python references in example code, and in an occasionally playful approach to tutorials and reference materials. For example, the metasyntactic variables often used in Python literature are "spam" and "eggs", instead of the traditional "foo" and "bar".&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;...and &lt;a href="http://en.wikipedia.org/wiki/Ruby_(programming_language)" target="_blank"&gt;Wikipedia says this about the name "Ruby"&lt;/a&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;"Ruby" was named as a gemstone because of a joke within Matsumoto's circle of friends alluding to the name of the Perl programming language.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;...which led me to the &lt;a href="http://en.wikipedia.org/wiki/Perl" target="_blank"&gt;Perl article&lt;/a&gt;, where I discovered that it was originally named "Pearl".&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;I think I'll stop now before I digress into a rant about how "C#" is a cool name but J# and X# were doomed to failure not for technical reasons, but for musical ones (unless Microsoft has a much larger piano keyboard than I do).&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122861"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122861" 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/brians/aggbug/122861.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2008/06/14/122861.aspx</guid>
            <pubDate>Sat, 14 Jun 2008 14:08:33 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/122861.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2008/06/14/122861.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/122861.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/122861.aspx</trackback:ping>
        </item>
        <item>
            <title>.NET Rocks! - 423 hours and counting...</title>
            <category>.NET</category>
            <link>http://geekswithblogs.net/brians/archive/2008/06/12/122827.aspx</link>
            <description>&lt;p&gt;Congratulations to Carl Franklin and Richard Campbell on the upcoming 350th episode of .NET Rocks!&lt;/p&gt;
&lt;p&gt; I can't tell you how many hours of education &amp;amp; enjoyment DNR has provided me over the years.&lt;/p&gt;
&lt;p&gt; ...Well, actually, I can...&lt;/p&gt;
&lt;p&gt; I discovered the show around episode 10 or so, quickly caught up with the previous shows, and haven't missed one since.&lt;/p&gt;
&lt;p&gt; I added up the show runtimes, and the total is approximately 423 hours, or almost 18 days! &lt;/p&gt;
&lt;p&gt; A lot of people listen to DNR on their commute, and there's enough DNR that you could listen to it the entire time on a 27,000 mile road trip from Vancouver BC to New London CT and back by way of San Diego, Miami, New York City, Bangor, Yakima, Reno, Vegas, and St. Louis. &lt;/p&gt;
&lt;p&gt;(Here's the map, if anyone would like to make that trip - Good luck paying for the gas: &lt;a style="FONT-WEIGHT: bold" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank" href="http://shrinkster.com/z6h"&gt;http://shrinkster.com/z6h&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt; &lt;img height="383" width="640" alt="" src="/images/geekswithblogs_net/brians/3864/r_DNRTrip.jpg" /&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122827"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122827" 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/brians/aggbug/122827.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2008/06/12/122827.aspx</guid>
            <pubDate>Thu, 12 Jun 2008 18:16:19 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/122827.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2008/06/12/122827.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/122827.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/122827.aspx</trackback:ping>
        </item>
        <item>
            <title>Tech&amp;middot;Ed: What to Expect</title>
            <category>Tech·Ed</category>
            <link>http://geekswithblogs.net/brians/archive/2008/06/08/122702.aspx</link>
            <description>&lt;p&gt;I found &lt;a href="http://geekswithblogs.net/sdorman/archive/2008/02/25/techmiddoted-for-novices-2008-edition.aspx" target="_blank"&gt;Scott Dorman's "Tech·Ed For Novices"&lt;/a&gt; post very helpful when planning for Tech·Ed Developers, and wanted to add some tips of my own before I forget what I learned last week. I hope you find them useful if you're going to IT Pros week, or if you're googling next year about planning for Tech·Ed 2009:&lt;/p&gt;  &lt;h3&gt;Interactive Theater: Get There Early&lt;/h3&gt;  &lt;p&gt;Scott advised to get there early for Interactive Theater sessions because they fill up quickly. They fill up &lt;em&gt;very&lt;/em&gt; quickly. I arrived at 1:30 for a 1:45 Ron Jacobs session to find that the room was already overflowing with people, and the session had already started (Hey, if the room's full, why not?). &lt;/p&gt;  &lt;p&gt;The back walls of the theaters are glass, so I hope in the future they'll consider piping the sound to speakers outside the room, so those who couldn't get in can still hear.&lt;/p&gt;  &lt;h3&gt;Don't Expect To Lounge at the "Wireless Lounge"&lt;/h3&gt;  &lt;p&gt;...unless your idea of "lounging" is standing in front of a small round table. (It does have plenty of places to plug in, though). If you want to sit down and use your laptop after breakfast and before the sessions start and the Technical Learning Center (TLC) opens, your choices are: staying at the breakfast table, sitting on the floor, or the "Blogger's Lounge", which is not very "loungy" either, but at least it has chairs.&lt;/p&gt;  &lt;h3&gt;Breakfast &amp;amp; Lunch&lt;/h3&gt;  &lt;p&gt;The food was... OK. You can get it "to go" if you want to take it to a lunch session, but the "to-go boxes" weren't on all of the buffet tables. You may have to ask someone to help you find one.&lt;/p&gt;  &lt;h3&gt;Don't Be Afraid to Talk to the "Celebrities"&lt;/h3&gt; The Microsoft people and the speakers are there to help you. I asked some pretty stupid questions, and nobody told me to buzz off. I'm a pretty shy guy, but I talked to some big names: Carl Franklin, Richard Campbell, Mark Dunn (guess what's my favorite podcast), Ron Jacobs, Udi Dihan, Daniel Moth, Ron Jacobs, Scott Cate, Glenn Block... and nobody told me to buzz off.  &lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122702"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122702" 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/brians/aggbug/122702.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2008/06/08/122702.aspx</guid>
            <pubDate>Sun, 08 Jun 2008 13:34:20 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/122702.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2008/06/08/122702.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/122702.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/122702.aspx</trackback:ping>
        </item>
        <item>
            <title>&amp;quot;Pimp My IDE&amp;quot;: 101 Visual Studio tips, tricks, and add-ins</title>
            <link>http://geekswithblogs.net/brians/archive/2008/05/12/122087.aspx</link>
            <description>&lt;p&gt;Here are the links from my May 12, 2008 presentation at the St. Louis C# User Group:&lt;/p&gt;  &lt;table border="1"&gt;&lt;tbody&gt;     &lt;tr valign="top"&gt;       &lt;td&gt;1.&lt;/td&gt;        &lt;td&gt;VS 2008 Product Comparison&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XH1"&gt;http://shrinkster.com/XH1&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;2.&lt;/td&gt;        &lt;td&gt;Change startup options&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XYD"&gt;http://shrinkster.com/XYD&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;3.&lt;/td&gt;        &lt;td&gt;Change home page&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XYD"&gt;http://shrinkster.com/XYD&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;4.&lt;/td&gt;        &lt;td&gt;LINQPad&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XGZ"&gt;http://shrinkster.com/XGZ&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;5.&lt;/td&gt;        &lt;td&gt;Importing/Exporting Settings&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XZJ"&gt;http://shrinkster.com/XZJ&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;6.&lt;/td&gt;        &lt;td&gt;Consolas font on Windows XP&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XQ7"&gt;http://shrinkster.com/XQ7&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;7.&lt;/td&gt;        &lt;td&gt;Tab groups (code editor windows)&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XZK"&gt;http://shrinkster.com/XZK&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;8.&lt;/td&gt;        &lt;td&gt;line numbering&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XZK"&gt;http://shrinkster.com/XZK&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;9.&lt;/td&gt;        &lt;td&gt;Navigate forward (Ctrl-minus) and backward (Ctrl-plus)&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XM8"&gt;http://shrinkster.com/XM8&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;10.&lt;/td&gt;        &lt;td&gt;Incremental Search: Ctrl-I&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XHC"&gt;http://shrinkster.com/XHC&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;11.&lt;/td&gt;        &lt;td&gt;Ctrl-Tab to select from open windows&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XPW"&gt;http://shrinkster.com/XPW&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;12.&lt;/td&gt;        &lt;td&gt;Type-ahead in Solution Explorer&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XQ4"&gt;http://shrinkster.com/XQ4&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;13.&lt;/td&gt;        &lt;td&gt;Flat Solution Explorer&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XWK"&gt;http://shrinkster.com/XWK&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;14.&lt;/td&gt;        &lt;td&gt;Sonic File Finder&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XR3"&gt;http://shrinkster.com/XR3&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;15.&lt;/td&gt;        &lt;td&gt;Source Code Outliner&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XWJ"&gt;http://shrinkster.com/XWJ&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;16.&lt;/td&gt;        &lt;td&gt;Document Outline&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XR7"&gt;http://shrinkster.com/XR7&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;17.&lt;/td&gt;        &lt;td&gt;Hide Solution Folders&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XQ3"&gt;http://shrinkster.com/XQ3&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;18.&lt;/td&gt;        &lt;td&gt;PowerCommands for Visual Studio 2008: Clear All Panes&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/WI3"&gt;http://shrinkster.com/WI3&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;19.&lt;/td&gt;        &lt;td&gt;PowerCommands for Visual Studio 2008: Show All Files&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/WI3"&gt;http://shrinkster.com/WI3&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;20.&lt;/td&gt;        &lt;td&gt;PowerCommands for Visual Studio 2008: Undo Close&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/WI3"&gt;http://shrinkster.com/WI3&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;21.&lt;/td&gt;        &lt;td&gt;PowerCommands for Visual Studio 2008: Open Containing Folder&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/WI3"&gt;http://shrinkster.com/WI3&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;22.&lt;/td&gt;        &lt;td&gt;Open in HTML view instead of designer: Tools | Options | HTML Designer | Start pages in…&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XZL"&gt;http://shrinkster.com/XZL&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;23.&lt;/td&gt;        &lt;td&gt;Editor Guidelines&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XH2"&gt;http://shrinkster.com/XH2&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;24.&lt;/td&gt;        &lt;td&gt;Select Block Text: Alt-Drag&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XHB"&gt;http://shrinkster.com/XHB&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;25.&lt;/td&gt;        &lt;td&gt;Hide Selection: Edit | Advanced | Hide Selection or Ctrl-M, Ctrl-H&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XIK"&gt;http://shrinkster.com/XIK&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;26.&lt;/td&gt;        &lt;td&gt;Select Entire String literal: Double-click to left of opening quote&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XWZ"&gt;http://shrinkster.com/XWZ&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;27.&lt;/td&gt;        &lt;td&gt;Ctrl-] - finds matching closing token: }, ), #endregion&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XX2"&gt;http://shrinkster.com/XX2&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;28.&lt;/td&gt;        &lt;td&gt;Convert to upper (Ctrl-Shift-U) or lower (Ctrl-U) case&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XQ8"&gt;http://shrinkster.com/XQ8&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;29.&lt;/td&gt;        &lt;td&gt;Multi-line Search And Replace&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XZ8"&gt;http://shrinkster.com/XZ8&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;30.&lt;/td&gt;        &lt;td&gt;Transpose: Ctrl-T (character), Ctrl-Shift-T (word), Alt-Shift-T (line)&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XIM"&gt;http://shrinkster.com/XIM&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;31.&lt;/td&gt;        &lt;td&gt;VS2008 C# Keyboard Shortcuts poster&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XPQ"&gt;http://shrinkster.com/XPQ&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;32.&lt;/td&gt;        &lt;td&gt;Visual Studio 2008 Keyboard Shortcuts Reference&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XYC"&gt;http://shrinkster.com/XYC&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;33.&lt;/td&gt;        &lt;td&gt;Keyboard Jedi&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XWL"&gt;http://shrinkster.com/XWL&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;34.&lt;/td&gt;        &lt;td&gt;Shift-F10 launches context menu (like right-click)&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XX3"&gt;http://shrinkster.com/XX3&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;35.&lt;/td&gt;        &lt;td&gt;Toggle between Designer (Shift-F7) and code-behind (F7)&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XPV"&gt;http://shrinkster.com/XPV&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;36.&lt;/td&gt;        &lt;td&gt;Tab to next (F8) / previous (Shift-F8) error&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XPY"&gt;http://shrinkster.com/XPY&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;37.&lt;/td&gt;        &lt;td&gt;Ctrl-F4 closes current document&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XQ5"&gt;http://shrinkster.com/XQ5&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;38.&lt;/td&gt;        &lt;td&gt;Ctrl-. (dot) shows "smart tags" (e.g. add Using)&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XY9"&gt;http://shrinkster.com/XY9&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;39.&lt;/td&gt;        &lt;td&gt;F12: Go to definition&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XYH"&gt;http://shrinkster.com/XYH&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;40.&lt;/td&gt;        &lt;td&gt;Shift-F12 = find all references&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XZL"&gt;http://shrinkster.com/XZL&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;41.&lt;/td&gt;        &lt;td&gt;Comment (Ctrl-K, Ctrl-C) / uncomment (Ctrl-K, Ctrl-U)&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XZK"&gt;http://shrinkster.com/XZK&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;42.&lt;/td&gt;        &lt;td&gt;Format document (Ctrl-K, Ctrl-D) or selection (Ctrl-K, Ctrl-F)&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XZK"&gt;http://shrinkster.com/XZK&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;43.&lt;/td&gt;        &lt;td&gt;Outlining: Collapse All (Ctrl-M, Ctrl-O) / Expand All (Ctrl-M, Ctrl-L)&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XZK"&gt;http://shrinkster.com/XZK&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;44.&lt;/td&gt;        &lt;td&gt;Ctrl-C, Ctrl-X, Ctrl-L, Shift-Delete without selection operate on the current line&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XWU"&gt;http://shrinkster.com/XWU&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;45.&lt;/td&gt;        &lt;td&gt;Drag/Drop code to Toolbox&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XH8"&gt;http://shrinkster.com/XH8&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;46.&lt;/td&gt;        &lt;td&gt;Clipboard Ring - Ctrl-Shift-V&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XHA"&gt;http://shrinkster.com/XHA&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;47.&lt;/td&gt;        &lt;td&gt;SmartPaster&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XR4"&gt;http://shrinkster.com/XR4&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;48.&lt;/td&gt;        &lt;td&gt;Code Snippets Manager&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XYW"&gt;http://shrinkster.com/XYW&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;49.&lt;/td&gt;        &lt;td&gt;Edit / Create snippets&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XYU"&gt;http://shrinkster.com/XYU&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;50.&lt;/td&gt;        &lt;td&gt;GotCodeSnippets.net&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XYV"&gt;http://shrinkster.com/XYV&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;51.&lt;/td&gt;        &lt;td&gt;"Export as Code Snippet" Add-In&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XYJ"&gt;http://shrinkster.com/XYJ&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;52.&lt;/td&gt;        &lt;td&gt;&amp;lt;code:keep&amp;gt;&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XZ4"&gt;http://shrinkster.com/XZ4&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;53.&lt;/td&gt;        &lt;td&gt;T4 Code Generation Templates&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XR2"&gt;http://shrinkster.com/XR2&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;54.&lt;/td&gt;        &lt;td&gt;T4 Editor&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XYT"&gt;http://shrinkster.com/XYT&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;55.&lt;/td&gt;        &lt;td&gt;PowerCommands for Visual Studio 2008: Transform Templates&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/WI3"&gt;http://shrinkster.com/WI3&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;56.&lt;/td&gt;        &lt;td&gt;Step into framework code&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XYP"&gt;http://shrinkster.com/XYP&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;57.&lt;/td&gt;        &lt;td&gt;DataTable visualizer&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/Y0A"&gt;http://shrinkster.com/Y0A&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;58.&lt;/td&gt;        &lt;td&gt;Mole&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/WI7"&gt;http://shrinkster.com/WI7&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;59.&lt;/td&gt;        &lt;td&gt;GhostDoc&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XH6"&gt;http://shrinkster.com/XH6&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;60.&lt;/td&gt;        &lt;td&gt;Sandcastle: msdn-style documentation builder&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XYZ"&gt;http://shrinkster.com/XYZ&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;61.&lt;/td&gt;        &lt;td&gt;Sandcastle Help File Builder: nDoc-style GUI&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XZ1"&gt;http://shrinkster.com/XZ1&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;62.&lt;/td&gt;        &lt;td&gt;Refactor! for ASP.NET: ASP.NET refactorings&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XM2"&gt;http://shrinkster.com/XM2&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;63.&lt;/td&gt;        &lt;td&gt;Refactor!: Extract Method&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XM2"&gt;http://shrinkster.com/XM2&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;64.&lt;/td&gt;        &lt;td&gt;Refactor!: Extract Property&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XM2"&gt;http://shrinkster.com/XM2&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;65.&lt;/td&gt;        &lt;td&gt;Refactor!: Introduce Constant&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XM2"&gt;http://shrinkster.com/XM2&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;66.&lt;/td&gt;        &lt;td&gt;Refactor!: Flatten Conditional&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XM2"&gt;http://shrinkster.com/XM2&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;67.&lt;/td&gt;        &lt;td&gt;Refactor!: Reverse Conditional&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XM2"&gt;http://shrinkster.com/XM2&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;68.&lt;/td&gt;        &lt;td&gt;Refactor!: Create Overload&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XM2"&gt;http://shrinkster.com/XM2&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;69.&lt;/td&gt;        &lt;td&gt;Refactor!: Reorder Parameters&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XM2"&gt;http://shrinkster.com/XM2&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;70.&lt;/td&gt;        &lt;td&gt;Refactor!: Encapsulate Field&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XM2"&gt;http://shrinkster.com/XM2&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;71.&lt;/td&gt;        &lt;td&gt;Ctrl-K, Ctrl-S = "surround with"&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XZL"&gt;http://shrinkster.com/XZL&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;72.&lt;/td&gt;        &lt;td&gt;PowerCommands for Visual Studio 2008: Remove and Sort Usings&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/WI3"&gt;http://shrinkster.com/WI3&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;73.&lt;/td&gt;        &lt;td&gt;PowerCommands for Visual Studio 2008: Format Document / Remove &amp;amp; Sort Usings on Save&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/WI3"&gt;http://shrinkster.com/WI3&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;74.&lt;/td&gt;        &lt;td&gt;PowerCommands for Visual Studio 2008: Copy / Paste Class&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/WI3"&gt;http://shrinkster.com/WI3&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;75.&lt;/td&gt;        &lt;td&gt;PowerCommands for Visual Studio 2008: Copy / Paste References&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/WI3"&gt;http://shrinkster.com/WI3&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;76.&lt;/td&gt;        &lt;td&gt;PowerCommands for Visual Studio 2008: Copy as Project Reference&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/WI3"&gt;http://shrinkster.com/WI3&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;77.&lt;/td&gt;        &lt;td&gt;Regionerate&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XQX"&gt;http://shrinkster.com/XQX&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;78.&lt;/td&gt;        &lt;td&gt;ClearRegions Macro&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XYX"&gt;http://shrinkster.com/XYX&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;79.&lt;/td&gt;        &lt;td&gt;Ctrl-Shift-R: Record Macro&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XZK"&gt;http://shrinkster.com/XZK&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;80.&lt;/td&gt;        &lt;td&gt;TestDriven.net&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XR1"&gt;http://shrinkster.com/XR1&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;81.&lt;/td&gt;        &lt;td&gt;NUnit For VS&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XM3"&gt;http://shrinkster.com/XM3&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;82.&lt;/td&gt;        &lt;td&gt;Go to Reflector - via TestDriven.net add-in&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XR1"&gt;http://shrinkster.com/XR1&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;83.&lt;/td&gt;        &lt;td&gt;Class Designer&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XYE"&gt;http://shrinkster.com/XYE&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;84.&lt;/td&gt;        &lt;td&gt;ModelingPowerToys: Layout toolbar enabled&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XYF"&gt;http://shrinkster.com/XYF&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;85.&lt;/td&gt;        &lt;td&gt;ModelingPowerToys: Floating property grid&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XYF"&gt;http://shrinkster.com/XYF&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;86.&lt;/td&gt;        &lt;td&gt;ModelingPowerToys: Ctrl-Alt-Drag&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XYF"&gt;http://shrinkster.com/XYF&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;87.&lt;/td&gt;        &lt;td&gt;ModelingPowerToys: Export as Image or HTML&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XYF"&gt;http://shrinkster.com/XYF&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;88.&lt;/td&gt;        &lt;td&gt;ModelingPowerToys: Filtering&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XYF"&gt;http://shrinkster.com/XYF&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;89.&lt;/td&gt;        &lt;td&gt;ModelingPowerToys: Thumbnail view&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XYF"&gt;http://shrinkster.com/XYF&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;90.&lt;/td&gt;        &lt;td&gt;StickyNotes&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XZB"&gt;http://shrinkster.com/XZB&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;91.&lt;/td&gt;        &lt;td&gt;Microsoft Robotics Studio&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XZC"&gt;http://shrinkster.com/XZC&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;92.&lt;/td&gt;        &lt;td&gt;XNA Game Studio&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XZ7"&gt;http://shrinkster.com/XZ7&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;93.&lt;/td&gt;        &lt;td&gt;PowerCommands for Visual Studio 2008: Email Code Snippet&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/WI3"&gt;http://shrinkster.com/WI3&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;94.&lt;/td&gt;        &lt;td&gt;ComponentOne IntelliSpell Community Edition&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XZ5"&gt;http://shrinkster.com/XZ5&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;95.&lt;/td&gt;        &lt;td&gt;OxyProject Metrics&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XZA"&gt;http://shrinkster.com/XZA&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;96.&lt;/td&gt;        &lt;td&gt;SlickEdit Gadgets&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XZ9"&gt;http://shrinkster.com/XZ9&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;97.&lt;/td&gt;        &lt;td&gt;Visual Studio Hacks: The Book&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XZ2"&gt;http://shrinkster.com/XZ2&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;98.&lt;/td&gt;        &lt;td&gt;Visual Studio Hacks: The web site&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XZ3"&gt;http://shrinkster.com/XZ3&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;99.&lt;/td&gt;        &lt;td&gt;Sara Ford\'s Tip of the Day&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XPX"&gt;http://shrinkster.com/XPX&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;VS2003&lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;100.&lt;/td&gt;        &lt;td&gt;Visual Studio 2008 Developer\'s Center&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XYA"&gt;http://shrinkster.com/XYA&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign="top"&gt;       &lt;td&gt;101.&lt;/td&gt;        &lt;td&gt;Visual Studio Gallery&lt;/td&gt;        &lt;td&gt;&lt;a href="http://shrinkster.com/XH5"&gt;http://shrinkster.com/XH5&lt;/a&gt;&lt;/td&gt;        &lt;td&gt; &lt;/td&gt;        &lt;td&gt;VS2005&lt;/td&gt;        &lt;td&gt;VS2008&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122087"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122087" 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/brians/aggbug/122087.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2008/05/12/122087.aspx</guid>
            <pubDate>Mon, 12 May 2008 19:40:07 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/122087.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2008/05/12/122087.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/122087.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/122087.aspx</trackback:ping>
        </item>
        <item>
            <title>Visual Studio &amp;quot;Clear Regions&amp;quot; macro</title>
            <link>http://geekswithblogs.net/brians/archive/2008/05/11/122067.aspx</link>
            <description>&lt;p&gt;A while ago, Kyle Baley &lt;a href="http://codebetter.com/blogs/kyle.baley/archive/2007/12/17/removing-regions-or-quot-how-to-keep-your-code-expanded-quot.aspx"&gt;shared a Visual Studio macro to remove #regions&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I've very much enjoyed using it to clean up overly-regioned code, but it did have one problem: The macro macro used regular expressions to find and replace, and the next time you use the Visual Studio "Find" dialog after running the macro, the "use regular expressions" box is still checked, which can mess up some searches.&lt;/p&gt;  &lt;p&gt;I made an update to save the search options, and restore them after the find/replace is complete so that doesn't happen:&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;' Get rid of regions (but not the enclosed code)     &lt;br /&gt;Sub ClearRegions()      &lt;br /&gt;    With DTE.Find      &lt;br /&gt;        Dim saveTarget As vsFindTarget = .Target      &lt;br /&gt;        Dim saveMatchCase As Boolean = .MatchCase      &lt;br /&gt;        Dim saveMatchWholeWord As Boolean = .MatchWholeWord      &lt;br /&gt;        Dim saveMatchInHiddenText As Boolean = .MatchInHiddenText      &lt;br /&gt;        Dim savePatternSyntax As vsFindPatternSyntax = .PatternSyntax &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;        .Action = vsFindAction.vsFindActionReplaceAll     &lt;br /&gt;        .FindWhat = "^:b*\#region.*\n"      &lt;br /&gt;        .ReplaceWith = ""      &lt;br /&gt;        .Target = vsFindTarget.vsFindTargetCurrentDocument      &lt;br /&gt;        .MatchCase = False      &lt;br /&gt;        .MatchWholeWord = False      &lt;br /&gt;        .MatchInHiddenText = True      &lt;br /&gt;        .PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxRegExpr      &lt;br /&gt;        .ResultsLocation = vsFindResultsLocation.vsFindResultsNone      &lt;br /&gt;        .Action = vsFindAction.vsFindActionReplaceAll &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;        .Execute() &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;        .FindWhat = "^:b*\#endregion.*\n"     &lt;br /&gt;        .ReplaceWith = ""      &lt;br /&gt;        .Target = vsFindTarget.vsFindTargetCurrentDocument      &lt;br /&gt;        .MatchCase = False      &lt;br /&gt;        .MatchWholeWord = False      &lt;br /&gt;        .MatchInHiddenText = True      &lt;br /&gt;        .PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxRegExpr      &lt;br /&gt;        .ResultsLocation = vsFindResultsLocation.vsFindResultsNone      &lt;br /&gt;        .Action = vsFindAction.vsFindActionReplaceAll &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;        .Execute() &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;        .Target = saveTarget     &lt;br /&gt;        .MatchCase = saveMatchCase      &lt;br /&gt;        .MatchWholeWord = saveMatchWholeWord      &lt;br /&gt;        .MatchInHiddenText = saveMatchInHiddenText      &lt;br /&gt;        .PatternSyntax = savePatternSyntax      &lt;br /&gt;    End With      &lt;br /&gt;End Sub &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122067"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122067" 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/brians/aggbug/122067.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2008/05/11/122067.aspx</guid>
            <pubDate>Mon, 12 May 2008 04:16:49 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/122067.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2008/05/11/122067.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/122067.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/122067.aspx</trackback:ping>
        </item>
        <item>
            <title>Quickly select entire quoted string in Visual Studio</title>
            <category>.NET</category>
            <link>http://geekswithblogs.net/brians/archive/2008/05/10/122049.aspx</link>
            <description>Here's a tip that will save you about 7 milliseconds over the course of your programming career...&lt;br /&gt;
&lt;br /&gt;
In Visual Studio, if you double-click to the left of the opening quote character (between the quote and the preceding character), the IDE will select the entire string, including the opening and closing quote characters.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122049"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122049" 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/brians/aggbug/122049.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2008/05/10/122049.aspx</guid>
            <pubDate>Sun, 11 May 2008 01:02:45 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/122049.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2008/05/10/122049.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/122049.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/122049.aspx</trackback:ping>
        </item>
        <item>
            <title>Earth Hour bad for the environment!</title>
            <link>http://geekswithblogs.net/brians/archive/2008/03/30/120863.aspx</link>
            <description>During &lt;a href="http://en.wikipedia.org/wiki/Earth_Hour"&gt;Earth Hour&lt;/a&gt; last night, I turned off my lights and killed a tree!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I may be partially responsible though. They probably didn't mean for people to turn off their lights if they were driving a car at the time.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=120863"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=120863" 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/brians/aggbug/120863.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2008/03/30/120863.aspx</guid>
            <pubDate>Sun, 30 Mar 2008 13:48:59 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/120863.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2008/03/30/120863.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/120863.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/120863.aspx</trackback:ping>
        </item>
        <item>
            <title>Enum.GetValues and Enum.GetNames return arrays sorted by value</title>
            <category>.NET</category>
            <link>http://geekswithblogs.net/brians/archive/2007/12/18/117799.aspx</link>
            <description>&lt;p&gt;If you ran this code:&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;pre&gt;private enum FieldWidths&lt;br /&gt;{&lt;br /&gt;   CustomerNumber = 5,&lt;br /&gt;   OrderNumber = 10,&lt;br /&gt;   City = 30,&lt;br /&gt;   State = 2,&lt;br /&gt;   Zip = 11    &lt;br /&gt;}&lt;/pre&gt;
&lt;pre&gt;. . .&lt;/pre&gt;
&lt;pre&gt;int[] vals = (int[])Enum.GetValues(typeof(FieldWidths));&lt;br /&gt;string[] names = Enum.GetNames(typeof(FieldWidths));&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;...you might expect (I did, anyway) that the resulting arrays would look like this:&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr"&gt;vals: 5, 10, 30, 2, 11&lt;/p&gt;
&lt;p dir="ltr"&gt;names: "CustomerNumber", "OrderNumber", "City", "State", "Zip"&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;What you would get, though, is:&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr"&gt;vals: 2, 5, 10, 11, 30&lt;/p&gt;
&lt;p dir="ltr"&gt;names: "State", "CustomerNumber", "OrderNumber", "Zip", "City"&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;...because the arrays returned by Enum.GetValues and Enum.GetNames are sorted by the values in the enumeration.&lt;/p&gt;
&lt;p dir="ltr"&gt;I "&lt;a href="http://www.aisto.com/roeder/dotnet/"&gt;reflectored&lt;/a&gt;" a bit, and there doesn't seem to be a way to get the values from an enum in the order that they were specified, so I'll stop trying to do that.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117799"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117799" 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/brians/aggbug/117799.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2007/12/18/117799.aspx</guid>
            <pubDate>Tue, 18 Dec 2007 14:13:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/117799.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2007/12/18/117799.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/117799.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/117799.aspx</trackback:ping>
        </item>
        <item>
            <title>PowerShell Cheat Sheet</title>
            <category>.NET</category>
            <category>PowerShell</category>
            <link>http://geekswithblogs.net/brians/archive/2007/11/05/116598.aspx</link>
            <description>&lt;p&gt;Inspired by &lt;a href="http://www.agileprogrammer.com/oneagilecoder/"&gt;Brian Button&lt;/a&gt;'s presentation at the &lt;a href="http://www.stlnet.org/"&gt;St. Louis .NET User Group&lt;/a&gt; and &lt;a href="http://www.dnrtv.com/default.aspx?showNum=82"&gt;Scott Hanselman's dnrTV! episode&lt;/a&gt;, I'm starting to look into PowerShell.&lt;/p&gt;
&lt;p&gt;Scott Dorman had a link to a &lt;a href="http://geekswithblogs.net/sdorman/archive/2007/07/28/Windows-PowerShell-e-book.aspx"&gt;free introductory PowerShell e-book&lt;/a&gt; a while ago. &lt;/p&gt;
&lt;p&gt;I haven't actually read the e-book yet, but when I printed it, I noticed a nice PowerShell Cheat Sheet at the end of the book, which looks like it might be very useful.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=116598"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=116598" 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/brians/aggbug/116598.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2007/11/05/116598.aspx</guid>
            <pubDate>Mon, 05 Nov 2007 15:24:44 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/116598.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2007/11/05/116598.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/116598.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/116598.aspx</trackback:ping>
        </item>
        <item>
            <title>Why &amp;quot;Iron&amp;quot;?</title>
            <link>http://geekswithblogs.net/brians/archive/2007/08/04/114397.aspx</link>
            <description>&lt;p&gt;Since I first heard about IronPython, I've always wondered why it was called that. When I think about "dynamic" languages, "iron" is not the first thing that comes to mind. Now there's IronRuby also. &lt;/p&gt;
&lt;p&gt;I've searched "the internets", and have found no explanation of the names (although I did find out that Python is named for Monty Python and not the snake, which I didn't know). &lt;/p&gt;
&lt;p&gt;...Or maybe I'm reading the names wrong and they start with a lowercase "L", not an "I". "L Ron Python" could be a tribute to scientology ;-)&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114397"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114397" 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/brians/aggbug/114397.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2007/08/04/114397.aspx</guid>
            <pubDate>Sat, 04 Aug 2007 12:08:24 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/114397.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2007/08/04/114397.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/114397.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/114397.aspx</trackback:ping>
        </item>
        <item>
            <title>System.Web.UI.Control &amp;quot;FindControl&amp;quot; method using Generics</title>
            <link>http://geekswithblogs.net/brians/archive/2007/07/17/114005.aspx</link>
            <description>&lt;p&gt;I'm currently supporting an ASP.NET project that has a lot of code like this using the &lt;strong&gt;&lt;a title="FindControl Method" href="http://msdn2.microsoft.com/s6sbak6c.aspx"&gt;System.Web.UI.Control.FindControl&lt;/a&gt;&lt;/strong&gt; method to get data from child controls - in this example, from &lt;a title="DataListItem Class" href="http://msdn2.microsoft.com/5x0k00sz.aspx"&gt;DataListItem&lt;/a&gt;s belonging to a &lt;strong&gt;&lt;a title="DataList Class" href="http://msdn2.microsoft.com/7efxhktc.aspx"&gt;DataList&lt;/a&gt;&lt;/strong&gt; control:&lt;/p&gt;&lt;pre class="code"&gt; &lt;/pre&gt;&lt;pre class="code"&gt;    &lt;span style="color: rgb(0,0,255)"&gt;foreach&lt;/span&gt; (&lt;span style="color: rgb(43,145,175)"&gt;DataListItem&lt;/span&gt; item &lt;span style="color: rgb(0,0,255)"&gt;in&lt;/span&gt; employeeDataList.Items)
    {
        &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (item.ItemType == &lt;span style="color: rgb(43,145,175)"&gt;ListItemType&lt;/span&gt;.Item ||
            item.ItemType == &lt;span style="color: rgb(43,145,175)"&gt;ListItemType&lt;/span&gt;.AlternatingItem)
        {
            &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (((&lt;span style="color: rgb(43,145,175)"&gt;HtmlInputCheckBox&lt;/span&gt;)item.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"SelectionCheckBox"&lt;/span&gt;)).Checked)
            {
                &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; positionId = ((&lt;span style="color: rgb(43,145,175)"&gt;Label&lt;/span&gt;)item.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"PositionIdLabel"&lt;/span&gt;)).Text;
                &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; personnelId = ((&lt;span style="color: rgb(43,145,175)"&gt;Label&lt;/span&gt;)item.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"PersonnelIdLabel"&lt;/span&gt;)).Text;
                ProcessPosition(positionId, personnelId);
            }
        }
    }&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;There's much room for improvement, but I started by adding a couple of FindControl overrides to the base class inherited by the project's pages.&lt;/p&gt;
&lt;p&gt;The first calls the passed "parent" control's FindControl method, and throws an &lt;strong&gt;&lt;a title="ArgumentOutOfRangeException Class" href="http://msdn2.microsoft.com/8xt94y6e.aspx"&gt;System.ArgumentOutOfRangeException&lt;/a&gt; &lt;/strong&gt;if the specified ID is not found. This way, instead of just failing when later trying to use a null object, we know exactly which ID wasn't found in which "parent" control:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;    &lt;span style="color: rgb(0,0,255)"&gt;protected&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;Control&lt;/span&gt; FindControl(&lt;span style="color: rgb(43,145,175)"&gt;Control&lt;/span&gt; parentControl, &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; id)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: rgb(43,145,175)"&gt;Control&lt;/span&gt; control = parentControl.FindControl(id);&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (control == &lt;span style="color: rgb(0,0,255)"&gt;null&lt;/span&gt;)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: rgb(0,0,255)"&gt;throw&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;ArgumentOutOfRangeException&lt;/span&gt;(&lt;br /&gt;                &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;.Format(&lt;span style="color: rgb(163,21,21)"&gt;"{0}.FindControl failed for ID \"{1}\""&lt;/span&gt;,&lt;br /&gt;                parentControl.ID, id));&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; control;&lt;br /&gt;    }&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;The second uses generics to call the override shown above and cast the found Control to the specified Control type (the "&lt;font face="Consolas"&gt;&lt;span style="color: rgb(0,0,255)"&gt;where&lt;/span&gt; T : &lt;span style="color: rgb(43,145,175)"&gt;Control &lt;/span&gt;&lt;/font&gt;" constraint allows it to return only types that inherit from System.Web.UI.Control). &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;pre class="code"&gt;    &lt;span style="color: rgb(0,0,255)"&gt;protected&lt;/span&gt; T FindControl&amp;lt;T&amp;gt;(&lt;span style="color: rgb(43,145,175)"&gt;Control&lt;/span&gt; parentControl, &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; id) &lt;span style="color: rgb(0,0,255)"&gt;where&lt;/span&gt; T : &lt;span style="color: rgb(43,145,175)"&gt;Control
&lt;/span&gt;    {
        &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; (T)FindControl(parentControl, id);
    } &lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Here's the code shown in the first example, modified to use the generic FindControl method. I think it's a little more readable than the original:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;pre class="code"&gt;    &lt;span style="color: rgb(0,0,255)"&gt;foreach&lt;/span&gt; (&lt;span style="color: rgb(43,145,175)"&gt;DataListItem&lt;/span&gt; item &lt;span style="color: rgb(0,0,255)"&gt;in&lt;/span&gt; employeeDataList.Items)
    {
        &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (item.ItemType == &lt;span style="color: rgb(43,145,175)"&gt;ListItemType&lt;/span&gt;.Item ||
            item.ItemType == &lt;span style="color: rgb(43,145,175)"&gt;ListItemType&lt;/span&gt;.AlternatingItem)
        {
            &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (FindControl&amp;lt;&lt;span style="color: rgb(43,145,175)"&gt;HtmlInputCheckBox&lt;/span&gt;&amp;gt;(item, &lt;span style="color: rgb(163,21,21)"&gt;"SelectionCheckBox"&lt;/span&gt;).Checked)
            {
                &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; positionId = FindControl&amp;lt;&lt;span style="color: rgb(43,145,175)"&gt;Label&lt;/span&gt;&amp;gt;(item, &lt;span style="color: rgb(163,21,21)"&gt;"PositionIdLabel"&lt;/span&gt;).Text;
                &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; personnelId = FindControl&amp;lt;&lt;span style="color: rgb(43,145,175)"&gt;Label&lt;/span&gt;&amp;gt;(item, &lt;span style="color: rgb(163,21,21)"&gt;"PersonnelIdLabel"&lt;/span&gt;).Text;
                ProcessPosition(positionId, personnelId);
            }
        }
    } &lt;/pre&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114005"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114005" 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/brians/aggbug/114005.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2007/07/17/114005.aspx</guid>
            <pubDate>Wed, 18 Jul 2007 04:18:52 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/114005.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2007/07/17/114005.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/114005.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/114005.aspx</trackback:ping>
        </item>
        <item>
            <title>How Right-Thinking Americans Should Pronounce &amp;quot;Agile&amp;quot;</title>
            <link>http://geekswithblogs.net/brians/archive/2007/07/04/113677.aspx</link>
            <description>&lt;p&gt;On the anniversary of our nation's independence I call upon my U.S. citizens to throw off the shackles of our British oppressors and pronounce the word "agile" like true Americans:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;The pretentious un-American "goofus" pronunciation: &lt;a href="http://www.m-w.com/cgi-bin/audio.pl?agile001.wav=agile"&gt;aj-ahyl&lt;/a&gt;  &lt;/li&gt;&lt;li&gt;The right-thinking American "gallant" pronunciation: &lt;a href="http://www.m-w.com/cgi-bin/audio.pl?agile002.wav=agile"&gt;aj-uhl&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Listening to the &lt;a href="http://www.dotnetrocks.com/default.aspx?showNum=250"&gt;.NET Rocks Team System panel discussion from Tech Ed&lt;/a&gt; last week, I was dismayed to hear that only one of the six panelists pronounced "agile" like an American. I'm not sure which one it was, but it may have been the Canadian guy! (Yes, I realize that Canadians and everyone else from North, Central and South American are also American and it's arrogant to use that term only for people from the U.S., but I don't think that "United Statesian" will ever catch on. But enough &lt;em&gt;aboot&lt;/em&gt; that, as they say in Canada.)&lt;/p&gt; &lt;p&gt;All of the dictionaries I've checked, including, ahem, the &lt;strong&gt;&lt;font color="#0000ff"&gt;American&lt;/font&gt; &lt;font color="#ff0000"&gt;Heritage&lt;/font&gt;&lt;/strong&gt; dictionary, show "aj-uhl" as the preferred pronunciation.&lt;/p&gt; &lt;p&gt;According to the &lt;a href="http://agilemanifesto.org/history.html"&gt;history of the agile manifesto at agilemanifesto.org&lt;/a&gt;, the only objection among the agile founding fathers to the term "agile" came from Martin Fowler, who said that most Americans don't know how to pronounce the word properly. I think that's why a lot of developers say "aj-ahyl" - they want to be like Martin. Being Fowleresque is a very admirable thing if you're designing software, but you don't have to talk like the guy if you're not British.&lt;/p&gt; &lt;p&gt;Am I making too big a deal of this? Perhaps, but it's a slippery slope, my friends. Start saying "aj-ahyl", and before you know it you'll be adding an extra syllable to "aluminum", driving on the wrong side of the road, and clamoring for the addition of a System.Drawing.&lt;em&gt;Colour &lt;/em&gt;namespace. Think it can't happen here? Think again - One of the guys on the .NET Rocks show pronounced "process" with a long O, like Jean-Luc-Freaking Picard!&lt;/p&gt; &lt;p&gt;P.S.&lt;/p&gt; &lt;p&gt;Please don't respond with nasty comments - My sense of self-esteem is very fraj-ahyl.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113677"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113677" 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/brians/aggbug/113677.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2007/07/04/113677.aspx</guid>
            <pubDate>Wed, 04 Jul 2007 15:41:28 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/113677.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2007/07/04/113677.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/113677.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/113677.aspx</trackback:ping>
        </item>
        <item>
            <title>Free &amp;quot;Mini-Refactor!&amp;quot; From Developer Express</title>
            <category>.NET</category>
            <category>freetools</category>
            <link>http://geekswithblogs.net/brians/archive/2007/07/04/113674.aspx</link>
            <description>&lt;p&gt;When a free download of &lt;a href="http://www.devexpress.com/Products/NET/IDETools/RefactorASP/"&gt;Refactor!™ for ASP.NET 2.2&lt;/a&gt; was announced in May by Developer Express, I bookmarked it for future reference because I wasn't working on an ASP project at the time.&lt;/p&gt;
&lt;p&gt;When I took another look, I realized that the download includes 19 C#/VB code refactorings that work in any project, ASP.NET or not. They work in Visual Studio 2003, VS2005, and "Orcas".&lt;/p&gt;
&lt;p&gt;Included are Refactor! versions (with much nicer user interfaces) of four of the seven built-in VS2005 C# refactorings:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Rename&lt;/strong&gt;  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Extract Method&lt;/strong&gt;  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Encapsulate Field&lt;/strong&gt;  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Reorder Parameters&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;...plus:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Create Overload&lt;/strong&gt;:&lt;br /&gt;
    Creates an overload to an existing method, with fewer parameters.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Extract Property&lt;/strong&gt;:&lt;br /&gt;
    Creates a new property from the selected code block. The selection is replaced with appropriate code to reference the newly-declared property.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Flatten Conditional&lt;/strong&gt;:&lt;br /&gt;
    Unindents the If or Else statement for a conditional and applies one of the following refactorings: Replace Nested Conditional with Guard Clause, Remove Redundant Else, or Reverse Conditional followed by Remove Redundant Else.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Inline Temp&lt;/strong&gt;:&lt;br /&gt;
    Replaces all references to a local variable with its initial value.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Introduce Constant&lt;/strong&gt;:&lt;br /&gt;
    Declares a new constant, initialized to the value of the selected string or number.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Introduce Local&lt;/strong&gt;:&lt;br /&gt;
    Creates a new local variable initialized to the selected expression. Replaces the selection with the new variable.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Move Declaration Near Reference&lt;/strong&gt;:&lt;br /&gt;
    Moves the declaration statement for a local variable near its first reference.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Move Initialization to Declaration&lt;/strong&gt;:&lt;br /&gt;
    Combines a local variable's declaration with its first initialization.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Replace Temp with Query&lt;/strong&gt;:&lt;br /&gt;
    Replaces each reference to the active local variable with a call to an extracted method, which returns the initial value assigned to the local.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Reverse Conditional&lt;/strong&gt;:&lt;br /&gt;
    Inverts the logic in a conditional statement and swaps the If and Else blocks.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Safe Rename&lt;/strong&gt;:&lt;br /&gt;
    Safely renames non-private methods and properties by creating a duplicate member to preserve the old signature, calling the renamed member from the old member. The old member is hidden from Intellisense and marked "Obsolete". References to the old member will generate compiler warnings directing developers to the new renamed member.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Simplify Expression&lt;/strong&gt;:&lt;br /&gt;
    Resolves an expression to its simplest form.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Split Initialization from Declaration&lt;/strong&gt;:&lt;br /&gt;
    Breaks an initialized declaration for a local variable into a declaration and a separate initialization statement.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Split Temporary Variable&lt;/strong&gt;:&lt;br /&gt;
    Splits a local variable which has too many assignments, declaring a new local at the first new assignment following the first reference.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;...and the 10 ASP.NET 2.0 refactorings:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Add Validator&lt;/strong&gt;:&lt;br /&gt;
    Adds one or more selected Validators to the active input control.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Extract ContentPlaceHolder&lt;/strong&gt;: &lt;br /&gt;
    Moves the selected content from a .master page to a new .aspx file, placing it inside &amp;lt;asp:content&amp;gt; tags, and inserts a new &amp;lt;asp:contentplaceholder&amp;gt; tag at the extraction point inside the master page.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Extract ContentPlaceHolder (and create master page)&lt;/strong&gt;:&lt;br /&gt;
    Moves the content that is *outside* of the selection (in the active .aspx page) to a new master page, inserting a &amp;lt;asp:contentplaceholder&amp;gt; tag to reference the extracted content, and then wraps the selection in the aspx page with &amp;lt;asp:content&amp;gt; tags and adds a MasterPageFile attribute to link to the new master page.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Extract Style (Class)&lt;/strong&gt;:&lt;br /&gt;
    Converts an inline style to a named class style.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Extract Style (id)&lt;/strong&gt;:&lt;br /&gt;
    Converts an inline style to a named id style.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Extract to UserControl&lt;/strong&gt;:&lt;br /&gt;
    Creates a UserControl for the selected block including content and dependent code.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Move Style Attributes to CSS&lt;/strong&gt;:&lt;br /&gt;
    Moves styling attributes from the active control to a new CSS class and applies the class to the control.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Move to Code-behind&lt;/strong&gt;:&lt;br /&gt;
    Moves code located in &amp;lt;script&amp;gt; tags to the code-behind file.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Rename Style&lt;/strong&gt;:&lt;br /&gt;
    Renames the active CSS style and updates all references to that style.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Surround with Update Panel&lt;/strong&gt;:&lt;br /&gt;
    Surrounds a contiguous block of text in the source view with &amp;lt;asp:UpdatePanel …&amp;gt; and &amp;lt;ContentTemplate&amp;gt; tags.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://www.doitwith.net/2007/05/07/PowerfulFreeDownloadRefactor!ForASP.NET2.2.aspx"&gt;Here's a link to a post by Mark Miller&lt;/a&gt;, mad genius of Developer Express, showing examples of all of the refactorings.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113674"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113674" 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/brians/aggbug/113674.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2007/07/04/113674.aspx</guid>
            <pubDate>Wed, 04 Jul 2007 13:51:39 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/113674.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2007/07/04/113674.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/113674.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/113674.aspx</trackback:ping>
        </item>
        <item>
            <title>CoolCommands for Visual Studio 2005</title>
            <category>.NET</category>
            <category>freetools</category>
            <link>http://geekswithblogs.net/brians/archive/2007/03/04/107922.aspx</link>
            <description>&lt;p&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:226f236a-7fb7-46ef-9ce5-cefe8a439c4a" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/.net" rel="tag"&gt;.net&lt;/a&gt;, &lt;a href="http://technorati.com/tags/freetools" rel="tag"&gt;freetools&lt;/a&gt;&lt;/div&gt; &lt;p&gt;While gathering information about Visual Studio add-ins for a potential local user group presentation, I came across &lt;strong&gt;&lt;a href="http://weblogs.asp.net/gmilano/"&gt;&lt;strong&gt;Gaston Milano's "CoolCommands"&lt;/strong&gt;.&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;As far as I can tell, the latest version of the&amp;nbsp;&lt;strong&gt;CoolCommands &lt;/strong&gt;installer can be downloaded here:&lt;br&gt;&lt;a title="http://download.deklarit.com/files/gmilano/coolcommands40.zip" href="http://download.deklarit.com/files/gmilano/coolcommands40.zip"&gt;http://download.deklarit.com/files/gmilano/coolcommands40.zip&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;It adds a lot of useful tools to Visual Studio, but there's no help or "read-me" file documenting them, and I couldn't find a consolidated overview on Gaston's site, so here's my attempt to summarize the &lt;strong&gt;CoolCommands&lt;/strong&gt; tools:&lt;/p&gt; &lt;h3&gt;Collapse All Projects&lt;/h3&gt; &lt;p&gt;Context menu item displayed when a solution name is right-clicked in the Solution Explorer - Simulates clicking the close (minus sign) icon for all expanded projects.&lt;/p&gt; &lt;h3&gt;Open Container Folder&lt;/h3&gt; &lt;p&gt;Context menu item displayed when a project or file name is right-clicked in the Solution Explorer - Displays the project folder in Windows Explorer (and automatically selects the right-clicked file if you launched the menu from a file name rather than the project name).&lt;/p&gt; &lt;h3&gt;Visual Studio Prompt Here&lt;/h3&gt; &lt;p&gt;Context menu item displayed when a project name is right-clicked in the Solution Explorer - Opens the Visual Studio Command Prompt window, initialized to point&amp;nbsp;to the project's folder.&lt;/p&gt; &lt;h3&gt;Demo Font&lt;/h3&gt; &lt;p&gt;Context menu item displayed in response to a right-click in a text editor window - Quickly toggles between an 18-point font size and your preferred (Tools | Options | Environment | Fonts &amp;amp; Colors) font size.&lt;/p&gt; &lt;h3&gt;Wheel Font Sizing&lt;/h3&gt; &lt;p&gt;Context menu item displayed in response to a right-click in a text editor window - I don't have a wheel mouse on this PC, but it looks like this toggles the ability to change the text editor font size via the mouse wheel.&lt;/p&gt; &lt;h3&gt;Send By Mail&lt;/h3&gt; &lt;p&gt;Context menu item displayed in response to a right-click in a text editor window - Launches your email program's "new message" window with the selected code pasted into the body.&lt;/p&gt; &lt;h3&gt;Open File&lt;/h3&gt; &lt;p&gt;Context menu item displayed in response to a right-click in a text editor window - If you right-click on a string literal containing a file name, this option opens the file.&lt;/p&gt; &lt;h3&gt;Copy File&lt;/h3&gt; &lt;p&gt;Context menu item displayed in response to a right-click in the tab at the top of a text editor window (seems&amp;nbsp;to me it should be&amp;nbsp;in the Solution Explorer instead or at least also)&amp;nbsp;- Displays a popup window asking where you want to save a copy of the selected file:&lt;/p&gt;&lt;img alt="Copy File" src="http://geekswithblogs.net/images/geekswithblogs_net/brians/3864/r_CoolCommandsCopyFileDialog.jpg"&gt;  &lt;h3&gt;Locate in Solution Explorer&lt;/h3&gt; &lt;p&gt;Context menu item displayed in response to a right-click in the tab at the top of a text editor window - Highlights the file in the Solution Explorer (expands solution, project &amp;amp; folders if necessary and even shows the Solution Explorer window if it's not visible).&lt;/p&gt; &lt;h3&gt;Copy Reference&lt;/h3&gt; &lt;p&gt;Context menu item displayed in response to a right-click on a reference displayed in a project's References list in Solution Explorer - Used in conjunction with...&lt;/p&gt; &lt;h3&gt;Paste Reference&lt;/h3&gt; &lt;p&gt;Context menu item displayed in response to a right-click on&amp;nbsp;or in project's&amp;nbsp;References&amp;nbsp;"folder" in Solution Explorer - Adds&amp;nbsp;a reference copied from another project via the "Copy Reference" tool to the current project's&amp;nbsp;References list.&amp;nbsp;&lt;/p&gt; &lt;h3&gt;Resolve Project References&lt;/h3&gt; &lt;p&gt;If you open a project and it has broken "project" references because you usually open the project as part of a solution, this context menu item displayed in response to a right-click on a project name in Solution Explorer automatically adds the referenced projects to the current solution.&lt;/p&gt; &lt;h3&gt;Reference Manager&lt;/h3&gt;&lt;img alt="Reference Manager" src="http://geekswithblogs.net/images/geekswithblogs_net/brians/3864/r_CoolCommandsReferenceManager.jpg"&gt;  &lt;p&gt;Opened via a context menu item displayed in response to a right-click on a solution or project name in Solution Explorer. &lt;/p&gt; &lt;p&gt;If you enter part of an assembly name in the "Find Reference" box and press the Enter key, the Reference Manager will show you which projects contain a reference to that assembly.&lt;/p&gt; &lt;p&gt;You can use the "Remove" button to quickly remove&amp;nbsp;a reference from multiple projects.&lt;/p&gt; &lt;p&gt;If you click the "Add Reference" button, you'll see the standard Visual Studio "Add Reference" dialog, but you can use the Reference Manager to quickly add references to multiple projects at once.&lt;/p&gt; &lt;h3&gt;Add As String Resource&lt;/h3&gt; &lt;p&gt;Context menu item displayed in response to a right-click in a text editor window -&amp;nbsp;Pops up a dialog&amp;nbsp;to allow you to easily specify&amp;nbsp;a&amp;nbsp;key and value (defaults to the selected text), and a dropdown list of resource files to which you can add&amp;nbsp;the new string resource.&amp;nbsp;&lt;/p&gt; &lt;hr&gt;  &lt;p&gt;There's some great stuff here (especially the reference tools), but it would be nice if &lt;strong&gt;CoolCommands&lt;/strong&gt; were packaged a little better:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Version 3 had an .msi installer, but you have to run a .bat file to install version 4, and I'm not sure how to uninstall it.  &lt;li&gt;Some documentation - even a readme.txt or a web page with a summary - would help a lot.  &lt;li&gt;It would be really great if there were a configuration screen where you could select which tools should be visible - My right-click menus are almost long enough to require scrolling now.&lt;/li&gt;&lt;/ul&gt; &lt;hr&gt;  &lt;p&gt;If you have any questions or complaints about CoolCommands, please address them to &lt;a href="http://weblogs.asp.net/gmilano/"&gt;Gaston&lt;/a&gt;, not to me.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=107922"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=107922" 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/brians/aggbug/107922.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2007/03/04/107922.aspx</guid>
            <pubDate>Sun, 04 Mar 2007 21:12:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/107922.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2007/03/04/107922.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/107922.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/107922.aspx</trackback:ping>
        </item>
        <item>
            <title>10-Time World Champions!</title>
            <link>http://geekswithblogs.net/brians/archive/2006/10/28/95339.aspx</link>
            <description>&lt;DIV style="FLOAT: left; MARGIN-BOTTOM: 1em; MARGIN-RIGHT: 1em"&gt;&lt;IMG src="/images/geekswithblogs_net/brians/3864/r_10TimeChamps.jpg"&gt;&lt;/DIV&gt;
&lt;P&gt;I'm old enough to remember the Cardinals winning the World Series in '82, but I don't remember where or with whom I watched it.&lt;/P&gt;
&lt;P&gt;I don't think I'll ever forget where I was they won the '06 Series, though.&lt;/P&gt;
&lt;P&gt;I was flying back to St. Louis from the &lt;A href="http://geekswithblogs.net/brians/archive/2006/10/28/95330.aspx"&gt;Heartland Developer's Conference&lt;/A&gt;&amp;nbsp;in Omaha, and was very disappointed that I wouldn't be able to watch what could be the championship-clinching game.&lt;/P&gt;
&lt;P&gt;About half an hour before landing at the Dallas-Fort Worth airport (blast American for moving their hub out out of St. Louis&amp;nbsp;so&amp;nbsp;you can't get a&amp;nbsp;direct flight&amp;nbsp;to/from Omaha), I was able to pick up the Dallas ESPN Radio station on my radio and hear the game starting with the bottom of the first inning.&lt;/P&gt;
&lt;P&gt;At the airport, there was a mini TGI Friday's bar/restaurant with TVs showing the game, and a group over 30 Cardinals fans gathered outside&amp;nbsp;to watch.&lt;/P&gt;
&lt;P&gt;We boarded the plane to St. Louis just as the top of the ninth started, and the flight attendant let us know when there there was one and then two outs. At the exact moment that the plane pulled away from the gate, he announced that the Cardinals were World Series champions, and the passengers let loose with a big cheer.&lt;/P&gt;
&lt;P&gt;Cardinal fans got a little spoiled the past two seasons with 105 and 100 win seasons, and at the beginning of this season, the chances of the Cardinals winning the championship in the first year in their new ballpark looked pretty good.&lt;/P&gt;
&lt;P&gt;The chances sure didn't look good as they limped to the end of a frustrating regular season, though. It seems like there's always some Cinderella team that catches fire in the post-season and, for once, that team was St. Louis. (It looked like the Tigers might be this year's Cinderella team, but their magical carriage turned back into a pumpkin as Halloween approached.) I've got no ill will against the Tigers or Jim Leyland - they should be a really good team the next few years, but I do enjoy the&amp;nbsp;seeing "experts"&amp;nbsp;like&amp;nbsp;that sphincter Bob Nightengale of USA Today who picked "&lt;A href="http://www.usatoday.com/sports/baseball/playoffs/2006-10-20-tigers-scouting-report_x.htm"&gt;the Tigers in 3&lt;/A&gt;" and said "The Detroit Tigers' biggest obstacle to a championship will be keeping a straight face" eat crow.&lt;/P&gt;
&lt;P&gt;Congratulations to Tony LaRussa for becoming only the second manager in history to win a World Series in both league, to the Cardinals, and to their fans who aren't old enough to remember '82 - I hope we don't have to wait&amp;nbsp;another 24&amp;nbsp;years for another day as sweet as this.&amp;nbsp;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=95339"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=95339" 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/brians/aggbug/95339.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2006/10/28/95339.aspx</guid>
            <pubDate>Sat, 28 Oct 2006 15:15:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/95339.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2006/10/28/95339.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/95339.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/95339.aspx</trackback:ping>
        </item>
    </channel>
</rss>