<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" 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:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>r2 musings - rants, raves, and research (mostly on .NET topics) from rik robinson</title>
    <link>http://www.r2musings.com/</link>
    <description>rants, raves, and research (mostly on .NET topics) from rik robinson</description>
    <language>en-us</language>
    <copyright>Rik Robinson</copyright>
    <lastBuildDate>Thu, 28 Aug 2008 14:01:28 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>r2@r2musings.com</managingEditor>
    <webMaster>r2@r2musings.com</webMaster>
    <item>
      <trackback:ping>http://www.r2musings.com/Trackback.aspx?guid=8c308b7d-f2a6-4140-81ac-9519f9620dc0</trackback:ping>
      <pingback:server>http://www.r2musings.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.r2musings.com/PermaLink,guid,8c308b7d-f2a6-4140-81ac-9519f9620dc0.aspx</pingback:target>
      <dc:creator>Rik Robinson</dc:creator>
      <wfw:comment>http://www.r2musings.com/CommentView,guid,8c308b7d-f2a6-4140-81ac-9519f9620dc0.aspx</wfw:comment>
      <wfw:commentRss>http://www.r2musings.com/SyndicationService.asmx/GetEntryCommentsRss?guid=8c308b7d-f2a6-4140-81ac-9519f9620dc0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
For those that missed the announcement last week, <a href="http://photosynth.net/Default.aspx" target="_blank">PhotoSynth</a> is
live and after a pretty bumpy start looks like you can at least play around with it
now.  I've managed to load two of my sets of photos from a trip to the High Sierras
a couple of years ago.  It definitely still has its bumps as I had to cancel
and restart the synth several times as it would hang indefinitely.  I didn't
get really high "synthy" scores as I wasn't taking the photos with <a href="http://photosynth.net/Default.aspx" target="_blank">PhotoSynth</a> in
mind at the time.  However, the <a href="http://photosynth.net/Default.aspx" target="_blank">PhotoSynth</a> team
has supplied a <a href="http://photosynth.net/documentation/Photosynth%20Guide%20v6b_CC.pdf" target="_blank">document</a> of
points to keep in mind while shooting photos if you intend to make a <a href="http://photosynth.net/Default.aspx" target="_blank">PhotoSynth</a> out
of them.  I can't wait to try it out when I actually shot the photos for synthing. 
There are numerous really great examples on the <a href="http://photosynth.net/Default.aspx" target="_blank">PhotoSynth</a> site,
including some shot by the <a href="http://www.nationalgeographic.com/" target="_blank">National
Geographic Society</a> photographers.  I like that you can go full screen (or
full browser) as that really helps make the experience a bit more of an immersive
experience.  Also, the slide show and thumbnails really help as well.  
</p>
        <p>
          <a href="http://photosynth.net/Default.aspx" target="_blank">PhotoSynth</a> is now
giving 20GB (!) for free to anyone to try <a href="http://photosynth.net/Default.aspx" target="_blank">PhotoSynth</a>. 
It takes a LONG time to use 20GB in JPEGS!  Give it a try.  
</p>
        <p>
Since my photos didn't all relate to one another, <a href="http://www.photosynth.net" target="_blank">PhotoSynth</a> sort
of creates mini-PhotoSynths inside each.  You'll want to check the thumbnails
page to see the various scenes that it stitched together.  
</p>
        <p>
Here are links to my first two:
</p>
        <p>
          <a href="http://photosynth.net/view.aspx?cid=15de38f7-bfae-4b49-9ee8-1b42bc0d3940" target="_blank">High
Sierras - Dana Plateau</a>
        </p>
        <p>
          <a href="http://photosynth.net/view.aspx?cid=561b88e1-1ed5-43c1-8206-c2cea92b4f3b" target="_blank">High
Sierras - Saddlebag Lake Area</a>
        </p>
        <img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=8c308b7d-f2a6-4140-81ac-9519f9620dc0" />
      </body>
      <title>Photosynth</title>
      <guid isPermaLink="false">http://www.r2musings.com/PermaLink,guid,8c308b7d-f2a6-4140-81ac-9519f9620dc0.aspx</guid>
      <link>http://www.r2musings.com/2008/08/28/Photosynth.aspx</link>
      <pubDate>Thu, 28 Aug 2008 14:01:28 GMT</pubDate>
      <description>&lt;p&gt;
For those that missed the announcement last week, &lt;a href="http://photosynth.net/Default.aspx" target="_blank"&gt;PhotoSynth&lt;/a&gt; is
live and after a pretty bumpy start looks like you can at least play around with it
now.&amp;#160; I've managed to load two of my sets of photos from a trip to the High Sierras
a couple of years ago.&amp;#160; It definitely still has its bumps as I had to cancel
and restart the synth several times as it would hang indefinitely.&amp;#160; I didn't
get really high &amp;quot;synthy&amp;quot; scores as I wasn't taking the photos with &lt;a href="http://photosynth.net/Default.aspx" target="_blank"&gt;PhotoSynth&lt;/a&gt; in
mind at the time.&amp;#160; However, the &lt;a href="http://photosynth.net/Default.aspx" target="_blank"&gt;PhotoSynth&lt;/a&gt; team
has supplied a &lt;a href="http://photosynth.net/documentation/Photosynth%20Guide%20v6b_CC.pdf" target="_blank"&gt;document&lt;/a&gt; of
points to keep in mind while shooting photos if you intend to make a &lt;a href="http://photosynth.net/Default.aspx" target="_blank"&gt;PhotoSynth&lt;/a&gt; out
of them.&amp;#160; I can't wait to try it out when I actually shot the photos for synthing.&amp;#160;
There are numerous really great examples on the &lt;a href="http://photosynth.net/Default.aspx" target="_blank"&gt;PhotoSynth&lt;/a&gt; site,
including some shot by the &lt;a href="http://www.nationalgeographic.com/" target="_blank"&gt;National
Geographic Society&lt;/a&gt; photographers.&amp;#160; I like that you can go full screen (or
full browser) as that really helps make the experience a bit more of an immersive
experience.&amp;#160; Also, the slide show and thumbnails really help as well.&amp;#160; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://photosynth.net/Default.aspx" target="_blank"&gt;PhotoSynth&lt;/a&gt; is now
giving 20GB (!) for free to anyone to try &lt;a href="http://photosynth.net/Default.aspx" target="_blank"&gt;PhotoSynth&lt;/a&gt;.&amp;#160;
It takes a LONG time to use 20GB in JPEGS!&amp;#160; Give it a try.&amp;#160; 
&lt;/p&gt;
&lt;p&gt;
Since my photos didn't all relate to one another, &lt;a href="http://www.photosynth.net" target="_blank"&gt;PhotoSynth&lt;/a&gt; sort
of creates mini-PhotoSynths inside each.&amp;#160; You'll want to check the thumbnails
page to see the various scenes that it stitched together.&amp;#160; 
&lt;/p&gt;
&lt;p&gt;
Here are links to my first two:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://photosynth.net/view.aspx?cid=15de38f7-bfae-4b49-9ee8-1b42bc0d3940" target="_blank"&gt;High
Sierras - Dana Plateau&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://photosynth.net/view.aspx?cid=561b88e1-1ed5-43c1-8206-c2cea92b4f3b" target="_blank"&gt;High
Sierras - Saddlebag Lake Area&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=8c308b7d-f2a6-4140-81ac-9519f9620dc0" /&gt;</description>
      <comments>http://www.r2musings.com/CommentView,guid,8c308b7d-f2a6-4140-81ac-9519f9620dc0.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.r2musings.com/Trackback.aspx?guid=2d09f285-1932-422a-90a0-a009b345f00d</trackback:ping>
      <pingback:server>http://www.r2musings.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.r2musings.com/PermaLink,guid,2d09f285-1932-422a-90a0-a009b345f00d.aspx</pingback:target>
      <dc:creator>Rik Robinson</dc:creator>
      <wfw:comment>http://www.r2musings.com/CommentView,guid,2d09f285-1932-422a-90a0-a009b345f00d.aspx</wfw:comment>
      <wfw:commentRss>http://www.r2musings.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2d09f285-1932-422a-90a0-a009b345f00d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This past weekend a few of us Wintellectuals made the trek Atlanta to Murfreesboro
TN to present at the annual <a href="http://devlink.net/Default.aspx" target="_blank">devLink</a> conference. 
I really can't say enough about the level of professionalism and obvious preparation
that went into <a href="http://devlink.net/Default.aspx" target="_blank">devLink</a>.  <a href="http://www.devlink.net/AboutUs/tabid/54/Default.aspx" target="_blank">John
Kellar</a>, <a href="http://www.devlink.net/AboutUs/tabid/54/Default.aspx" target="_blank">Tommy
Norman</a>, and <a href="http://www.devlink.net/AboutUs/tabid/54/Default.aspx" target="_blank">Leanna
Baker</a> and the entire team that made it happen are well deserving of accolades
for their accomplishment.  The conference was held on the campus of <a href="http://www.mtsu.edu/" target="_blank">Middle
Tennessee State University</a> which was also perfectly suited for the task. 
All of the rooms were nice, large, and well-equipped (even though said equipment was
apparently timed to shut off exactly at the 1-1/2 presentation mark).  As a vegetarian,
I can't say too much for the food, but that's pretty much on par with any gathering...I've
learned to carry plenty or protein bars over the years.  Bottom line, for $50
this absolutely has to be best value for your buck in training (other than Wintellect's <a href="http://www.devscovery.com/" target="_blank">DevScovery</a>,
of course *smile*).  
</p>
        <p>
While my colleagues, <a href="http://www.wintellect.com/CS/blogs/sporter/default.aspx" target="_blank">Steve
Porter</a> and <a href="http://www.mindfusioncorp.com/weblog/" target="_blank">Keith
Rome</a>, offered four really great talks on <a href="http://www.silverlight.net" target="_blank">Silverlight</a> topics,
I was there to present on all the new things available with Cascading Style Sheets
(sarcasm off).  Actually, my CSS talk went really well and I received lots of
good feedback which I'll continue to roll into that presentation.  All sarcasm
aside, most web developers (especially those in Enterprise positions) are stuck with
CSS for the foreseeable future and this presentation really aims to go through the
major areas where I see developers struggling and try and cast some light on how all
those pieces play together.  Thanks to all that made it to the talk (standing
room only!) and for the emails that I've received since. 
</p>
        <p>
I've updated the slides and code with this past weekend's revisions and you can get
it here:
</p>
        <p>
          <a href="http://www.r2musings.com/downloads/CSSDeepDive.zip" target="_blank">CSS Deep
Dive for the ASP.NET Developer</a>
        </p>
        <p>
I believe that the other presentations will be posted on the <a href="http://www.devlink.net" target="_blank">devLink</a> website,
so keep an eye out for them.  There were a lot of good ones! 
</p>
        <img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=2d09f285-1932-422a-90a0-a009b345f00d" />
      </body>
      <title>devLink Conference</title>
      <guid isPermaLink="false">http://www.r2musings.com/PermaLink,guid,2d09f285-1932-422a-90a0-a009b345f00d.aspx</guid>
      <link>http://www.r2musings.com/2008/08/27/devLinkConference.aspx</link>
      <pubDate>Wed, 27 Aug 2008 13:29:59 GMT</pubDate>
      <description>&lt;p&gt;
This past weekend a few of us Wintellectuals made the trek Atlanta to Murfreesboro
TN to present at the annual &lt;a href="http://devlink.net/Default.aspx" target="_blank"&gt;devLink&lt;/a&gt; conference.&amp;#160;
I really can't say enough about the level of professionalism and obvious preparation
that went into &lt;a href="http://devlink.net/Default.aspx" target="_blank"&gt;devLink&lt;/a&gt;.&amp;#160; &lt;a href="http://www.devlink.net/AboutUs/tabid/54/Default.aspx" target="_blank"&gt;John
Kellar&lt;/a&gt;, &lt;a href="http://www.devlink.net/AboutUs/tabid/54/Default.aspx" target="_blank"&gt;Tommy
Norman&lt;/a&gt;, and &lt;a href="http://www.devlink.net/AboutUs/tabid/54/Default.aspx" target="_blank"&gt;Leanna
Baker&lt;/a&gt; and the entire team that made it happen are well deserving of accolades
for their accomplishment.&amp;#160; The conference was held on the campus of &lt;a href="http://www.mtsu.edu/" target="_blank"&gt;Middle
Tennessee State University&lt;/a&gt; which was also perfectly suited for the task.&amp;#160;
All of the rooms were nice, large, and well-equipped (even though said equipment was
apparently timed to shut off exactly at the 1-1/2 presentation mark).&amp;#160; As a vegetarian,
I can't say too much for the food, but that's pretty much on par with any gathering...I've
learned to carry plenty or protein bars over the years.&amp;#160; Bottom line, for $50
this absolutely has to be best value for your buck in training (other than Wintellect's &lt;a href="http://www.devscovery.com/" target="_blank"&gt;DevScovery&lt;/a&gt;,
of course *smile*).&amp;#160; 
&lt;/p&gt;
&lt;p&gt;
While my colleagues, &lt;a href="http://www.wintellect.com/CS/blogs/sporter/default.aspx" target="_blank"&gt;Steve
Porter&lt;/a&gt; and &lt;a href="http://www.mindfusioncorp.com/weblog/" target="_blank"&gt;Keith
Rome&lt;/a&gt;, offered four really great talks on &lt;a href="http://www.silverlight.net" target="_blank"&gt;Silverlight&lt;/a&gt; topics,
I was there to present on all the new things available with Cascading Style Sheets
(sarcasm off).&amp;#160; Actually, my CSS talk went really well and I received lots of
good feedback which I'll continue to roll into that presentation.&amp;#160; All sarcasm
aside, most web developers (especially those in Enterprise positions) are stuck with
CSS for the foreseeable future and this presentation really aims to go through the
major areas where I see developers struggling and try and cast some light on how all
those pieces play together.&amp;#160; Thanks to all that made it to the talk (standing
room only!) and for the emails that I've received since. 
&lt;/p&gt;
&lt;p&gt;
I've updated the slides and code with this past weekend's revisions and you can get
it here:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.r2musings.com/downloads/CSSDeepDive.zip" target="_blank"&gt;CSS Deep
Dive for the ASP.NET Developer&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I believe that the other presentations will be posted on the &lt;a href="http://www.devlink.net" target="_blank"&gt;devLink&lt;/a&gt; website,
so keep an eye out for them.&amp;#160; There were a lot of good ones! 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=2d09f285-1932-422a-90a0-a009b345f00d" /&gt;</description>
      <comments>http://www.r2musings.com/CommentView,guid,2d09f285-1932-422a-90a0-a009b345f00d.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.r2musings.com/Trackback.aspx?guid=3978a7c0-316e-4aa6-a2f8-376693931c08</trackback:ping>
      <pingback:server>http://www.r2musings.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.r2musings.com/PermaLink,guid,3978a7c0-316e-4aa6-a2f8-376693931c08.aspx</pingback:target>
      <dc:creator>Rik Robinson</dc:creator>
      <wfw:comment>http://www.r2musings.com/CommentView,guid,3978a7c0-316e-4aa6-a2f8-376693931c08.aspx</wfw:comment>
      <wfw:commentRss>http://www.r2musings.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3978a7c0-316e-4aa6-a2f8-376693931c08</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Thanks to all the folks that came to my <a href="http://www.r2musings.com/2007/10/08/DeepDiveCSSForTheASPNETDeveloper.aspx">Deep
Dive CSS for the ASP.NET Developer</a> session at this past weekend's Atlanta Code
Camp.  I got some really great feedback from the evaluations and will definitely
incorporate some suggestions into this presentation in the future.  
</p>
        <p>
The abstract, updated code and slides are available here:
</p>
        <p>
 <a href="http://www.r2musings.com/ct.ashx?id=8b850af0-d2c0-4a03-b721-5282f4fcab1b&amp;url=http%3a%2f%2fwww.r2musings.com%2fdownloads%2fCSSDeepDive.zip">Deep
Dive CSS for the ASP.NET Developer</a></p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=3978a7c0-316e-4aa6-a2f8-376693931c08" />
      </body>
      <title>Updated Deep Dive CSS code</title>
      <guid isPermaLink="false">http://www.r2musings.com/PermaLink,guid,3978a7c0-316e-4aa6-a2f8-376693931c08.aspx</guid>
      <link>http://www.r2musings.com/2008/04/01/UpdatedDeepDiveCSSCode.aspx</link>
      <pubDate>Tue, 01 Apr 2008 21:25:35 GMT</pubDate>
      <description>&lt;p&gt;
Thanks to all the folks that came to my &lt;a href="http://www.r2musings.com/2007/10/08/DeepDiveCSSForTheASPNETDeveloper.aspx"&gt;Deep
Dive CSS for the ASP.NET Developer&lt;/a&gt; session at this past weekend's Atlanta Code
Camp.&amp;nbsp; I got some really great feedback from the evaluations and will definitely
incorporate some suggestions into this presentation in the future.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
The abstract, updated code and slides are available here:
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&lt;a href="http://www.r2musings.com/ct.ashx?id=8b850af0-d2c0-4a03-b721-5282f4fcab1b&amp;amp;url=http%3a%2f%2fwww.r2musings.com%2fdownloads%2fCSSDeepDive.zip"&gt;Deep
Dive CSS for the ASP.NET Developer&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=3978a7c0-316e-4aa6-a2f8-376693931c08" /&gt;</description>
      <comments>http://www.r2musings.com/CommentView,guid,3978a7c0-316e-4aa6-a2f8-376693931c08.aspx</comments>
      <category>CSS</category>
      <category>Presentations</category>
      <category>Visual Studio 2008</category>
    </item>
    <item>
      <trackback:ping>http://www.r2musings.com/Trackback.aspx?guid=06a23a46-e6ee-48cc-8c20-9fc2847afa98</trackback:ping>
      <pingback:server>http://www.r2musings.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.r2musings.com/PermaLink,guid,06a23a46-e6ee-48cc-8c20-9fc2847afa98.aspx</pingback:target>
      <dc:creator>Rik Robinson</dc:creator>
      <wfw:comment>http://www.r2musings.com/CommentView,guid,06a23a46-e6ee-48cc-8c20-9fc2847afa98.aspx</wfw:comment>
      <wfw:commentRss>http://www.r2musings.com/SyndicationService.asmx/GetEntryCommentsRss?guid=06a23a46-e6ee-48cc-8c20-9fc2847afa98</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
We saw it when the world first discovered Flash and I'm sure we've got a lot of it
left to live through with <a href="http://silverlight.net" target="_blank">Silverlight</a>,
so this is pretty timely advice from the "Godfather of Web Usability" himself, <a href="http://www.useit.com/jakob/" target="_blank">Jakob
Nielsen</a>.  This should be required for every web developer.  There are
some great links within the post as well, so be sure to click around.
</p>
        <p>
          <a href="http://www.useit.com/alertbox/application-mistakes.html" target="_blank">Top-10
Application-Design Mistakes</a>
        </p>
        <img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=06a23a46-e6ee-48cc-8c20-9fc2847afa98" />
      </body>
      <title>Top-10 Application-Design Mistakes</title>
      <guid isPermaLink="false">http://www.r2musings.com/PermaLink,guid,06a23a46-e6ee-48cc-8c20-9fc2847afa98.aspx</guid>
      <link>http://www.r2musings.com/2008/02/20/Top10ApplicationDesignMistakes.aspx</link>
      <pubDate>Wed, 20 Feb 2008 05:52:10 GMT</pubDate>
      <description>&lt;p&gt;
We saw it when the world first discovered Flash and I'm sure we've got a lot of it
left to live through with &lt;a href="http://silverlight.net" target=_blank&gt;Silverlight&lt;/a&gt;,
so this is pretty timely advice from the "Godfather of Web Usability" himself, &lt;a href="http://www.useit.com/jakob/" target=_blank&gt;Jakob
Nielsen&lt;/a&gt;.&amp;nbsp; This should be required for every web developer.&amp;nbsp; There are
some great links within the post as well, so be sure to click around.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.useit.com/alertbox/application-mistakes.html" target=_blank&gt;Top-10
Application-Design Mistakes&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=06a23a46-e6ee-48cc-8c20-9fc2847afa98" /&gt;</description>
      <comments>http://www.r2musings.com/CommentView,guid,06a23a46-e6ee-48cc-8c20-9fc2847afa98.aspx</comments>
      <category>Silverlight</category>
      <category>UI and Usability</category>
    </item>
    <item>
      <trackback:ping>http://www.r2musings.com/Trackback.aspx?guid=b44f1bf2-a94f-4332-a8a4-f3d00ef515ae</trackback:ping>
      <pingback:server>http://www.r2musings.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.r2musings.com/PermaLink,guid,b44f1bf2-a94f-4332-a8a4-f3d00ef515ae.aspx</pingback:target>
      <dc:creator>Rik Robinson</dc:creator>
      <wfw:comment>http://www.r2musings.com/CommentView,guid,b44f1bf2-a94f-4332-a8a4-f3d00ef515ae.aspx</wfw:comment>
      <wfw:commentRss>http://www.r2musings.com/SyndicationService.asmx/GetEntryCommentsRss?guid=b44f1bf2-a94f-4332-a8a4-f3d00ef515ae</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
There is finally a (relatively) painless way to receive your Free Annual Credit Report
from the Big 3 Credit Agencies.  It is a really good idea to keep your eye on
your credit report these days.  The folks at <a href="http://www.annualcreditreport.com/" target="_blank">AnnualCreditReport.com</a> have
integrated the registration processes for the three Credit Agencies into a seamless
wizard type experience.  I was able to print all three of mine in less than 10
minutes. 
</p>
        <img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=b44f1bf2-a94f-4332-a8a4-f3d00ef515ae" />
      </body>
      <title>Painless Free Annual Credit Reports</title>
      <guid isPermaLink="false">http://www.r2musings.com/PermaLink,guid,b44f1bf2-a94f-4332-a8a4-f3d00ef515ae.aspx</guid>
      <link>http://www.r2musings.com/2008/01/25/PainlessFreeAnnualCreditReports.aspx</link>
      <pubDate>Fri, 25 Jan 2008 18:30:24 GMT</pubDate>
      <description>&lt;p&gt;
There is finally a (relatively) painless way to receive your Free Annual Credit Report
from the Big 3 Credit Agencies.&amp;#160; It is a really good idea to keep your eye on
your credit report these days.&amp;#160; The folks at &lt;a href="http://www.annualcreditreport.com/" target="_blank"&gt;AnnualCreditReport.com&lt;/a&gt; have
integrated the registration processes for the three Credit Agencies into a seamless
wizard type experience.&amp;#160; I was able to print all three of mine in less than 10
minutes. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=b44f1bf2-a94f-4332-a8a4-f3d00ef515ae" /&gt;</description>
      <comments>http://www.r2musings.com/CommentView,guid,b44f1bf2-a94f-4332-a8a4-f3d00ef515ae.aspx</comments>
      <category>Random</category>
    </item>
    <item>
      <trackback:ping>http://www.r2musings.com/Trackback.aspx?guid=2c270816-1d80-4335-b593-bc19b7535b77</trackback:ping>
      <pingback:server>http://www.r2musings.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.r2musings.com/PermaLink,guid,2c270816-1d80-4335-b593-bc19b7535b77.aspx</pingback:target>
      <dc:creator>Rik Robinson</dc:creator>
      <wfw:comment>http://www.r2musings.com/CommentView,guid,2c270816-1d80-4335-b593-bc19b7535b77.aspx</wfw:comment>
      <wfw:commentRss>http://www.r2musings.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2c270816-1d80-4335-b593-bc19b7535b77</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The <a href="http://silverlight.r2musings.com/weatherwidget" target="_blank">Silverlight
Weather Widget</a> made it to the <a href="http://silverlight.net/Showcase/" target="_blank">Silverlight.net
Showcase</a> and is mentioned in the News section of the <a href="http://silverlight.net" target="_blank">Home
Page</a>.  WooHooo.  
</p>
        <img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=2c270816-1d80-4335-b593-bc19b7535b77" />
      </body>
      <title>Weather Widget now in the Silverlight.net Showcase</title>
      <guid isPermaLink="false">http://www.r2musings.com/PermaLink,guid,2c270816-1d80-4335-b593-bc19b7535b77.aspx</guid>
      <link>http://www.r2musings.com/2008/01/25/WeatherWidgetNowInTheSilverlightnetShowcase.aspx</link>
      <pubDate>Fri, 25 Jan 2008 08:07:29 GMT</pubDate>
      <description>&lt;p&gt;
The &lt;a href="http://silverlight.r2musings.com/weatherwidget" target="_blank"&gt;Silverlight
Weather Widget&lt;/a&gt; made it to the &lt;a href="http://silverlight.net/Showcase/" target="_blank"&gt;Silverlight.net
Showcase&lt;/a&gt; and is mentioned in the News section of the &lt;a href="http://silverlight.net" target="_blank"&gt;Home
Page&lt;/a&gt;.&amp;#160; WooHooo.&amp;#160; 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=2c270816-1d80-4335-b593-bc19b7535b77" /&gt;</description>
      <comments>http://www.r2musings.com/CommentView,guid,2c270816-1d80-4335-b593-bc19b7535b77.aspx</comments>
      <category>Silverlight 1.0</category>
    </item>
    <item>
      <trackback:ping>http://www.r2musings.com/Trackback.aspx?guid=c5527d87-55c1-47fa-a349-bbd955d7c2be</trackback:ping>
      <pingback:server>http://www.r2musings.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.r2musings.com/PermaLink,guid,c5527d87-55c1-47fa-a349-bbd955d7c2be.aspx</pingback:target>
      <dc:creator>Rik Robinson</dc:creator>
      <wfw:comment>http://www.r2musings.com/CommentView,guid,c5527d87-55c1-47fa-a349-bbd955d7c2be.aspx</wfw:comment>
      <wfw:commentRss>http://www.r2musings.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c5527d87-55c1-47fa-a349-bbd955d7c2be</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In mathematics, a Set is typically thought of as a collection of <strong>distinct</strong> objects
that is usually defined by some rule that determines whether they are a member of
that particular Set.  For example, a Set could be defined to contain "all the
odd numbers under 100" or "every number divisible by 2" or whatever.  The main
points here being that the objects in a Set are distinct (i.e. NO duplicate objects
are allowed) and the objects are not ordered or sorted in any way.  (If you really
feel the need to geek out on Set Theory, be my <a href="http://en.wikipedia.org/wiki/Set" target="_blank">guest</a>).
</p>
        <p>
According to the <a href="http://msdn2.microsoft.com/en-us/library/bb359438.aspx" target="_blank">MSDN
Documentation for HashSet</a>, "a set is a collection that contains no duplicate elements,
and whose elements are in no particular order."  Sound familiar?  In the
.NET Base Class Library, there has never been a true Set class until now with the
release of .NET 3.5 and the brand-spanking-new System.Collections.Generic.HashSet&lt;T&gt;
class.  
</p>
        <p>
In the past, when we needed to implement a Set in .NET, we sort of bastardized the
List&lt;T&gt; or other unsuspecting Collection classes into something like this:
</p>
        <blockquote>
          <p>
int[] intArray = new int[]{ 1, 2, 5, 7, 4, 1, 7, 9, 8}; 
<br />
List&lt;int&gt; intList = new List&lt;int&gt;(); 
<br />
foreach(int theInt in intArray) 
<br />
{ 
<br />
  // checking to make sure that the object is not in our List before adding 
<br />
  //  so we are calling Contains() and then Add() on every time through
the loop 
<br />
  if (!intList.Contains(theInt)) 
<br />
    intList.Add(theInt); 
<br />
}
</p>
        </blockquote>
        <p>
What we needed was a Set that would let us just keep adding objects to it and free
us from having to worry about it being there first.  A recent example of when
I really needed a true Set class was while working on the <a href="http://silverlight.r2musings.com/weatherwidget" target="_blank">Weather
Widget</a>.  <a href="http://www.weather.com" target="_blank">The Weather Channel</a> provides
some 40+ images for use in their SDK, yet in the Weather Widget I never need more
than maximum of 11 (and usually less as there is usually duplication).  So, I
had the idea to dynamically zip the images that I actually needed for a given Zip
Code and use that file for my image assets in Silverlight via CreateXamlFromDownloader. 
Obviously, I don't want these images duplicated in the zip file.  So, I came
up with this: 
</p>
        <blockquote>
          <p>
HashSet&lt;string&gt; assets = new HashSet&lt;string&gt;(); 
<br />
foreach (ForecastDay day in forecast.Days) 
<br />
{ 
<br />
  // no Exception here if duplicate...it just doesn't add it. 
<br />
  assets.Add(Server.MapPath(String.Format("~/images/{0}", day.IconDay))); 
<br />
} 
<br />
Utility.WriteZipFile(assets.ToArray&lt;string&gt;()) 
</p>
        </blockquote>
        <p>
This just scratches the surface of what HashSet&lt;T&gt; is capable of.  There
are member methods available for most Set operations, such as <a href="http://msdn2.microsoft.com/en-us/library/bb293080.aspx">IntersectWith</a>(), <a href="http://msdn2.microsoft.com/en-us/library/bb342097.aspx">UnionWith</a>(), <a href="http://msdn2.microsoft.com/en-us/library/bb358446.aspx">IsSubsetOf</a>(), <a href="http://msdn2.microsoft.com/en-us/library/bb346923.aspx">IsSupersetOf</a>(),
RemoveWhere(), etc.   Here's a link to all of the <a href="http://msdn2.microsoft.com/en-us/library/bb341004.aspx" target="_blank">HashSet&lt;T&gt;
Members</a>.
</p>
        <p>
Recall that being a member of a set depends on <em>some rule</em> that determines
this membership.  With the HashSet&lt;T&gt;, you can define your own rule of
what it means to be in a Set.  For a good example of defining your own EqualityComparer,
see <a href="http://blogs.msdn.com/bclteam/archive/2006/11/09/introducing-hashset-t-kim-hamilton.aspx" target="_blank">Introducing
HashSet&lt;T&gt; from Kim Hamilton</a> on the <a href="http://blogs.msdn.com/bclteam/default.aspx" target="_blank">BCL
Team Blog</a>.
</p>
        <p>
So, welcome the New Kid on the Block to the Generic Collections.  
</p>
        <p>
One last random link I had on the subject for those interested in LINQ: 
<br /><a href="http://msdn2.microsoft.com/en-us/library/bb397728.aspx" target="_blank">Good
side-by-side comparison of the HashSet and LINQ Set Operations</a></p>
        <img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=c5527d87-55c1-47fa-a349-bbd955d7c2be" />
      </body>
      <title>The New Generic Kid on the Block - HashSet&amp;lt;T&amp;gt;</title>
      <guid isPermaLink="false">http://www.r2musings.com/PermaLink,guid,c5527d87-55c1-47fa-a349-bbd955d7c2be.aspx</guid>
      <link>http://www.r2musings.com/2008/01/25/TheNewGenericKidOnTheBlockHashSetltTgt.aspx</link>
      <pubDate>Fri, 25 Jan 2008 07:53:51 GMT</pubDate>
      <description>&lt;p&gt;
In mathematics, a Set is typically thought of as a collection of &lt;strong&gt;distinct&lt;/strong&gt; objects
that is usually defined by some rule that determines whether they are a member of
that particular Set.&amp;nbsp; For example, a Set could be defined to contain "all the
odd numbers under 100" or "every number divisible by 2" or whatever.&amp;nbsp; The main
points here being that the objects in a Set are distinct (i.e. NO duplicate objects
are allowed) and the objects are not ordered or sorted in any way.&amp;nbsp; (If you really
feel the need to geek out on Set Theory, be my &lt;a href="http://en.wikipedia.org/wiki/Set" target=_blank&gt;guest&lt;/a&gt;).
&lt;/p&gt;
&lt;p&gt;
According to the &lt;a href="http://msdn2.microsoft.com/en-us/library/bb359438.aspx" target=_blank&gt;MSDN
Documentation for HashSet&lt;/a&gt;, "a set is a collection that contains no duplicate elements,
and whose elements are in no particular order."&amp;nbsp; Sound familiar?&amp;nbsp; In the
.NET Base Class Library, there has never been a true Set class until now with the
release of&amp;nbsp;.NET 3.5&amp;nbsp;and the brand-spanking-new System.Collections.Generic.HashSet&amp;lt;T&amp;gt;
class.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
In the past, when we needed to implement a Set in .NET, we sort of bastardized the
List&amp;lt;T&amp;gt; or other unsuspecting Collection classes into something like this:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
int[] intArray = new int[]{ 1, 2, 5, 7, 4, 1, 7, 9, 8}; 
&lt;br&gt;
List&amp;lt;int&amp;gt; intList = new List&amp;lt;int&amp;gt;(); 
&lt;br&gt;
foreach(int theInt in intArray) 
&lt;br&gt;
{ 
&lt;br&gt;
&amp;nbsp; // checking to make sure that the object is not in our List before adding 
&lt;br&gt;
&amp;nbsp; //&amp;nbsp; so we are calling Contains() and then Add() on every time through
the loop 
&lt;br&gt;
&amp;nbsp; if (!intList.Contains(theInt)) 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; intList.Add(theInt); 
&lt;br&gt;
}
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
What we needed was a Set that would let us just keep adding objects to it and free
us from having to worry about it being there first.&amp;nbsp; A recent example of when
I really needed a true Set class was while working on the &lt;a href="http://silverlight.r2musings.com/weatherwidget" target=_blank&gt;Weather
Widget&lt;/a&gt;.&amp;nbsp; &lt;a href="http://www.weather.com" target=_blank&gt;The Weather Channel&lt;/a&gt; provides
some 40+ images for use in their SDK, yet in the Weather Widget I never need more
than maximum of 11 (and usually less as there is usually duplication).&amp;nbsp; So, I
had the idea to dynamically zip the images that I actually needed for a given Zip
Code and use that file for my image assets in Silverlight via CreateXamlFromDownloader.&amp;nbsp;
Obviously, I don't want these images duplicated in the zip file.&amp;nbsp; So, I came
up with this: 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
HashSet&amp;lt;string&amp;gt; assets = new HashSet&amp;lt;string&amp;gt;(); 
&lt;br&gt;
foreach (ForecastDay day in forecast.Days) 
&lt;br&gt;
{ 
&lt;br&gt;
&amp;nbsp; // no Exception here if duplicate...it just doesn't add it. 
&lt;br&gt;
&amp;nbsp; assets.Add(Server.MapPath(String.Format("~/images/{0}", day.IconDay))); 
&lt;br&gt;
} 
&lt;br&gt;
Utility.WriteZipFile(assets.ToArray&amp;lt;string&amp;gt;()) 
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
This just scratches the surface of what HashSet&amp;lt;T&amp;gt; is capable of.&amp;nbsp; There
are member methods available for most Set operations, such as &lt;a href="http://msdn2.microsoft.com/en-us/library/bb293080.aspx"&gt;IntersectWith&lt;/a&gt;(), &lt;a href="http://msdn2.microsoft.com/en-us/library/bb342097.aspx"&gt;UnionWith&lt;/a&gt;(), &lt;a href="http://msdn2.microsoft.com/en-us/library/bb358446.aspx"&gt;IsSubsetOf&lt;/a&gt;(), &lt;a href="http://msdn2.microsoft.com/en-us/library/bb346923.aspx"&gt;IsSupersetOf&lt;/a&gt;(),
RemoveWhere(), etc.&amp;nbsp;&amp;nbsp; Here's a link to all of the &lt;a href="http://msdn2.microsoft.com/en-us/library/bb341004.aspx" target=_blank&gt;HashSet&amp;lt;T&amp;gt;
Members&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Recall that being a member of a set depends on &lt;em&gt;some rule&lt;/em&gt; that determines
this membership.&amp;nbsp; With the HashSet&amp;lt;T&amp;gt;, you can define your own rule of
what it means to be in a Set.&amp;nbsp; For a good example of defining your own EqualityComparer,
see &lt;a href="http://blogs.msdn.com/bclteam/archive/2006/11/09/introducing-hashset-t-kim-hamilton.aspx" target=_blank&gt;Introducing
HashSet&amp;lt;T&amp;gt; from Kim Hamilton&lt;/a&gt; on the &lt;a href="http://blogs.msdn.com/bclteam/default.aspx" target=_blank&gt;BCL
Team Blog&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
So, welcome the New Kid on the Block to the Generic Collections.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
One last random link I had on the subject for those interested in LINQ: 
&lt;br&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/bb397728.aspx" target=_blank&gt;Good
side-by-side comparison of the HashSet and LINQ Set Operations&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=c5527d87-55c1-47fa-a349-bbd955d7c2be" /&gt;</description>
      <comments>http://www.r2musings.com/CommentView,guid,c5527d87-55c1-47fa-a349-bbd955d7c2be.aspx</comments>
      <category>Generics</category>
    </item>
    <item>
      <trackback:ping>http://www.r2musings.com/Trackback.aspx?guid=80da82b0-4cb0-4d83-8e1c-3959cd8b692b</trackback:ping>
      <pingback:server>http://www.r2musings.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.r2musings.com/PermaLink,guid,80da82b0-4cb0-4d83-8e1c-3959cd8b692b.aspx</pingback:target>
      <dc:creator>Rik Robinson</dc:creator>
      <wfw:comment>http://www.r2musings.com/CommentView,guid,80da82b0-4cb0-4d83-8e1c-3959cd8b692b.aspx</wfw:comment>
      <wfw:commentRss>http://www.r2musings.com/SyndicationService.asmx/GetEntryCommentsRss?guid=80da82b0-4cb0-4d83-8e1c-3959cd8b692b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
How many times have you written this to trim a trailing slash from a path:
</p>
        <font face="Calibri" color="#000000" size="3">
          <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
            <p>
              <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
                <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">if</span> (myPath.EndsWith(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"\\"</span>))  
/* or "/" in the case of a URI  */<br />
  myPath <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> myPath.Substring(0,
myPath.Length-1); </span>
            </p>
          </blockquote>
        </font>
        <p>
Next time, try this: 
</p>
        <font face="Calibri" color="#000000" size="3">
          <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
            <p>
              <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">myPath <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> myPath.TrimEnd(<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">new</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">char</span>[]{'\\',
'<span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">/</span>'});
</span>
            </p>
          </blockquote>
        </font>
        <p>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
            <font face="Verdana" color="#003300" size="2">In
addition to String.TrimStart() and String.TrimEnd(), there is an overload on String.Trim()
that accepts a character array. There are good examples of usage in the MSDN
Library.  </font>
          </span>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
            <font face="Verdana" color="#003300" size="2">Here
are the links:  </font>
          </span>
        </p>
        <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
          <p class="MsoNormal" style="MARGIN: 0in 0in 10pt">
            <a href="http://msdn2.microsoft.com/en-us/library/system.string.aspx">System.String</a>    <a href="http://msdn2.microsoft.com/en-us/library/d4tt83f9.aspx">Trim(char[])</a>    <a href="http://msdn2.microsoft.com/en-us/library/system.string.trimstart.aspx">TrimStart(char[])</a>    <a href="http://msdn2.microsoft.com/en-us/library/system.string.trimend.aspx">TrimEnd(char[])</a></p>
        </span>
        <p>
 
</p>
        <font face="Courier New" color="#ff0000">
        </font>
        <img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=80da82b0-4cb0-4d83-8e1c-3959cd8b692b" />
      </body>
      <title>A Better Way to Remove a Trailing Slash from a Path</title>
      <guid isPermaLink="false">http://www.r2musings.com/PermaLink,guid,80da82b0-4cb0-4d83-8e1c-3959cd8b692b.aspx</guid>
      <link>http://www.r2musings.com/2008/01/18/ABetterWayToRemoveATrailingSlashFromAPath.aspx</link>
      <pubDate>Fri, 18 Jan 2008 05:32:41 GMT</pubDate>
      <description>&lt;p&gt;
How many times have you written this to trim a trailing slash from a path:
&lt;/p&gt;
&lt;font face=Calibri color=#000000 size=3&gt; &lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;if&lt;/span&gt; (myPath.EndsWith(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"\\"&lt;/span&gt;))&amp;nbsp;&amp;nbsp;
/* or "/"&amp;nbsp;in the case of a URI&amp;nbsp; */&lt;br&gt;
&amp;nbsp; myPath &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; myPath.Substring(0,
myPath.Length-1); &lt;/span&gt;
&lt;/p&gt;
&lt;/blockquote&gt;&lt;/font&gt; 
&lt;p&gt;
Next time, try this: 
&lt;/p&gt;
&lt;font face=Calibri color=#000000 size=3&gt; &lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;myPath &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; myPath.TrimEnd(&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;char&lt;/span&gt;[]{'\\',
'&lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;/&lt;/span&gt;'});
&lt;/font&gt;&gt;&gt;
&gt; 
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;font face=Verdana color=#003300 size=2&gt;In
addition to String.TrimStart() and String.TrimEnd(), there is an overload on String.Trim()
that accepts a character array.&amp;nbsp;There are good examples of usage in the MSDN
Library.&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;font face=Verdana color=#003300 size=2&gt;Here
are the links:&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt; 
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.string.aspx"&gt;System.String&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://msdn2.microsoft.com/en-us/library/d4tt83f9.aspx"&gt;Trim(char[])&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://msdn2.microsoft.com/en-us/library/system.string.trimstart.aspx"&gt;TrimStart(char[])&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://msdn2.microsoft.com/en-us/library/system.string.trimend.aspx"&gt;TrimEnd(char[])&lt;/a&gt; 
&lt;/p&gt;
&lt;/span&gt; 
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;font face="Courier New" color=#ff0000&gt;&lt;/font&gt;&lt;img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=80da82b0-4cb0-4d83-8e1c-3959cd8b692b" /&gt;</description>
      <comments>http://www.r2musings.com/CommentView,guid,80da82b0-4cb0-4d83-8e1c-3959cd8b692b.aspx</comments>
      <category>C#</category>
    </item>
    <item>
      <trackback:ping>http://www.r2musings.com/Trackback.aspx?guid=0f801d65-5e79-4469-a4f5-34ebe72af74e</trackback:ping>
      <pingback:server>http://www.r2musings.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.r2musings.com/PermaLink,guid,0f801d65-5e79-4469-a4f5-34ebe72af74e.aspx</pingback:target>
      <dc:creator>Rik Robinson</dc:creator>
      <wfw:comment>http://www.r2musings.com/CommentView,guid,0f801d65-5e79-4469-a4f5-34ebe72af74e.aspx</wfw:comment>
      <wfw:commentRss>http://www.r2musings.com/SyndicationService.asmx/GetEntryCommentsRss?guid=0f801d65-5e79-4469-a4f5-34ebe72af74e</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <title>Back from the Silverlight Tour</title>
      <guid isPermaLink="false">http://www.r2musings.com/PermaLink,guid,0f801d65-5e79-4469-a4f5-34ebe72af74e.aspx</guid>
      <link>http://www.r2musings.com/2008/01/18/BackFromTheSilverlightTour.aspx</link>
      <pubDate>Fri, 18 Jan 2008 03:49:55 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
I had a chance to attend the recent Atlanta stop of &lt;a href="http://www.wildermuthconsulting.com/" target=_blank&gt;Wildermuth
Consulting&lt;/a&gt;’s &lt;a href="http://www.silverlight-tour.com/" target=_blank&gt;Silverlight
Tour&lt;/a&gt; this past week and wanted to offer some quick comments about it here for
anyone considering the class.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
Going into the class, I had about 3 weeks of heads-down knowledge of Silverlight 1.0,
but I had spent no time at all with Silverlight 1.1 (now 2.0).&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
had also read &lt;a href="http://www.r2musings.com/ct.ashx?id=e3bbac57-25e3-4e3c-b583-6b1c3f4085c2&amp;amp;url=http%3a%2f%2fwww.amazon.com%2fgp%2fproduct%2f0672330075%3fie%3dUTF8%26tag%3dr2musings-20%26linkCode%3das2%26camp%3d1789%26creative%3d9325%26creativeASIN%3d0672330075" target=_blank&gt;Silverlight
1.0 Unleashed&lt;/a&gt;, watched a lot of the webcasts available and I had just (mostly)
completed my &lt;a href="http://www.r2musings.com/MyFirstLookAtTheSilverLight.aspx"&gt;first
Silverlight 1.0 project&lt;/a&gt;.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
The 3-day &lt;a href="http://www.silverlight-tour.com/" target=_blank&gt;Silverlight Tour&lt;/a&gt; begins
with Day 1 of mostly concepts and terminology and an introduction into the Expression
Suite.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This was mostly review for me,
but I still managed several “a-ha” moments during the day as the presenter, &lt;a href="http://www.adoguy.com/" target=_blank&gt;Shawn
Wildermuth&lt;/a&gt;, explained the “why” behind a lot of the concepts and decisions that
were made in regards to Silverlight.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;It
was a good “shoring up” of my skills in the foundations of Silverlight.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
Day 2 was all about the code.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;We spent
about ½ the day on Silverlight 1.0 and the other ½ on Silverlight 1.1. &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;We
had several labs, lecture, and discussion throughout the day.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;(A
good mix of the three, in my opinion).&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;One
of the strengths of the class was that when questions would come up, we had the flexibility
in the schedule to actually go off on short tangents and explore different ideas as
a class.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I walked away from this day
with a much better understanding of how the code side of Silverlight works with the
design side, as well as, a lot of anticipation for Silverlight 2.0.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
Day 3 was the main reason I had taken the class and Shawn did not disappoint.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;One
of the things I struggled most with while working through the &lt;a href="http://silverlight.r2musings.com/weatherwidget/default.aspx"&gt;Weather
Widget&lt;/a&gt; was how to organize projects and where do I use this method from the AJAX
assemblies and where do I use Silverlight, etc. &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;These
are the types of things that just aren’t in books yet, but Shawn has been there, done
that and you are getting it first-hand.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;We
learned about the integration points with ASP.NET Ajax and Silverlight, and even newer
technologies such as ASP.NET Data Services and the Entity Framework.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;Further,
we talked about packaging of Silverlight controls and other ways of thinking about
the generation of XAML…ways I hadn’t thought about until then.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Very
cool stuff from someone that truly understands the subject matter and takes the time
to explain things in such a way as to really help everyone “get it”.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
So, I walk away with a head full of knowledge about all kinds of fun things that will
be filling my life over the next year (and dying to tear my entire project for the
Weather Widget apart and do it with all the new Best Practices I managed to acquire
over the past 3 days)!&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;
&lt;/p&gt;
&lt;font face=Calibri color=#000000 size=3 font &lt;&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;/font&gt;&lt;img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=0f801d65-5e79-4469-a4f5-34ebe72af74e" /&gt;</description>
      <comments>http://www.r2musings.com/CommentView,guid,0f801d65-5e79-4469-a4f5-34ebe72af74e.aspx</comments>
      <category>ASP.NET Ajax</category>
      <category>Silverlight</category>
    </item>
    <item>
      <trackback:ping>http://www.r2musings.com/Trackback.aspx?guid=7355f956-ae03-408e-9a2d-8d661cb64a8d</trackback:ping>
      <pingback:server>http://www.r2musings.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.r2musings.com/PermaLink,guid,7355f956-ae03-408e-9a2d-8d661cb64a8d.aspx</pingback:target>
      <dc:creator>Rik Robinson</dc:creator>
      <wfw:comment>http://www.r2musings.com/CommentView,guid,7355f956-ae03-408e-9a2d-8d661cb64a8d.aspx</wfw:comment>
      <wfw:commentRss>http://www.r2musings.com/SyndicationService.asmx/GetEntryCommentsRss?guid=7355f956-ae03-408e-9a2d-8d661cb64a8d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A couple of weeks ago, I had the good fortune of catching a webcast from <a href="http://www.wintellect.com/cs/blogs/jprosise/default.aspx">Jeff
Prosise</a> of <a href="http://www.wintellect.com/">Wintellect</a> entitled: 
"Squeeze Your ASP.NET Applications Until They Scream".  I was really impressed
with the content and with Jeff's presentation of same.  The event was sponsored
by Compuware and they have given me permission to post a link to the presentation.  
</p>
        <p>
          <a href="http://www.compuware.com/media.asp?cid=70170000000HVN4">Squeeze Your ASP.NET
Applications Until They Scream</a>
        </p>
        <img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=7355f956-ae03-408e-9a2d-8d661cb64a8d" />
      </body>
      <title>Squeeze Your ASP.NET Applications Until They Scream</title>
      <guid isPermaLink="false">http://www.r2musings.com/PermaLink,guid,7355f956-ae03-408e-9a2d-8d661cb64a8d.aspx</guid>
      <link>http://www.r2musings.com/2008/01/11/SqueezeYourASPNETApplicationsUntilTheyScream.aspx</link>
      <pubDate>Fri, 11 Jan 2008 16:50:52 GMT</pubDate>
      <description>&lt;p&gt;
A couple of weeks ago, I had the good fortune of catching a webcast from &lt;a href="http://www.wintellect.com/cs/blogs/jprosise/default.aspx"&gt;Jeff
Prosise&lt;/a&gt; of &lt;a href="http://www.wintellect.com/"&gt;Wintellect&lt;/a&gt;&amp;nbsp;entitled:&amp;nbsp;
"Squeeze Your ASP.NET Applications Until They Scream".&amp;nbsp;&amp;nbsp;I was really impressed
with the content and with Jeff's presentation of same.&amp;nbsp; The event was sponsored
by Compuware and they have given me permission to post a link to the presentation.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.compuware.com/media.asp?cid=70170000000HVN4"&gt;Squeeze Your ASP.NET
Applications Until They Scream&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=7355f956-ae03-408e-9a2d-8d661cb64a8d" /&gt;</description>
      <comments>http://www.r2musings.com/CommentView,guid,7355f956-ae03-408e-9a2d-8d661cb64a8d.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://www.r2musings.com/Trackback.aspx?guid=e3bbac57-25e3-4e3c-b583-6b1c3f4085c2</trackback:ping>
      <pingback:server>http://www.r2musings.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.r2musings.com/PermaLink,guid,e3bbac57-25e3-4e3c-b583-6b1c3f4085c2.aspx</pingback:target>
      <dc:creator>Rik Robinson</dc:creator>
      <wfw:comment>http://www.r2musings.com/CommentView,guid,e3bbac57-25e3-4e3c-b583-6b1c3f4085c2.aspx</wfw:comment>
      <wfw:commentRss>http://www.r2musings.com/SyndicationService.asmx/GetEntryCommentsRss?guid=e3bbac57-25e3-4e3c-b583-6b1c3f4085c2</wfw:commentRss>
      <slash:comments>8</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <font face="Calibri" color="#000000" size="3">
          <p class="MsoNormal" style="MARGIN: 0in 0in 10pt">
Over the holidays, I was finally able to catch up on some reading and take some time
to play with Silverlight 1.0.<span style="mso-spacerun: yes">  </span>The two
books that I spent the most time with are 
</p>
        </font>
        <a href="http://www.amazon.com/gp/product/1933988142?ie=UTF8&amp;tag=r2musings-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1933988142" target="_blank">ASP.NET
Ajax in Action</a>
        <font face="Calibri" color="#000000" size="3">and </font>
        <a href="http://www.amazon.com/gp/product/0672330075?ie=UTF8&amp;tag=r2musings-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0672330075" target="_blank">Silverlight
1.0 Unleashed</a>
        <font face="Calibri" color="#000000" size="3">.<span style="mso-spacerun: yes">  </span>Both
of these, I HIGHLY recommend!<span style="mso-spacerun: yes">  </span><p class="MsoNormal" style="MARGIN: 0in 0in 10pt">
My first project is a Silverlight 1.0 application that I call Weather Widget (for
lack of a more exciting moniker).<span style="mso-spacerun: yes">  </span>The
Weather Widget will accept a 5-digit US Zip Code and return a 5-day forecast from
The Weather Channel.<span style="mso-spacerun: yes">  </span><span style="mso-spacerun: yes"> </span>You
can see it in action <a href="http://silverlight.r2musings.com/weatherwidget/default.aspx"><span style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none">here</span></a>:<span style="mso-spacerun: yes">  
</span></p></font>
        <a href="http://silverlight.r2musings.com/weatherwidget/default.aspx" target="_blank">Weather
Widget</a>
        <font face="Calibri" color="#000000" size="3">.<span style="mso-spacerun: yes">  </span>(Note:<span style="mso-spacerun: yes">  </span>This
will require the Silverlight 1.0 plug-in). 
<p class="MsoNormal" style="MARGIN: 0in 0in 10pt">
I also took the time in this project to use (experiment) with a lot of new toys such
as:<span style="mso-spacerun: yes">  </span></p><p class="MsoListParagraphCxSpFirst" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">         </span></span></span>LINQ
to XML (and the XDocument/XElement classes) 
</p><p class="MsoListParagraphCxSpMiddle" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">         </span></span></span>New
C# language enhancements including Automatic Properties, Object Initializers, Implicitly
typed variables, etc.<span style="mso-spacerun: yes">  </span></p><p class="MsoListParagraphCxSpMiddle" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">         </span></span></span>Javascript
key events – some hard-learned (and forgotten and now painfully re-learned) lessons
to share here
</p><p class="MsoListParagraphCxSpMiddle" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">         </span></span></span>Integration
of ASP.NET Ajax and Silverlight – my implementation here is rudimentary right now
as I’m still sorting through the most efficient blending of these two technologies
</p><p class="MsoListParagraphCxSpMiddle" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">         </span></span></span>Integration
of DOM Elements with Silverlight (good post from Keith on that topic
</p></font>
        <a href="http://www.mindfusioncorp.com/weblog/2007/06/14/Quick+Tip+Input+Controls+In+Silverlight.aspx" target="_blank">here</a>)
<font face="Calibri" color="#000000" size="3"><p class="MsoListParagraphCxSpMiddle" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">         </span></span></span>Expression
Studio (mostly Blend) - <span style="mso-spacerun: yes"> </span>I have much to
say about this (some of which you can read in this discussion in Shawn’s comments 
</p></font><a href="http://www.adoguy.com/2007/12/21/A_Year_with_Silverlight.aspx" target="_blank">here</a><font face="Calibri" color="#000000" size="3">).<span style="mso-spacerun: yes">  </span>Overall,
I really like a lot of things about Blend.<span style="mso-spacerun: yes">  </span>I
am finding myself there more these days though I miss a lot of things about working
in Macromedia (now Adobe) Fireworks (which I have used for MANY years for all of my
design work).<span style="mso-spacerun: yes">  </span>One upcoming post I’m working
on here is “Top 10 Things I miss from Fireworks while working in Blend”.<span style="mso-spacerun: yes">  </span><p class="MsoListParagraphCxSpLast" style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">         </span></span></span>Using
JSON – I had never used it so now I have
</p><p class="MsoNormal" style="MARGIN: 0in 0in 10pt">
Guess that about covers it.<span style="mso-spacerun: yes">  </span>I’ll link
back to the above points as I blog about each.<span style="mso-spacerun: yes">  </span></p><p class="MsoNormal" style="MARGIN: 0in 0in 10pt">
I have several things I’m planning to add (and am open to suggestions), but wanted
to get it out there in its current state.<span style="mso-spacerun: yes">  </span>Once
I am happy with it, I’ll post it to the gallery on the 
</p></font><a href="http://www.silverlight.net/" target="_blank">Silverlight.net</a><font face="Calibri" color="#000000" size="3"> site.<span style="mso-spacerun: yes">  </span><p class="MsoNormal" style="MARGIN: 0in 0in 10pt">
Let me know if the Widget blows up…at this point, I’ve tested only on IE7 and Firefox
on my laptop (Windows Vista64).<span style="mso-spacerun: yes">  </span></p><p class="MsoNormal" style="MARGIN: 0in 0in 10pt"></p></font><p class="MsoNormal" style="MARGIN: 0in 0in 10pt">
 
</p><img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=e3bbac57-25e3-4e3c-b583-6b1c3f4085c2" /></body>
      <title>My First Look at the (Silver)Light</title>
      <guid isPermaLink="false">http://www.r2musings.com/PermaLink,guid,e3bbac57-25e3-4e3c-b583-6b1c3f4085c2.aspx</guid>
      <link>http://www.r2musings.com/2008/01/07/MyFirstLookAtTheSilverLight.aspx</link>
      <pubDate>Mon, 07 Jan 2008 05:25:20 GMT</pubDate>
      <description>&lt;font face=Calibri color=#000000 size=3&gt; 
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
Over the holidays, I was finally able to catch up on some reading and take some time
to play with Silverlight 1.0.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;The two
books that I spent the most time with are 
&lt;/font&gt;&lt;a href="http://www.amazon.com/gp/product/1933988142?ie=UTF8&amp;amp;tag=r2musings-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1933988142" target=_blank&gt;ASP.NET
Ajax in Action&lt;/a&gt; &lt;font face=Calibri color=#000000 size=3&gt;and &lt;/font&gt;&lt;a href="http://www.amazon.com/gp/product/0672330075?ie=UTF8&amp;amp;tag=r2musings-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0672330075" target=_blank&gt;Silverlight
1.0 Unleashed&lt;/a&gt;&lt;font face=Calibri color=#000000 size=3&gt;.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Both
of these, I HIGHLY recommend!&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
My first project is a Silverlight 1.0 application that I call Weather Widget (for
lack of a more exciting moniker).&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;The
Weather Widget will accept a 5-digit US Zip Code and return a 5-day forecast from
The Weather Channel.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;You
can see it in action &lt;a href="http://silverlight.r2musings.com/weatherwidget/default.aspx"&gt;&lt;span style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none"&gt;here&lt;/span&gt;&lt;/a&gt;:&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; 
&lt;/font&gt;&gt;&lt;a href="http://silverlight.r2musings.com/weatherwidget/default.aspx" target=_blank&gt;Weather
Widget&lt;/a&gt;&lt;font face=Calibri color=#000000 size=3&gt;.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;(Note:&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This
will require the Silverlight 1.0 plug-in). &gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
I also took the time in this project to use (experiment) with a lot of new toys such
as:&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;
&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;LINQ
to XML (and the XDocument/XElement classes) 
&lt;/p&gt;
&lt;p class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;
&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;New
C# language enhancements including Automatic Properties, Object Initializers, Implicitly
typed variables, etc.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;
&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Javascript
key events – some hard-learned (and forgotten and now painfully re-learned) lessons
to share here
&lt;/p&gt;
&lt;p class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;
&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Integration
of ASP.NET Ajax and Silverlight – my implementation here is rudimentary right now
as I’m still sorting through the most efficient blending of these two technologies
&lt;/p&gt;
&lt;p class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;
&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Integration
of DOM Elements with Silverlight (good post from Keith on that topic
&lt;/font&gt; &lt;a href="http://www.mindfusioncorp.com/weblog/2007/06/14/Quick+Tip+Input+Controls+In+Silverlight.aspx" target=_blank&gt;here&lt;/a&gt;)&gt;
&lt;font face=Calibri color=#000000 size=3&gt; 
&lt;p class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;
&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Expression
Studio (mostly Blend) - &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;I have much to
say about this (some of which you can read in this discussion in Shawn’s comments 
&lt;/font&gt;&lt;a href="http://www.adoguy.com/2007/12/21/A_Year_with_Silverlight.aspx" target=_blank&gt;here&lt;/a&gt;&lt;font face=Calibri color=#000000 size=3&gt;).&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Overall,
I really like a lot of things about Blend.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
am finding myself there more these days though I miss a lot of things about working
in Macromedia (now Adobe) Fireworks (which I have used for MANY years for all of my
design work).&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;One upcoming post I’m working
on here is “Top 10 Things I miss from Fireworks while working in Blend”.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&gt;
&lt;p class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;
&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Using
JSON – I had never used it so now I have
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
Guess that about covers it.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I’ll link
back to the above points as I blog about each.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
I have several things I’m planning to add (and am open to suggestions), but wanted
to get it out there in its current state.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Once
I am happy with it, I’ll post it to the gallery on the 
&lt;/font&gt;&lt;a href="http://www.silverlight.net/" target=_blank&gt;Silverlight.net&lt;/a&gt;&lt;font face=Calibri color=#000000 size=3&gt; site.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
Let me know if the Widget blows up…at this point, I’ve tested only on IE7 and Firefox
on my laptop (Windows Vista64).&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
&lt;/font&gt;&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=e3bbac57-25e3-4e3c-b583-6b1c3f4085c2" /&gt;</description>
      <comments>http://www.r2musings.com/CommentView,guid,e3bbac57-25e3-4e3c-b583-6b1c3f4085c2.aspx</comments>
      <category>ASP.NET Ajax</category>
      <category>Expression</category>
      <category>Silverlight 1.0</category>
    </item>
    <item>
      <trackback:ping>http://www.r2musings.com/Trackback.aspx?guid=b2f434e2-be51-40d0-b016-9f9b021ebe43</trackback:ping>
      <pingback:server>http://www.r2musings.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.r2musings.com/PermaLink,guid,b2f434e2-be51-40d0-b016-9f9b021ebe43.aspx</pingback:target>
      <dc:creator>Rik Robinson</dc:creator>
      <wfw:comment>http://www.r2musings.com/CommentView,guid,b2f434e2-be51-40d0-b016-9f9b021ebe43.aspx</wfw:comment>
      <wfw:commentRss>http://www.r2musings.com/SyndicationService.asmx/GetEntryCommentsRss?guid=b2f434e2-be51-40d0-b016-9f9b021ebe43</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This page has a list of changes, as well as, a link to get the bits:
</p>
        <p>
          <a href="http://www.microsoft.com/expression/products/download.aspx?key=blend2preview">http://www.microsoft.com/expression/products/download.aspx?key=blend2preview</a>
        </p>
        <p>
 
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=b2f434e2-be51-40d0-b016-9f9b021ebe43" />
      </body>
      <title>Expression Blend December Preview is out</title>
      <guid isPermaLink="false">http://www.r2musings.com/PermaLink,guid,b2f434e2-be51-40d0-b016-9f9b021ebe43.aspx</guid>
      <link>http://www.r2musings.com/2007/12/08/ExpressionBlendDecemberPreviewIsOut.aspx</link>
      <pubDate>Sat, 08 Dec 2007 03:50:31 GMT</pubDate>
      <description>&lt;p&gt;
This page has a list of changes, as well as, a link to get the bits:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/expression/products/download.aspx?key=blend2preview"&gt;http://www.microsoft.com/expression/products/download.aspx?key=blend2preview&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=b2f434e2-be51-40d0-b016-9f9b021ebe43" /&gt;</description>
      <comments>http://www.r2musings.com/CommentView,guid,b2f434e2-be51-40d0-b016-9f9b021ebe43.aspx</comments>
      <category>Expression</category>
    </item>
    <item>
      <trackback:ping>http://www.r2musings.com/Trackback.aspx?guid=13c139f8-6ff8-4878-a6d9-2b37b49bf33b</trackback:ping>
      <pingback:server>http://www.r2musings.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.r2musings.com/PermaLink,guid,13c139f8-6ff8-4878-a6d9-2b37b49bf33b.aspx</pingback:target>
      <dc:creator>Rik Robinson</dc:creator>
      <wfw:comment>http://www.r2musings.com/CommentView,guid,13c139f8-6ff8-4878-a6d9-2b37b49bf33b.aspx</wfw:comment>
      <wfw:commentRss>http://www.r2musings.com/SyndicationService.asmx/GetEntryCommentsRss?guid=13c139f8-6ff8-4878-a6d9-2b37b49bf33b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Today, I was struggling with getting some code deployed to a client's test
server and called him to double-check FTP credentials and such.   He casually
mentions having the ability to share your hard drive (and other devices) with a Remote
Desktop session.  How many times would that have come in handy?!?!  
Anyway, I dug into it further and it works!  
</p>
        <p>
Check out <a href="http://blogs.inetium.com/blogs/dmork/archive/2007/10/03/transferring-files-via-remote-desktop.aspx">Dan
Mork's blog posting</a> on the topic as he does a great job of walking you through
the process.  (Make sure and check the comments as there is another really good
tip there about saving your Remote Desktop connection with your configuration).  
</p>
        <img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=13c139f8-6ff8-4878-a6d9-2b37b49bf33b" />
      </body>
      <title>Sharing Folders in Remote Desktop</title>
      <guid isPermaLink="false">http://www.r2musings.com/PermaLink,guid,13c139f8-6ff8-4878-a6d9-2b37b49bf33b.aspx</guid>
      <link>http://www.r2musings.com/2007/10/17/SharingFoldersInRemoteDesktop.aspx</link>
      <pubDate>Wed, 17 Oct 2007 19:52:28 GMT</pubDate>
      <description>&lt;p&gt;
Today, I was&amp;nbsp;struggling with getting some code deployed to&amp;nbsp;a client's test
server and called him to double-check FTP credentials and such.&amp;nbsp;&amp;nbsp; He casually
mentions having the ability to share your hard drive (and other devices) with a Remote
Desktop session.&amp;nbsp;&amp;nbsp;How many times&amp;nbsp;would that have come in handy?!?!&amp;nbsp;&amp;nbsp;
Anyway,&amp;nbsp;I dug into it further and it works!&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Check out &lt;a href="http://blogs.inetium.com/blogs/dmork/archive/2007/10/03/transferring-files-via-remote-desktop.aspx"&gt;Dan
Mork's blog posting&lt;/a&gt; on the topic as he does a great job of walking you through
the process.&amp;nbsp; (Make sure and check the comments as there is another really good
tip there about saving your Remote Desktop connection with your configuration).&amp;nbsp; 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=13c139f8-6ff8-4878-a6d9-2b37b49bf33b" /&gt;</description>
      <comments>http://www.r2musings.com/CommentView,guid,13c139f8-6ff8-4878-a6d9-2b37b49bf33b.aspx</comments>
      <category>Windows Tips</category>
    </item>
    <item>
      <trackback:ping>http://www.r2musings.com/Trackback.aspx?guid=8b850af0-d2c0-4a03-b721-5282f4fcab1b</trackback:ping>
      <pingback:server>http://www.r2musings.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.r2musings.com/PermaLink,guid,8b850af0-d2c0-4a03-b721-5282f4fcab1b.aspx</pingback:target>
      <dc:creator>Rik Robinson</dc:creator>
      <wfw:comment>http://www.r2musings.com/CommentView,guid,8b850af0-d2c0-4a03-b721-5282f4fcab1b.aspx</wfw:comment>
      <wfw:commentRss>http://www.r2musings.com/SyndicationService.asmx/GetEntryCommentsRss?guid=8b850af0-d2c0-4a03-b721-5282f4fcab1b</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Thanks everyone for the comments and tips offered after I gave this presentation
at Alabama Code Camp, as well as, at the Atlanta Cutting Edge .NET group last week. 
I received several "so <em>that's</em> how it works" comments and that was exactly
the point of this talk.
</p>
        <p>
Here is the abstract of the presentation:
</p>
        <p>
          <span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">
            <font color="#000000">This
will be a thorough discussion of all that is CSS.<span style="mso-spacerun: yes">  </span>Whether
you know it as the necessary evil or the great enabler (that just hasn’t quite clicked
for you yet), you should walk away with something valuable from this discussion.<span style="mso-spacerun: yes">  </span>I
will begin with the basic box model and travel all the way to the holiest of grails
(the <i style="mso-bidi-font-style: normal">no tables here, </i>two and three<i style="mso-bidi-font-style: normal"></i>column
ASP.NET Master Page layout…yours to take home for free!).<span style="mso-spacerun: yes">  </span>Along
the way, we’ll touch on some CSS Best Practices and gotchas in ASP.NET and take a
look at the new CSS tools in Visual Studio 2008 (Orcas).</font>
          </span>
        </p>
        <p>
          <span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">
            <font color="#006400">
              <span style="mso-spacerun: yes">
                <font color="#000000">Get
the download</font> </span>
            </font>
            <a href="http://www.r2musings.com/downloads/CSSDeepDive.zip">
              <font color="#006400">here</font>
            </a>
            <font color="#006400">.</font>
          </span>
        </p>
        <p>
          <span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">
            <font color="#006400">Note: 
The solution file provided is from Visual Studio 2008 (Orcas) Beta 2.  There
is nothing .NET 3.5 specific (as most of it is HTML anyway).  </font> </span>
        </p>
        <p>
          <span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">Update
04/01/08:  Updated the download to compile under Visual Studio 2008 RTM</span>
        </p>
        <img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=8b850af0-d2c0-4a03-b721-5282f4fcab1b" />
      </body>
      <title>Deep Dive: CSS for the ASP.NET Developer</title>
      <guid isPermaLink="false">http://www.r2musings.com/PermaLink,guid,8b850af0-d2c0-4a03-b721-5282f4fcab1b.aspx</guid>
      <link>http://www.r2musings.com/2007/10/08/DeepDiveCSSForTheASPNETDeveloper.aspx</link>
      <pubDate>Mon, 08 Oct 2007 18:38:05 GMT</pubDate>
      <description>&lt;p&gt;
Thanks everyone for the&amp;nbsp;comments and tips offered after I gave&amp;nbsp;this presentation
at Alabama Code Camp, as well as, at the Atlanta Cutting Edge .NET group last week.&amp;nbsp;
I received several "so &lt;em&gt;that's&lt;/em&gt; how it works" comments and that was exactly
the point of this talk.
&lt;/p&gt;
&lt;p&gt;
Here is the abstract of the presentation:
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;font color=#000000&gt;This
will be a thorough discussion of all that is CSS.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Whether
you know it as the necessary evil or the great enabler (that just hasn’t quite clicked
for you yet), you should walk away with something valuable from this discussion.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
will begin with the basic box model and travel all the way to the holiest of grails
(the &lt;i style="mso-bidi-font-style: normal"&gt;no tables here, &lt;/i&gt;two and three&lt;i style="mso-bidi-font-style: normal"&gt; &lt;/i&gt;column
ASP.NET Master Page layout…yours to take home for free!).&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Along
the way, we’ll touch on some CSS Best Practices and gotchas in ASP.NET and take a
look at the new CSS tools in Visual Studio 2008 (Orcas).&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;font color=#006400&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;Get
the download&lt;/font&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;a href="http://www.r2musings.com/downloads/CSSDeepDive.zip"&gt;&lt;font color=#006400&gt;here&lt;/font&gt;&lt;/a&gt;&lt;font color=#006400&gt;.&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;font color=#006400&gt;Note:&amp;nbsp;
The solution file provided is&amp;nbsp;from Visual Studio 2008 (Orcas) Beta 2.&amp;nbsp;&amp;nbsp;There
is nothing .NET 3.5 specific (as most of it is HTML anyway).&amp;nbsp;&amp;nbsp;&lt;/font&gt;&amp;nbsp;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;Update
04/01/08:&amp;nbsp; Updated the download to compile under Visual Studio 2008 RTM&lt;/span&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=8b850af0-d2c0-4a03-b721-5282f4fcab1b" /&gt;</description>
      <comments>http://www.r2musings.com/CommentView,guid,8b850af0-d2c0-4a03-b721-5282f4fcab1b.aspx</comments>
      <category>CSS</category>
      <category>Presentations</category>
    </item>
    <item>
      <trackback:ping>http://www.r2musings.com/Trackback.aspx?guid=65958793-e50f-478d-b888-252541188665</trackback:ping>
      <pingback:server>http://www.r2musings.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.r2musings.com/PermaLink,guid,65958793-e50f-478d-b888-252541188665.aspx</pingback:target>
      <dc:creator>Rik Robinson</dc:creator>
      <wfw:comment>http://www.r2musings.com/CommentView,guid,65958793-e50f-478d-b888-252541188665.aspx</wfw:comment>
      <wfw:commentRss>http://www.r2musings.com/SyndicationService.asmx/GetEntryCommentsRss?guid=65958793-e50f-478d-b888-252541188665</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Finally able to grab a minute to post my code and slides from the Introduction
to Generics presentation that I did this past weekend at the Alabama Code Camp at
the University of Alabama.  
</p>
        <p>
This is the abstract from the presentation:
</p>
        <p class="MsoNoSpacing" style="MARGIN: 0in 0in 0pt">
          <font color="#000000">With the release of the 2.0 version of the .NET Framework, Generics
became first class citizens </font>
        </p>
        <p class="MsoNoSpacing" style="MARGIN: 0in 0in 0pt">
          <font color="#000000">in the Common Language Runtime.<span style="mso-spacerun: yes">  </span>Yet,
many still shy away from using them because of perceived difficulty or other misconceptions.<span style="mso-spacerun: yes">  </span><span style="mso-spacerun: yes"> </span>This
presentation will seek to dispel a few of these myths and offer a gentle introduction
into using Generics on a daily basis.<span style="mso-spacerun: yes">  </span>Along
the way, I’ll also demonstrate language enhancements in the .NET 3.5 runtime that
lend themselves nicely to working with Generics.<span style="mso-spacerun: yes">  </span></font>
        </p>
        <p class="MsoNoSpacing" style="MARGIN: 0in 0in 0pt">
          <font color="#000000">
            <span style="mso-spacerun: yes">
            </span>
          </font> 
</p>
        <p class="MsoNoSpacing" style="MARGIN: 0in 0in 0pt">
          <font color="#000000">
            <span style="mso-spacerun: yes">Get the download <a href="http://www.r2musings.com/downloads/generics101.zip">here</a>.  </span>
          </font>
        </p>
        <p>
          <font color="#006400">Note:  The code is compiled on Visual Studio 2008 (Orcas)
Beta 2.  The only project in the solution that uses .NET 3.5 specific code is
the Collections project.  This uses C# 3.5 Automatic Properties and Property
Initializers.</font>  
</p>
        <img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=65958793-e50f-478d-b888-252541188665" />
      </body>
      <title>Time for T  :  An Introduction to .NET Generics</title>
      <guid isPermaLink="false">http://www.r2musings.com/PermaLink,guid,65958793-e50f-478d-b888-252541188665.aspx</guid>
      <link>http://www.r2musings.com/2007/10/08/TimeForTAnIntroductionToNETGenerics.aspx</link>
      <pubDate>Mon, 08 Oct 2007 18:24:56 GMT</pubDate>
      <description>&lt;p&gt;
Finally able to grab a minute to&amp;nbsp;post my&amp;nbsp;code and slides from the Introduction
to Generics presentation that I did this past weekend at the Alabama Code Camp at
the University of Alabama.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
This is the abstract from the presentation:
&lt;/p&gt;
&lt;p class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;With the release of the 2.0 version of the .NET Framework, Generics
became first class citizens &lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;in the Common Language Runtime.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Yet,
many still shy away from using them because of perceived difficulty or other misconceptions.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;This
presentation will seek to dispel a few of these myths and offer a gentle introduction
into using Generics on a daily basis.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Along
the way, I’ll also demonstrate language enhancements in the .NET 3.5 runtime that
lend themselves nicely to working with Generics.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;Get the download &lt;a href="http://www.r2musings.com/downloads/generics101.zip"&gt;here&lt;/a&gt;.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#006400&gt;Note:&amp;nbsp; The code is compiled on Visual Studio 2008 (Orcas)
Beta 2.&amp;nbsp; The only project in the solution that uses .NET 3.5 specific code is
the Collections project.&amp;nbsp; This uses C# 3.5 Automatic Properties and Property
Initializers.&lt;/font&gt;&amp;nbsp; 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=65958793-e50f-478d-b888-252541188665" /&gt;</description>
      <comments>http://www.r2musings.com/CommentView,guid,65958793-e50f-478d-b888-252541188665.aspx</comments>
      <category>Generics</category>
      <category>Presentations</category>
    </item>
    <item>
      <trackback:ping>http://www.r2musings.com/Trackback.aspx?guid=b224ede7-9e69-4b86-9b0a-fa0ad46bb92a</trackback:ping>
      <pingback:server>http://www.r2musings.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.r2musings.com/PermaLink,guid,b224ede7-9e69-4b86-9b0a-fa0ad46bb92a.aspx</pingback:target>
      <dc:creator>Rik Robinson</dc:creator>
      <wfw:comment>http://www.r2musings.com/CommentView,guid,b224ede7-9e69-4b86-9b0a-fa0ad46bb92a.aspx</wfw:comment>
      <wfw:commentRss>http://www.r2musings.com/SyndicationService.asmx/GetEntryCommentsRss?guid=b224ede7-9e69-4b86-9b0a-fa0ad46bb92a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p class="MsoNormal" style="MARGIN: 0in 0in 10pt 0.5in">
          <font color="#000000">I just returned from speaking at the Alabama Code Camp 5.0 in
Birmingham.  One of my presentations was <a href="http://www.r2musings.com/DeepDiveCSSForTheASPNETDeveloper.aspx">Deep
Dive CSS for the ASP.NET Developer</a> and I had hoped to spend some time on the tools
in Orcas for working with Cascading Style Sheets.  Unfortunately, I did not get
a chance to do that due to the time constraints, so I wanted to post some of my better
links on that subject...</font>
        </p>
        <p class="MsoNormal" style="MARGIN: 0in 0in 10pt 0.5in">
          <b style="mso-bidi-font-weight: normal">
            <font face="Calibri" color="#000000" size="3">How
to: Use the Apply Styles and Manage Styles Windows<br /></font>
          </b>
          <a href="http://msdn2.microsoft.com/en-us/library/bb398979(VS.90).aspx">
            <font face="Calibri" size="3">http://msdn2.microsoft.com/en-us/library/bb398979(VS.90).aspx</font>
          </a>
        </p>
        <p class="MsoNormal" style="MARGIN: 0in 0in 10pt">
          <font color="#000000">
            <font size="3">
              <font face="Calibri">
                <b style="mso-bidi-font-weight: normal">
                  <span style="mso-tab-count: 1">            </span>How
to: Use the CSS Properties Window<br /></b>
                <span style="mso-tab-count: 1">            </span>
              </font>
            </font>
          </font>
          <a href="http://msdn2.microsoft.com/en-us/library/bb398902(VS.90).aspx">
            <font face="Calibri" size="3">http://msdn2.microsoft.com/en-us/library/bb398902(VS.90).aspx</font>
          </a>
        </p>
        <p class="MsoNormal" style="MARGIN: 0in 0in 10pt 0.5in">
          <b style="mso-bidi-font-weight: normal">
            <span style="mso-fareast-font-family: 'Times New Roman'">
              <font face="Calibri" color="#000000" size="3">How
to: Use the Direct Style Application Toolbar<br /></font>
            </span>
          </b>
          <a href="http://msdn2.microsoft.com/en-us/library/bb398977(VS.90).aspx">
            <font face="Calibri" size="3">http://msdn2.microsoft.com/en-us/library/bb398977(VS.90).aspx</font>
          </a>
        </p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=b224ede7-9e69-4b86-9b0a-fa0ad46bb92a" />
      </body>
      <title>Visual Studio 2008 (Orcas) CSS tools</title>
      <guid isPermaLink="false">http://www.r2musings.com/PermaLink,guid,b224ede7-9e69-4b86-9b0a-fa0ad46bb92a.aspx</guid>
      <link>http://www.r2musings.com/2007/10/08/VisualStudio2008OrcasCSSTools.aspx</link>
      <pubDate>Mon, 08 Oct 2007 17:45:59 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;
&lt;font color=#000000&gt;I just returned from speaking at the Alabama Code Camp 5.0 in
Birmingham.&amp;nbsp; One of my presentations was &lt;a href="http://www.r2musings.com/DeepDiveCSSForTheASPNETDeveloper.aspx"&gt;Deep
Dive CSS for the ASP.NET Developer&lt;/a&gt; and I had hoped to spend some time on the tools
in Orcas for working with Cascading Style Sheets.&amp;nbsp; Unfortunately, I did not get
a chance to do that due to the time constraints, so I wanted to post some of my better
links on that subject...&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;
&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;font face=Calibri color=#000000 size=3&gt;How
to: Use the Apply Styles and Manage Styles Windows&lt;br&gt;
&lt;/font&gt;&lt;/b&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb398979(VS.90).aspx"&gt;&lt;font face=Calibri size=3&gt;http://msdn2.microsoft.com/en-us/library/bb398979(VS.90).aspx&lt;/font&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
&lt;font color=#000000&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;How
to: Use the CSS Properties Window&lt;br&gt;
&lt;/b&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb398902(VS.90).aspx"&gt;&lt;font face=Calibri size=3&gt;http://msdn2.microsoft.com/en-us/library/bb398902(VS.90).aspx&lt;/font&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;
&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;font face=Calibri color=#000000 size=3&gt;How
to: Use the Direct Style Application Toolbar&lt;br&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb398977(VS.90).aspx"&gt;&lt;font face=Calibri size=3&gt;http://msdn2.microsoft.com/en-us/library/bb398977(VS.90).aspx&lt;/font&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.r2musings.com/aggbug.ashx?id=b224ede7-9e69-4b86-9b0a-fa0ad46bb92a" /&gt;</description>
      <comments>http://www.r2musings.com/CommentView,guid,b224ede7-9e69-4b86-9b0a-fa0ad46bb92a.aspx</comments>
      <category>CSS</category>
      <category>Visual Studio 2008</category>
    </item>
    <item>
      <trackback:ping>http://www.r2musings.com/Trackback.aspx?guid=397a381d-7298-47db-9f2f-742f95f4f074</trackback:ping>
      <pingback:server>http://www.r2musings.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.r2musings.com/PermaLink,guid,397a381d-7298-47db-9f2f-742f95f4f074.aspx</pingback:target>
      <dc:creator>Rik Robinson</dc:creator>
      <wfw:comment>http://www.r2musings.com/CommentView,guid,397a381d-7298-47db-9f2f-742f95f4f074.aspx</wfw:comment>
      <wfw:commentRss>http://www.r2musings.com/SyndicationService.asmx/GetEntryCommentsRss?guid=397a381d-7298-47db-9f2f-742f95f4f074</wfw:commentRss>
      <title>Generic Methods: Find Controls by Type</title>
      <guid isPermaLink="false">http://www.r2musings.com/PermaLink,guid,397a381d-7298-47db-9f2f-742f95f4f074.aspx</guid>
      <link>http://www.r2musings.com/2007/10/08/GenericMethodsFindControlsByType.aspx</link>
      <pubDate>Mon, 08 Oct 2007 15:07:05 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt;Although
this was originally part of my recent Generics presentation, I have received several
requests to publish it separately.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt;The
reason that I created this originally was that I found myself often-times wanting
a strongly-typed list of all the checkboxes / buttons / etc in my code-behind/beside
pages.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;There is the Page.FindControl(string
id), but that only allows you to get a control by id and it returns a Control.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
wanted something more specific, yet generic enough to use as a Utility.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This
was screaming for Generic Methods, so below is what I came up with. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt;I
use this constantly and hope that someone else gets some mileage out of it.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;If
you have improvements, please post them.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;For
example usage, download the full Generics presentation.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;
&lt;o:p&gt;
&lt;font color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;
&lt;o:p&gt;
&lt;font size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;using&lt;/span&gt;&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt; System;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;using&lt;/span&gt;&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt; System.Collections.Generic;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;using&lt;/span&gt;&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt; System.Text;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;using&lt;/span&gt;&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt; System.Text.RegularExpressions;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;using&lt;/span&gt;&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt; System.Web.UI;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;using&lt;/span&gt;&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt; System.Web.UI.WebControls;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;namespace&lt;/span&gt;&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt; r2musings.Web.UI.WebControls&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt;{&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: blue"&gt;static&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: blue"&gt;class&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;Utility&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt; FindControlsByType&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: green"&gt; &lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: green"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Returns
a generic list of controls of a provided type starting at a 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: green"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;a
provided base control (works recursively) 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: green"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Example
Usage:&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: green"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;List&lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;Button&amp;gt;&lt;/span&gt;&lt;span style="COLOR: green"&gt; buttonList
= Utility.FindControlsByType&lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;Button&amp;gt;&lt;/span&gt;&lt;span style="COLOR: green"&gt;(testPanel);&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: green"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;This
would return a list of all Buttons contained anywhere within testPanel&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: green"&gt; &lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: green"&gt; &lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;typeparam
name="T"&amp;gt;&lt;/span&gt;&lt;span style="COLOR: green"&gt;Type of control&lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;/typeparam&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: green"&gt; &lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;param
name="parentControl"&amp;gt;&lt;/span&gt;&lt;span style="COLOR: green"&gt;Base control to start search&lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;/param&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: green"&gt; &lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: blue"&gt;static&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;List&lt;/span&gt;&lt;font color=#000000&gt;&amp;lt;T&amp;gt;
FindControlsByType&amp;lt;T&amp;gt;(&lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;Control&lt;/span&gt;&lt;font color=#000000&gt; parentControl) &lt;/font&gt;&lt;span style="COLOR: blue"&gt;where&lt;/span&gt;&lt;font color=#000000&gt; T:
System.Web.UI.&lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;Control&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: green"&gt;//
new up our return list&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: #2b91af"&gt;List&lt;/span&gt;&lt;font color=#000000&gt;&amp;lt;T&amp;gt;
returnList = &lt;/font&gt;&lt;span style="COLOR: blue"&gt;new&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;List&lt;/span&gt;&lt;font color=#000000&gt;&amp;lt;T&amp;gt;();&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: green"&gt;//
loop through all controls and call internal recursion to 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: green"&gt;//&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;add
all controls of type T to the returnList&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;foreach&lt;/span&gt;&lt;font color=#000000&gt; (&lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;Control&lt;/span&gt;&lt;font color=#000000&gt; childControl &lt;/font&gt;&lt;span style="COLOR: blue"&gt;in&lt;/span&gt;&lt;font color=#000000&gt; parentControl.Controls)&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;InternalFindControlsByType&amp;lt;T&amp;gt;(childControl,
returnList);&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: green"&gt;//
return our List&amp;lt;T&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;return&lt;/span&gt;&lt;font color=#000000&gt; returnList;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt; Recursion
Method&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: green"&gt; &lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: green"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Should
NOT call this method directly&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: green"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;This
is for the internal recursion of FindControlsByType()&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: green"&gt; &lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: green"&gt; &lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;typeparam
name="T"&amp;gt;&lt;/span&gt;&lt;span style="COLOR: green"&gt;Type of control&lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;/typeparam&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: green"&gt; &lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;param
name="parentControl"&amp;gt;&lt;/span&gt;&lt;span style="COLOR: green"&gt;Base control to start search&lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;/param&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: green"&gt; &lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;param
name="returnList"&amp;gt;&lt;/span&gt;&lt;span style="COLOR: green"&gt;List to add Controls&lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;/param&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;private&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: blue"&gt;static&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: blue"&gt;void&lt;/span&gt;&lt;font color=#000000&gt; InternalFindControlsByType&amp;lt;T&amp;gt;(&lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;Control&lt;/span&gt;&lt;font color=#000000&gt; parentControl, &lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;List&lt;/span&gt;&lt;font color=#000000&gt;&amp;lt;T&amp;gt;
returnList) &lt;/font&gt;&lt;span style="COLOR: blue"&gt;where&lt;/span&gt;&lt;font color=#000000&gt; T: System.Web.UI.&lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;Control&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-FAMILY: Consolas; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;if&lt;/span&gt;&lt;font color=#000000&gt; (returnList
== &lt;/font&gt;&lt;span style="COLOR: blue"&gt;null&lt;/