<?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>Chris Craft's Blog - .Net Programming</title>
    <link>http://www.cjcraft.com/blog/</link>
    <description>A .NET Compact Framework Blog</description>
    <language>en-us</language>
    <copyright>Chris Craft</copyright>
    <lastBuildDate>Sun, 29 Mar 2009 21:00:00 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>cjcraft@mail.com</managingEditor>
    <webMaster>cjcraft@mail.com</webMaster>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=34e59e7a-a848-445b-a25e-6613f422aac3</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,34e59e7a-a848-445b-a25e-6613f422aac3.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,34e59e7a-a848-445b-a25e-6613f422aac3.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=34e59e7a-a848-445b-a25e-6613f422aac3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Here are the slide decks from my recent presentations. There were a few requests for
theses so I wanted to make them available publically.
</p>
        <p>
Learn how to program and sell Windows Mobile applications online. The first part of
presentation will be an overview of Windows Mobile programming, focused on making
developers aware of the capabilities of modern Windows Mobile devices and the latest
version of the .NET Compact Framework to created advanced mobile user experiences.
The second part of the presentation will be focused on different approaches to publish
and distribute our creations online to the world.
</p>
        <p>
          <strong>
            <a href="http://www.slideshare.net/CJCraft/windows-mobile-programming-for-fun-and-profit">Windows
Mobile Marketplace</a>
          </strong>
        </p>
        <p>
          <a href="http://www.slideshare.net/CJCraft/windows-mobile-programming-for-fun-and-profit">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/CharlotteDevelopingforDollarsCodeCampWin_10D22/image_6.png" width="244" height="184" />
          </a>
        </p>
        <p>
          <strong>
            <a href="http://www.slideshare.net/CJCraft/creating-advanced-user-experiences-for-windows-mobile" target="_blank">Creating
Advanced Mobile User Experiences</a>
          </strong>
        </p>
        <p>
          <a href="http://www.slideshare.net/CJCraft/creating-advanced-user-experiences-for-windows-mobile">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/CharlotteDevelopingforDollarsCodeCampWin_10D22/image_5.png" width="244" height="184" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=34e59e7a-a848-445b-a25e-6613f422aac3" />
      </body>
      <title>Charlotte &amp;ldquo;Developing for Dollars&amp;rdquo; Code Camp: Windows Mobile Marketplace &amp;amp; Creating Advanced Mobile User Experiences</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,34e59e7a-a848-445b-a25e-6613f422aac3.aspx</guid>
      <link>http://www.cjcraft.com/blog/2009/03/29/CharlotteLdquoDevelopingForDollarsrdquoCodeCampWindowsMobileMarketplaceAmpCreatingAdvancedMobileUserExperiences.aspx</link>
      <pubDate>Sun, 29 Mar 2009 21:00:00 GMT</pubDate>
      <description>&lt;p&gt;
Here are the slide decks from my recent presentations. There were a few requests for
theses so I wanted to make them available publically.
&lt;/p&gt;
&lt;p&gt;
Learn how to program and sell Windows Mobile applications online. The first part of
presentation will be an overview of Windows Mobile programming, focused on making
developers aware of the capabilities of modern Windows Mobile devices and the latest
version of the .NET Compact Framework to created advanced mobile user experiences.
The second part of the presentation will be focused on different approaches to publish
and distribute our creations online to the world.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;a href="http://www.slideshare.net/CJCraft/windows-mobile-programming-for-fun-and-profit"&gt;Windows
Mobile Marketplace&lt;/a&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.slideshare.net/CJCraft/windows-mobile-programming-for-fun-and-profit"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/CharlotteDevelopingforDollarsCodeCampWin_10D22/image_6.png" width="244" height="184" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;a href="http://www.slideshare.net/CJCraft/creating-advanced-user-experiences-for-windows-mobile" target="_blank"&gt;Creating
Advanced Mobile User Experiences&lt;/a&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.slideshare.net/CJCraft/creating-advanced-user-experiences-for-windows-mobile"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/CharlotteDevelopingforDollarsCodeCampWin_10D22/image_5.png" width="244" height="184" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=34e59e7a-a848-445b-a25e-6613f422aac3" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,34e59e7a-a848-445b-a25e-6613f422aac3.aspx</comments>
      <category>.Net Programming</category>
      <category>compact framework</category>
      <category>cool</category>
      <category>INETA</category>
      <category>MVP</category>
      <category>pocket pc</category>
      <category>programming</category>
      <category>smartphone</category>
      <category>windows mobile</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=f96b23c2-fe47-4aba-afc7-bd945b36b8ee</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,f96b23c2-fe47-4aba-afc7-bd945b36b8ee.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,f96b23c2-fe47-4aba-afc7-bd945b36b8ee.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f96b23c2-fe47-4aba-afc7-bd945b36b8ee</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/MicrosoftSmallBasicbringingfunbacktopro_10711/image_2.png">
          <img style="border-bottom: 0px; border-left: 0px; margin: 5px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="right" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/MicrosoftSmallBasicbringingfunbacktopro_10711/image_thumb.png" width="244" height="192" />
        </a>
        <p>
Many of us love programming innately. It’s almost in our DNA. Some of my first programming
experiences were on a used Commodore 64 that we picked up at a local garage sale.
It didn’t come with any software, so if I wanted it to do anything it was up to me
to make that happen. It was a lot of work, but it really was a lot of fun for me too.
Later I move to QuickBasic, then to Visual Basic, and on and on from there.
</p>
        <p>
I was the only developer who got his start with the Commodore 64. I guess you could
consider the Commodore 64 to have used a “Rapid Application Development” programming
language, but really it was a “<strong>Fun Application Development</strong>” language,
and I think that went a long way to winning me over.
</p>
        <p>
Most modern programming languages today are about rapid application development, this
might help to keep current developers productive, but what will bring in tomorrow’s
developers? What is today’s “Fun Application Development” language?
</p>
        <p>
I think Microsoft’s Small Basic is a great answer to that question.
</p>
        <blockquote>
          <p>
            <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/MicrosoftSmallBasicbringingfunbacktopro_10711/image_6.png">
              <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/MicrosoftSmallBasicbringingfunbacktopro_10711/image_thumb_2.png" width="233" height="149" />
            </a>
          </p>
          <p>
            <a href="http://msdn.microsoft.com/en-us/devlabs/cc950524.aspx">Small Basic</a>
          </p>
          <p>
            <a href="http://blogs.msdn.com/smallbasic/default.aspx" target="_blank">Small Basic
Blog</a>
          </p>
          <p>
Small Basic is a simple and easy programming language with a friendly environment
that provides a cool and fun way of learning programming. From making turtles animations
to running a slide show on the desktop, Small Basic makes programming natural and
effortless.
</p>
          <ul>
            <li>
Small Basic derives its inspiration from the original BASIC programming language,
and is based on the Microsoft .NET platform. It is really small with just 15 keywords
and uses minimal concepts to keep the barrier to entry as low as possible.</li>
            <li>
The Small Basic development environment is simple, yet provides powerful modern environment
features like Intellisense™ and instant context sensitive help. 
</li>
            <li>
Small Basic allows third-party libraries to be plugged in with ease, making it possible
for the community to extend the experience in fun and interesting ways.</li>
          </ul>
        </blockquote>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=f96b23c2-fe47-4aba-afc7-bd945b36b8ee" />
      </body>
      <title>Microsoft Small Basic: bringing &amp;ldquo;fun&amp;rdquo; back to programming.</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,f96b23c2-fe47-4aba-afc7-bd945b36b8ee.aspx</guid>
      <link>http://www.cjcraft.com/blog/2009/03/29/MicrosoftSmallBasicBringingLdquofunrdquoBackToProgramming.aspx</link>
      <pubDate>Sun, 29 Mar 2009 20:00:00 GMT</pubDate>
      <description>&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/MicrosoftSmallBasicbringingfunbacktopro_10711/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 5px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="right" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/MicrosoftSmallBasicbringingfunbacktopro_10711/image_thumb.png" width="244" height="192" /&gt;&lt;/a&gt; 
&lt;p&gt;
Many of us love programming innately. It’s almost in our DNA. Some of my first programming
experiences were on a used Commodore 64 that we picked up at a local garage sale.
It didn’t come with any software, so if I wanted it to do anything it was up to me
to make that happen. It was a lot of work, but it really was a lot of fun for me too.
Later I move to QuickBasic, then to Visual Basic, and on and on from there.
&lt;/p&gt;
&lt;p&gt;
I was the only developer who got his start with the Commodore 64. I guess you could
consider the Commodore 64 to have used a “Rapid Application Development” programming
language, but really it was a “&lt;strong&gt;Fun Application Development&lt;/strong&gt;” language,
and I think that went a long way to winning me over.
&lt;/p&gt;
&lt;p&gt;
Most modern programming languages today are about rapid application development, this
might help to keep current developers productive, but what will bring in tomorrow’s
developers? What is today’s “Fun Application Development” language?
&lt;/p&gt;
&lt;p&gt;
I think Microsoft’s Small Basic is a great answer to that question.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/MicrosoftSmallBasicbringingfunbacktopro_10711/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/MicrosoftSmallBasicbringingfunbacktopro_10711/image_thumb_2.png" width="233" height="149" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn.microsoft.com/en-us/devlabs/cc950524.aspx"&gt;Small Basic&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.msdn.com/smallbasic/default.aspx" target="_blank"&gt;Small Basic
Blog&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Small Basic is a simple and easy programming language with a friendly environment
that provides a cool and fun way of learning programming. From making turtles animations
to running a slide show on the desktop, Small Basic makes programming natural and
effortless.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Small Basic derives its inspiration from the original BASIC programming language,
and is based on the Microsoft .NET platform. It is really small with just 15 keywords
and uses minimal concepts to keep the barrier to entry as low as possible.&lt;/li&gt;
&lt;li&gt;
The Small Basic development environment is simple, yet provides powerful modern environment
features like Intellisense™ and instant context sensitive help. 
&lt;/li&gt;
&lt;li&gt;
Small Basic allows third-party libraries to be plugged in with ease, making it possible
for the community to extend the experience in fun and interesting ways.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=f96b23c2-fe47-4aba-afc7-bd945b36b8ee" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,f96b23c2-fe47-4aba-afc7-bd945b36b8ee.aspx</comments>
      <category>.Net Programming</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=7d80e0c8-ec69-451c-b1c3-f95add6c4670</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,7d80e0c8-ec69-451c-b1c3-f95add6c4670.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,7d80e0c8-ec69-451c-b1c3-f95add6c4670.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=7d80e0c8-ec69-451c-b1c3-f95add6c4670</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <b>Date: Tuesday, January 13th, 2009 
<br /><br />
Speaker: Chris Eargle 
<br /></b>
          <br />
          <b>Topic: The Future of Managed Code</b>
          <br />
Tuesday, January 13th, 2009, is the next meeting of the Pee Dee Area .NET User Group. 
<br /><br />
Newly minted C# MVP, Chris Eargle, will discuss the future of managed code. 
How will your code look next year? This presentation is a demonstration of the new
capabilities found in C# 4.0 and VB 10.0 using the Visual Studio 2010 CTP. Learn about
the new features in each language, how they are converging, and what sets them apart. 
<br /><br /><strong>Chris Eargle</strong><br />
Chris Eargle is a Microsoft Most Valuable Professional – Visual C# and an independent
consultant in the Columbia, SC metro area.  He is currently working as a software
architect on the South Carolina Integrated Tax System with Revenue Solutions, Inc.
Chris is the president of the Columbia Enterprise Developers Guild and is a Microsoft
Certified Technology Specialist in ASP.NET 
<br />
Web Site: <a href="http://www.kodefuguru.com">www.kodefuguru.com</a><br /><br /><a href="http://www.eventbrite.com/event/244942630"><img alt="" src="http://www.eventbrite.com/static/images/button_ext/rsvp_now.gif" border="0" /></a></p>
        <p>
Here is the tentative schedule: 
<br />
6:00 PM - 6:20 PM Socializing / Free Dinner 
<br />
6:20 PM - 6:30 PM Introduction, Sponsor Time, and News. 
<br />
6:30 PM - 8:00 PM Presentations
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=7d80e0c8-ec69-451c-b1c3-f95add6c4670" />
      </body>
      <title>The Future of Managed Code</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,7d80e0c8-ec69-451c-b1c3-f95add6c4670.aspx</guid>
      <link>http://www.cjcraft.com/blog/2009/01/13/TheFutureOfManagedCode.aspx</link>
      <pubDate>Tue, 13 Jan 2009 22:43:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Date: Tuesday, January 13th, 2009 
&lt;br /&gt;
&lt;br /&gt;
Speaker: Chris Eargle 
&lt;br /&gt;
&lt;/b&gt; 
&lt;br /&gt;
&lt;b&gt;Topic: The Future of Managed Code&lt;/b&gt; 
&lt;br /&gt;
Tuesday, January 13th, 2009, is the next meeting of the Pee Dee Area .NET User Group. 
&lt;br /&gt;
&lt;br /&gt;
Newly minted C# MVP, Chris Eargle, will discuss the future of managed code.&amp;#160;
How will your code look next year? This presentation is a demonstration of the new
capabilities found in C# 4.0 and VB 10.0 using the Visual Studio 2010 CTP. Learn about
the new features in each language, how they are converging, and what sets them apart. 
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Chris Eargle&lt;/strong&gt; 
&lt;br /&gt;
Chris Eargle is a Microsoft Most Valuable Professional – Visual C# and an independent
consultant in the Columbia, SC metro area.&amp;#160; He is currently working as a software
architect on the South Carolina Integrated Tax System with Revenue Solutions, Inc.
Chris is the president of the Columbia Enterprise Developers Guild and is a Microsoft
Certified Technology Specialist in ASP.NET 
&lt;br /&gt;
Web Site: &lt;a href="http://www.kodefuguru.com"&gt;www.kodefuguru.com&lt;/a&gt; 
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.eventbrite.com/event/244942630"&gt;&lt;img alt="" src="http://www.eventbrite.com/static/images/button_ext/rsvp_now.gif" border="0" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Here is the tentative schedule: 
&lt;br /&gt;
6:00 PM - 6:20 PM Socializing / Free Dinner 
&lt;br /&gt;
6:20 PM - 6:30 PM Introduction, Sponsor Time, and News. 
&lt;br /&gt;
6:30 PM - 8:00 PM Presentations
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=7d80e0c8-ec69-451c-b1c3-f95add6c4670" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,7d80e0c8-ec69-451c-b1c3-f95add6c4670.aspx</comments>
      <category>.Net Programming</category>
      <category>cool</category>
      <category>PDANUG</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=61b3a050-780e-40f8-af02-661eb4146a6a</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,61b3a050-780e-40f8-af02-661eb4146a6a.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,61b3a050-780e-40f8-af02-661eb4146a6a.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=61b3a050-780e-40f8-af02-661eb4146a6a</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
As a mobile developer, I often find myself in the situation where I have an image
that I want to use, but it is not the exact size, or even aspect I need it to be.
</p>
        <p>
Most of the time I can get by using <a href="http://www.getpaint.net/">Paint .NET</a> to
resize images. Paint.NET is a free image and photo editing program. If you don’t have
it, download it. It rocks!
</p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/HowtoR.NETBasedSeamCarvingImplementation_F8F9/image_2.png">
            <img title="image" style="border-right: 0px; border-top: 0px; display: inline; margin: 5px 0px; border-left: 0px; border-bottom: 0px" height="335" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/HowtoR.NETBasedSeamCarvingImplementation_F8F9/image_thumb.png" width="450" align="left" border="0" />
          </a>
        </p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
But sometimes it doesn’t matter what I do, I can’t get the image to the size I need.
I have tried all of these <a href="http://en.wikipedia.org/wiki/Image_scaling">resizing
options</a>:
</p>
        <ul>
          <li>
Best Quality Resampling</li>
          <li>
Bicubic Resampling</li>
          <li>
Bilinear Resampling</li>
          <li>
Nearest Neighbor</li>
          <li>
Maintain Aspect Ration On and Off</li>
          <li>
Changing the Canvas Size manually to help things along</li>
        </ul>
        <p>
But again, sometimes it doesn’t matter what I do. I understand <em>“Garbage In, Garbage
Out”</em>. I just hate it when I have <em>“Awesome In, Garbage Out”</em>.
</p>
        <p>
 
</p>
        <p>
Recently, I heard about <a href="http://en.wikipedia.org/wiki/Seam_carving">Seam carving</a>,
or content aware image resizing as it is sometimes called. This is so smart, brilliant
even.
</p>
        <blockquote>
          <p>
Seam carving is an image resizing algorithm developed by Shai Avidan and Ariel Shamir.
This algorithm alters the dimensions of an image not by scaling or cropping, but rather
by intelligently removing pixels from (or adding pixels to) the image that carry little
importance.
</p>
          <p>
          </p>
          <div class="wlWriterEditableSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:ff80e533-d88a-424e-991a-776184363d7f" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
            <div id="9bc815d2-9459-4b2b-b3cd-705cb16494fd" style="margin: 0px; padding: 0px; display: inline;">
              <div>
                <a href="http://www.youtube.com/watch?v=vIFCV2spKtg&amp;eurl=http://www.seamcarving.com/&amp;feature=player_embedded" target="_new">
                  <img src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/HowtoR.NETBasedSeamCarvingImplementation_F8F9/videoccbc4211fec4.jpg" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('9bc815d2-9459-4b2b-b3cd-705cb16494fd'); downlevelDiv.innerHTML = &quot;&lt;div&gt;&lt;object width=\&quot;425\&quot; height=\&quot;355\&quot;&gt;&lt;param name=\&quot;movie\&quot; value=\&quot;http://www.youtube.com/v/vIFCV2spKtg&amp;hl=en\&quot;&gt;&lt;\/param&gt;&lt;embed src=\&quot;http://www.youtube.com/v/vIFCV2spKtg&amp;hl=en\&quot; type=\&quot;application/x-shockwave-flash\&quot; width=\&quot;425\&quot; height=\&quot;355\&quot;&gt;&lt;\/embed&gt;&lt;\/object&gt;&lt;\/div&gt;&quot;;" alt="" />
                </a>
              </div>
            </div>
          </div>
        </blockquote>
        <p>
Now we know what the problem is, and we have learned about a great possible solution
to this common problem, all that is left is to learn how to perform Seam Carving on
our images. And that’s where SEAMonster comes in.
</p>
        <p>
 
</p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/HowtoR.NETBasedSeamCarvingImplementation_F8F9/image_4.png">
            <img title="image" style="border-right: 0px; border-top: 0px; display: inline; margin: 5px 0px; border-left: 0px; border-bottom: 0px" height="180" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/HowtoR.NETBasedSeamCarvingImplementation_F8F9/image_thumb_1.png" width="238" align="left" border="0" />
          </a>
        </p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
          <strong>Download:</strong>
          <a href="http://blogs.msdn.com/mswanson/archive/2007/10/23/seamonster-a-net-based-seam-carving-implementation.aspx">Mike
Swanson's Blog : SEAMonster: A .NET-Based Seam Carving Implementation</a>
        </p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/HowtoR.NETBasedSeamCarvingImplementation_F8F9/image_6.png">
            <img title="image" style="border-right: 0px; border-top: 0px; display: inline; margin: 5px 0px; border-left: 0px; border-bottom: 0px" height="225" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/HowtoR.NETBasedSeamCarvingImplementation_F8F9/image_thumb_2.png" width="398" align="left" border="0" />
          </a>
        </p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
Here is a sample image that has been resized using both Bicubic and Seam Carve techniques.
Notice how the Seam Carved version still has all the important “data”, and how Bicubic
just squished everything equally?
</p>
        <p>
I saw where Photoshop CS4 was adding Seam Carving, and there is a online flash implementation
here: <a title="http://rsizr.com/" href="http://rsizr.com/">http://rsizr.com/</a></p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=61b3a050-780e-40f8-af02-661eb4146a6a" />
      </body>
      <title>How to Resize Images Painlessly using SEAMonster: A .NET-Based Seam Carving Implementation</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,61b3a050-780e-40f8-af02-661eb4146a6a.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/12/07/HowToResizeImagesPainlesslyUsingSEAMonsterANETBasedSeamCarvingImplementation.aspx</link>
      <pubDate>Sun, 07 Dec 2008 03:40:00 GMT</pubDate>
      <description>&lt;p&gt;
As a mobile developer, I often find myself in the situation where I have an image
that I want to use, but it is not the exact size, or even aspect I need it to be.
&lt;/p&gt;
&lt;p&gt;
Most of the time I can get by using &lt;a href="http://www.getpaint.net/"&gt;Paint .NET&lt;/a&gt; to
resize images. Paint.NET is a free image and photo editing program. If you don’t have
it, download it. It rocks!
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/HowtoR.NETBasedSeamCarvingImplementation_F8F9/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; margin: 5px 0px; border-left: 0px; border-bottom: 0px" height="335" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/HowtoR.NETBasedSeamCarvingImplementation_F8F9/image_thumb.png" width="450" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
But sometimes it doesn’t matter what I do, I can’t get the image to the size I need.
I have tried all of these &lt;a href="http://en.wikipedia.org/wiki/Image_scaling"&gt;resizing
options&lt;/a&gt;:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Best Quality Resampling&lt;/li&gt;
&lt;li&gt;
Bicubic Resampling&lt;/li&gt;
&lt;li&gt;
Bilinear Resampling&lt;/li&gt;
&lt;li&gt;
Nearest Neighbor&lt;/li&gt;
&lt;li&gt;
Maintain Aspect Ration On and Off&lt;/li&gt;
&lt;li&gt;
Changing the Canvas Size manually to help things along&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
But again, sometimes it doesn’t matter what I do. I understand &lt;em&gt;“Garbage In, Garbage
Out”&lt;/em&gt;. I just hate it when I have &lt;em&gt;“Awesome In, Garbage Out”&lt;/em&gt;.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Recently, I heard about &lt;a href="http://en.wikipedia.org/wiki/Seam_carving"&gt;Seam carving&lt;/a&gt;,
or content aware image resizing as it is sometimes called. This is so smart, brilliant
even.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
Seam carving is an image resizing algorithm developed by Shai Avidan and Ariel Shamir.
This algorithm alters the dimensions of an image not by scaling or cropping, but rather
by intelligently removing pixels from (or adding pixels to) the image that carry little
importance.
&lt;/p&gt;
&lt;p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:ff80e533-d88a-424e-991a-776184363d7f" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;
&lt;div id="9bc815d2-9459-4b2b-b3cd-705cb16494fd" style="margin: 0px; padding: 0px; display: inline;"&gt;
&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=vIFCV2spKtg&amp;amp;eurl=http://www.seamcarving.com/&amp;amp;feature=player_embedded" target="_new"&gt;&lt;img src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/HowtoR.NETBasedSeamCarvingImplementation_F8F9/videoccbc4211fec4.jpg" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('9bc815d2-9459-4b2b-b3cd-705cb16494fd'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/vIFCV2spKtg&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/vIFCV2spKtg&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Now we know what the problem is, and we have learned about a great possible solution
to this common problem, all that is left is to learn how to perform Seam Carving on
our images. And that’s where SEAMonster comes in.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/HowtoR.NETBasedSeamCarvingImplementation_F8F9/image_4.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; margin: 5px 0px; border-left: 0px; border-bottom: 0px" height="180" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/HowtoR.NETBasedSeamCarvingImplementation_F8F9/image_thumb_1.png" width="238" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Download:&lt;/strong&gt; &lt;a href="http://blogs.msdn.com/mswanson/archive/2007/10/23/seamonster-a-net-based-seam-carving-implementation.aspx"&gt;Mike
Swanson's Blog : SEAMonster: A .NET-Based Seam Carving Implementation&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/HowtoR.NETBasedSeamCarvingImplementation_F8F9/image_6.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; margin: 5px 0px; border-left: 0px; border-bottom: 0px" height="225" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/HowtoR.NETBasedSeamCarvingImplementation_F8F9/image_thumb_2.png" width="398" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Here is a sample image that has been resized using both Bicubic and Seam Carve techniques.
Notice how the Seam Carved version still has all the important “data”, and how Bicubic
just squished everything equally?
&lt;/p&gt;
&lt;p&gt;
I saw where Photoshop CS4 was adding Seam Carving, and there is a online flash implementation
here: &lt;a title="http://rsizr.com/" href="http://rsizr.com/"&gt;http://rsizr.com/&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=61b3a050-780e-40f8-af02-661eb4146a6a" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,61b3a050-780e-40f8-af02-661eb4146a6a.aspx</comments>
      <category>.Net Programming</category>
      <category>cool</category>
      <category>windows mobile</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=d7b7cc67-31bc-4f6e-8b51-c12ee863060c</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,d7b7cc67-31bc-4f6e-8b51-c12ee863060c.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,d7b7cc67-31bc-4f6e-8b51-c12ee863060c.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=d7b7cc67-31bc-4f6e-8b51-c12ee863060c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/ProblemSolvedHowtoplaceyourCApplicationi_636E/image3.png">
            <img title="image_thumb14" style="margin: 5px" height="105" alt="image_thumb14" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/ProblemSolvedHowtoplaceyourCApplicationi_636E/image_thumb14_d1258d05-6561-452e-a83d-c9f21a45a3d5.png" width="170" align="right" border="0" />
          </a>
        </p>
        <p>
I wanted to add an application I was working on to my Windows Vista’s <a href="http://en.wikipedia.org/wiki/Taskbar">System
Tray</a>. This is one of those things that is completely trivial once you already
know how to do it. It’s actually easy enough that most people find their way thorough
it on their own, eventually.
</p>
        <p>
Here’s a quick cheat sheet, if you will, that will show you everything you need to
know so you can “<a href="http://www.urbandictionary.com/define.php?term=knock+em+out+da+box">knock
em out da box</a>”, <a href="http://www.atom.com/fun_games/gangsta_rap/">Luke</a>. <img alt="Smile" src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/regular_smile.gif" /></p>
        <p>
First, you’ll need to add a <a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.notifyicon.aspx">NotifyIcon</a> to
the form.
</p>
        <p>
          <a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.notifyicon.aspx">
            <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="159" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/ProblemSolvedHowtoplaceyourCApplicationi_636E/image_3.png" width="450" border="0" />
          </a>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
Here are the key parts of the NotifyIcon we will be concerned with:
</p>
        <blockquote>
          <p>
            <strong>NotifyIcon.Text:</strong> Gets or sets the ToolTip text displayed when the
mouse pointer rests on a notification area icon.
</p>
          <p>
            <strong>NotifyIcon.Icon: </strong>Gets or sets the current icon. 
</p>
          <p>
            <strong>NotifyIcon.DoubleClick: </strong>Occurs when the user double-clicks the icon
in the notification area of the taskbar.
</p>
          <p>
            <strong>NotifyIcon.ContextMenu: </strong>Gets or sets the shortcut menu for the icon.
</p>
        </blockquote>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
The DoubleClick event is a good place to add logic to open a main form, and the ContextMenu
allows the NotifyIcon to almost be an application on its own.
</p>
        <p>
Note:
</p>
        <blockquote>
          <p>
You can change the NotifyIcon’s Icon at runtime as a way to alert users to various
things happening.
</p>
          <p>
It’s good to set any forms in the application to ShowInTaskbar = false. This helps
keep clutter out of the user’s taskbar.
</p>
        </blockquote>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=d7b7cc67-31bc-4f6e-8b51-c12ee863060c" />
      </body>
      <title>Problem Solved: How to place your C# Application in the System Tray</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,d7b7cc67-31bc-4f6e-8b51-c12ee863060c.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/08/09/ProblemSolvedHowToPlaceYourCApplicationInTheSystemTray.aspx</link>
      <pubDate>Sat, 09 Aug 2008 21:43:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/ProblemSolvedHowtoplaceyourCApplicationi_636E/image3.png"&gt;&lt;img title="image_thumb14" style="margin: 5px" height="105" alt="image_thumb14" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/ProblemSolvedHowtoplaceyourCApplicationi_636E/image_thumb14_d1258d05-6561-452e-a83d-c9f21a45a3d5.png" width="170" align="right" border="0" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I wanted to add an application I was working on to my Windows Vista’s &lt;a href="http://en.wikipedia.org/wiki/Taskbar"&gt;System
Tray&lt;/a&gt;. This is one of those things that is completely trivial once you already
know how to do it. It’s actually easy enough that most people find their way thorough
it on their own, eventually.
&lt;/p&gt;
&lt;p&gt;
Here’s a quick cheat sheet, if you will, that will show you everything you need to
know so you can “&lt;a href="http://www.urbandictionary.com/define.php?term=knock+em+out+da+box"&gt;knock
em out da box&lt;/a&gt;”, &lt;a href="http://www.atom.com/fun_games/gangsta_rap/"&gt;Luke&lt;/a&gt;. &lt;img alt="Smile" src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/regular_smile.gif" /&gt;
&lt;/p&gt;
&lt;p&gt;
First, you’ll need to add a &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.notifyicon.aspx"&gt;NotifyIcon&lt;/a&gt; to
the form.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.notifyicon.aspx"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="159" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/ProblemSolvedHowtoplaceyourCApplicationi_636E/image_3.png" width="450" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Here are the key parts of the NotifyIcon we will be concerned with:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;NotifyIcon.Text:&lt;/strong&gt; Gets or sets the ToolTip text displayed when the
mouse pointer rests on a notification area icon.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;NotifyIcon.Icon: &lt;/strong&gt;Gets or sets the current icon. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;NotifyIcon.DoubleClick: &lt;/strong&gt;Occurs when the user double-clicks the icon
in the notification area of the taskbar.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;NotifyIcon.ContextMenu: &lt;/strong&gt;Gets or sets the shortcut menu for the icon.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
The DoubleClick event is a good place to add logic to open a main form, and the ContextMenu
allows the NotifyIcon to almost be an application on its own.
&lt;/p&gt;
&lt;p&gt;
Note:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
You can change the NotifyIcon’s Icon at runtime as a way to alert users to various
things happening.
&lt;/p&gt;
&lt;p&gt;
It’s good to set any forms in the application to ShowInTaskbar = false. This helps
keep clutter out of the user’s taskbar.
&lt;/p&gt;
&lt;/blockquote&gt;&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=d7b7cc67-31bc-4f6e-8b51-c12ee863060c" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,d7b7cc67-31bc-4f6e-8b51-c12ee863060c.aspx</comments>
      <category>.Net Programming</category>
      <category>cool</category>
      <category>Problem Solved</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=1ff08518-8d5a-4c98-a854-dc18a2b38aac</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,1ff08518-8d5a-4c98-a854-dc18a2b38aac.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,1ff08518-8d5a-4c98-a854-dc18a2b38aac.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=1ff08518-8d5a-4c98-a854-dc18a2b38aac</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
I thought it would be useful if I did a recap of all of the 31 tips and tricks from
the 31 Days of Visual Studio Tips &amp; Tricks. I hope it helps. I’ll post a follow
up with all the user submitted tips soon!
</p>
        <p>
Here’s the download link for the for the complete PowerPoint:
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a></p>
        <p>
 
</p>
        <table cellspacing="0" cellpadding="2" width="550" border="0">
          <tbody>
            <tr>
              <td valign="top" width="275">
                <p align="center">
                  <strong>
                    <u>PowerPoint Slide</u>
                  </strong>
                </p>
              </td>
              <td valign="top" width="275">
                <p align="center">
                  <strong>
                    <u>Keyboard Shortcut</u>
                  </strong>
                </p>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_20.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_9.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 1</strong>
                </h4>
                <p>
 
</p>
                <h4>Show Shortcut Keys
</h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_2.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 2</strong>
                </h4>
                <p>
Open Smart Tag
</p>
                <h4>
                  <strong>Ctrl + .</strong>
                </h4>
                <h4>Open Smart Tag
</h4>
                <h4>
                  <strong>Ctrl + Shift + F10</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_4.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_1.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 3</strong>
                </h4>
                <h4>Navigate Forwards
</h4>
                <h4>
                  <strong>Ctrl + –</strong>
                </h4>
                <h4>Navigate Backwards
</h4>
                <h4>
                  <strong>Ctrl + Shift + -</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_6.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_2.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 4</strong>
                </h4>
                <p>
 
</p>
                <h4>Tools, Options…, Display Line Numbers
</h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_8.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_3.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 5</strong>
                </h4>
                <p>
 
</p>
                <h4>Cycle Clipboard Ring
</h4>
                <h4>
                  <strong>Ctrl + Shift + V</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_10.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_4.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 6</strong>
                </h4>
                <h4> 
</h4>
                <h4>Go to Definition
</h4>
                <h4>
                  <strong>F12</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_12.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_5.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 7</strong>
                </h4>
                <h4> 
</h4>
                <h4>Go to Line
</h4>
                <h4>
                  <strong>Ctrl + G</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_66.png">
                  <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_32.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 8</strong>
                </h4>
                <p>
Vertical Block Selection
</p>
                <h4>
                  <strong>Alt + Mouse</strong>
                </h4>
                <h4>
                  <strong>Shift + Alt + Right Arrow</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_16.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_7.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 9</strong>
                </h4>
                <p>
View Properties Window
</p>
                <h4>
                  <strong>F4</strong>
                </h4>
                <h4>View Properties Window
</h4>
                <h4>
                  <strong>Alt + Enter</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_18.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_8.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 10</strong>
                </h4>
                <p>
Comment Selection
</p>
                <h4>
                  <strong>Ctrl + K, Ctrl + C</strong>
                </h4>
                <p>
Uncomment Selection
</p>
                <p>
                  <strong>Ctrl + K, Ctrl + U</strong>
                </p>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_22.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_10.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 11</strong>
                </h4>
                <p>
 
</p>
                <h4>Toggle Code / Design Views
</h4>
                <h4>
                  <strong>F7</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_24.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_11.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 12</strong>
                </h4>
                <p>
Make Lowercase
</p>
                <h4>
                  <strong>Ctrl + U</strong>
                </h4>
                <p>
Make Uppercase
</p>
                <h4>
                  <strong>Ctrl + Shift + U</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_26.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_12.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 13</strong>
                </h4>
                <p>
 
</p>
                <h4>Incremental Search
</h4>
                <h4>
                  <strong>Ctrl + I</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_28.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_13.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 14</strong>
                </h4>
                <p>
 
</p>
                <h4>Ctrl + Tab Navigator Window
</h4>
                <h4>
                  <strong>Ctrl + Tab</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_30.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_14.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 15</strong>
                </h4>
                <p>
 
</p>
                <h4>View Object Browser
</h4>
                <h4>
                  <strong>Ctrl + Alt + J</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_64.png">
                  <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_31.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 16</strong>
                </h4>
                <p>
 
</p>
                <h4>Delete Line
</h4>
                <h4>
                  <strong>Ctrl + L</strong>
                </h4>
                <h4>
                  <strong>Shift + Delete</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_34.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_16.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 17</strong>
                </h4>
                <p>
 
</p>
                <h4>Add New Item to Project
</h4>
                <h4>
                  <strong>Ctrl + Shift + A</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_36.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_17.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 18</strong>
                </h4>
                <p>
 
</p>
                <h4>Close Current Document
</h4>
                <h4>
                  <strong>Ctrl + F4</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_38.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_18.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 19</strong>
                </h4>
                <p>
 
</p>
                <h4>Toggle Breakpoint
</h4>
                <h4>
                  <strong>F9</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_40.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_19.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 20</strong>
                </h4>
                <p>
 
</p>
                <h4>Find All References
</h4>
                <h4>
                  <strong>Shift + F12</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_42.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_20.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 21</strong>
                </h4>
                <h4>Move Cursor One Word Right
</h4>
                <h4>
                  <strong>Ctrl + Right Arrow</strong>
                </h4>
                <h4>Move Cursor One Word Left
</h4>
                <h4>
                  <strong>Ctrl + Left Arrow</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_44.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_21.png" width="244" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 22</strong>
                </h4>
                <p>
 
</p>
                <h4>The Rename Refactor
</h4>
                <h4>
                  <strong>Ctrl + R, R</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_46.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_22.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 23</strong>
                </h4>
                <p>
 
</p>
                <h4>Find All References
</h4>
                <h4>
                  <strong>Shift + F12</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_48.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_23.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 24</strong>
                </h4>
                <p>
 
</p>
                <h4>Format Document
</h4>
                <h4>
                  <strong>Ctrl + K, Ctrl + D</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_50.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_24.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 25</strong>
                </h4>
                <p>
 
</p>
                <h4>View Task List
</h4>
                <h4>
                  <strong>Ctrl + \, Ctrl + T</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_52.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_25.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 26</strong>
                </h4>
                <p>
 
</p>
                <h4>Find in Files
</h4>
                <h4>
                  <strong>Ctrl + Shift + F</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_54.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_26.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 27</strong>
                </h4>
                <p>
 
</p>
                <h4>Toggle Outlining Expansion
</h4>
                <h4>
                  <strong>Ctrl + M, Ctrl + M</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_56.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_27.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 28</strong>
                </h4>
                <p>
 
</p>
                <h4>Close All Documents
</h4>
                <h4>
                  <strong>Alt + W, L</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_58.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_28.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 29</strong>
                </h4>
                <p>
 
</p>
                <h4>Save Any Output Window
</h4>
                <h4>
                  <strong>Ctrl + S</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_60.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_29.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 30</strong>
                </h4>
                <p>
 
</p>
                <h4>Build Solution
</h4>
                <h4>
                  <strong>Ctrl + Shift + B</strong>
                </h4>
              </td>
            </tr>
            <tr>
              <td valign="top" width="275">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_62.png">
                  <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="185" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_30.png" width="244" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="275">
                <h4>
                  <strong>Day 31</strong>
                </h4>
                <p>
 
</p>
                <h4>Reset Window Layout
</h4>
                <h4>
                  <strong>Alt, W, R</strong>
                </h4>
              </td>
            </tr>
          </tbody>
        </table>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=1ff08518-8d5a-4c98-a854-dc18a2b38aac" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,1ff08518-8d5a-4c98-a854-dc18a2b38aac.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/08/01/31DaysOfVisualStudioTipsAmpTricks.aspx</link>
      <pubDate>Fri, 01 Aug 2008 21:15:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
I thought it would be useful if I did a recap of all of the 31 tips and tricks from
the 31 Days of Visual Studio Tips &amp;amp; Tricks. I hope it helps. I’ll post a follow
up with all the user submitted tips soon!
&lt;/p&gt;
&lt;p&gt;
Here’s the download link for the for the complete PowerPoint:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="2" width="550" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;p align="center"&gt;
&lt;strong&gt;&lt;u&gt;PowerPoint Slide&lt;/u&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;p align="center"&gt;
&lt;strong&gt;&lt;u&gt;Keyboard Shortcut&lt;/u&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_20.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_9.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 1&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;Show Shortcut Keys
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_2.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 2&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
Open Smart Tag
&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + .&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;Open Smart Tag
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + Shift + F10&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_4.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_1.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 3&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;Navigate Forwards
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + –&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;Navigate Backwards
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + Shift + -&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_6.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_2.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 4&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;Tools, Options…, Display Line Numbers
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_8.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_3.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 5&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;Cycle Clipboard Ring
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + Shift + V&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_10.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_4.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 6&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;&amp;#160;
&lt;/h4&gt;
&lt;h4&gt;Go to Definition
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;F12&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_12.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_5.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 7&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;&amp;#160;
&lt;/h4&gt;
&lt;h4&gt;Go to Line
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + G&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_66.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_32.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 8&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
Vertical Block Selection
&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Alt + Mouse&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Shift + Alt + Right Arrow&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_16.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_7.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 9&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
View Properties Window
&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;F4&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;View Properties Window
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Alt + Enter&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_18.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_8.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 10&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
Comment Selection
&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + K, Ctrl + C&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
Uncomment Selection
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Ctrl + K, Ctrl + U&lt;/strong&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_22.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_10.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 11&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;Toggle Code / Design Views
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;F7&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_24.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_11.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 12&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
Make Lowercase
&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + U&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
Make Uppercase
&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + Shift + U&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_26.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_12.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 13&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;Incremental Search
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + I&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_28.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_13.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 14&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;Ctrl + Tab Navigator Window
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + Tab&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_30.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_14.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 15&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;View Object Browser
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + Alt + J&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_64.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_31.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 16&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;Delete Line
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + L&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Shift + Delete&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_34.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_16.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 17&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;Add New Item to Project
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + Shift + A&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_36.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_17.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 18&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;Close Current Document
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + F4&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_38.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_18.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 19&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;Toggle Breakpoint
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;F9&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_40.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_19.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 20&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;Find All References
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Shift + F12&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_42.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_20.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 21&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;Move Cursor One Word Right
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + Right Arrow&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;Move Cursor One Word Left
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + Left Arrow&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_44.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_21.png" width="244" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 22&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;The Rename Refactor
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + R, R&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_46.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_22.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 23&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;Find All References
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Shift + F12&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_48.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_23.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 24&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;Format Document
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + K, Ctrl + D&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_50.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_24.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 25&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;View Task List
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + \, Ctrl + T&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_52.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_25.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 26&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;Find in Files
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + Shift + F&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_54.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_26.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 27&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;Toggle Outlining Expansion
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + M, Ctrl + M&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_56.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_27.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 28&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;Close All Documents
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Alt + W, L&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_58.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_28.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 29&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;Save Any Output Window
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + S&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_60.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_29.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 30&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;Build Solution
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + Shift + B&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="275"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_62.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="185" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksTheFirst10_109A2/image_thumb_30.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="275"&gt;
&lt;h4&gt;&lt;strong&gt;Day 31&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h4&gt;Reset Window Layout
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Alt, W, R&lt;/strong&gt;
&lt;/h4&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=1ff08518-8d5a-4c98-a854-dc18a2b38aac" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,1ff08518-8d5a-4c98-a854-dc18a2b38aac.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=de759860-8356-4c47-91ee-7f95da1f45b9</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,de759860-8356-4c47-91ee-7f95da1f45b9.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,de759860-8356-4c47-91ee-7f95da1f45b9.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=de759860-8356-4c47-91ee-7f95da1f45b9</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay30Build_132B3/image_2.png">
          <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay30Build_132B3/image_thumb.png" width="244" align="right" border="0" />
        </a>
        <p>
        </p>
        <p>
          <a href="http://en.wikipedia.org/wiki/Veni,_vidi,_vici" target="_blank">I came, I
coded, I compiled.</a> If only Julius Caesar had been a developer, maybe <a href="http://en.wikipedia.org/wiki/Duke_Nukem_Forever" target="_blank">Duke
Nukem Forever</a> would be released by now. So you made a quick change and need to
build the solution as fast as possible and get it to the QA department now. What is
the fastest way to do this?
</p>
        <blockquote>
          <h4>Build Solution
</h4>
          <h4>
            <strong>Ctrl + Shift + B</strong>
          </h4>
          <h4>
            <h4>
              <strong>
              </strong>
            </h4>
            <strong>Note:</strong> The preceding image will take you to a full size image if you
want to see this in more detail.
</h4>
        </blockquote>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=de759860-8356-4c47-91ee-7f95da1f45b9" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 30: Build Solution</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,de759860-8356-4c47-91ee-7f95da1f45b9.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/30/31DaysOfVisualStudioTipsAmpTricksNdashDay30BuildSolution.aspx</link>
      <pubDate>Wed, 30 Jul 2008 21:48:00 GMT</pubDate>
      <description>&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay30Build_132B3/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay30Build_132B3/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://en.wikipedia.org/wiki/Veni,_vidi,_vici" target="_blank"&gt;I came, I
coded, I compiled.&lt;/a&gt; If only Julius Caesar had been a developer, maybe &lt;a href="http://en.wikipedia.org/wiki/Duke_Nukem_Forever" target="_blank"&gt;Duke
Nukem Forever&lt;/a&gt; would be released by now. So you made a quick change and need to
build the solution as fast as possible and get it to the QA department now. What is
the fastest way to do this?
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h4&gt;Build Solution
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + Shift + B&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;
&lt;h4&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/h4&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The preceding image will take you to a full size image if you
want to see this in more detail.
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=de759860-8356-4c47-91ee-7f95da1f45b9" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,de759860-8356-4c47-91ee-7f95da1f45b9.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=2148a287-a3b1-488f-bcf8-6c46348f6aef</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,2148a287-a3b1-488f-bcf8-6c46348f6aef.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,2148a287-a3b1-488f-bcf8-6c46348f6aef.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=2148a287-a3b1-488f-bcf8-6c46348f6aef</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay29Savin_12D94/image_2.png">
            <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay29Savin_12D94/image_thumb.png" width="244" align="right" border="0" />
          </a>
        </p>
        <p>
Output is pretty much the bread and butter of any application. Visual Studio has a
whole window that is dedicated to dealing with various trace information. Sometime
we would like to be able to save and view this information later or in another utility.
But it is a real pain to do this process manually. There has to be an easier way… 
</p>
        <blockquote>
          <h4>Save Any Output Window
</h4>
          <h4>
            <strong>Ctrl + S</strong>
          </h4>
          <h4>
            <h4>
              <strong>
              </strong>
            </h4>
            <strong>Note:</strong> The preceding image will take you to a full size image if you
want to see this in more detail.
</h4>
        </blockquote>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=2148a287-a3b1-488f-bcf8-6c46348f6aef" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 29: Saving Any Output Window</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,2148a287-a3b1-488f-bcf8-6c46348f6aef.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/29/31DaysOfVisualStudioTipsAmpTricksNdashDay29SavingAnyOutputWindow.aspx</link>
      <pubDate>Tue, 29 Jul 2008 21:16:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay29Savin_12D94/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay29Savin_12D94/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Output is pretty much the bread and butter of any application. Visual Studio has a
whole window that is dedicated to dealing with various trace information. Sometime
we would like to be able to save and view this information later or in another utility.
But it is a real pain to do this process manually. There has to be an easier way… 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h4&gt;Save Any Output Window
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + S&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;
&lt;h4&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/h4&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The preceding image will take you to a full size image if you
want to see this in more detail.
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=2148a287-a3b1-488f-bcf8-6c46348f6aef" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,2148a287-a3b1-488f-bcf8-6c46348f6aef.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=e4be1125-7004-46e4-bca0-5f2f0fc5f31d</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,e4be1125-7004-46e4-bca0-5f2f0fc5f31d.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,e4be1125-7004-46e4-bca0-5f2f0fc5f31d.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e4be1125-7004-46e4-bca0-5f2f0fc5f31d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay28Close_FEFF/image_2.png">
            <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay28Close_FEFF/image_thumb.png" width="244" align="right" border="0" />
          </a>So
you have all kinds of windows and documents open in Visual Studio, everything from
form designers to XML editors. Now you want to close everything and start something
else, and you’re in a big hurry. What do you do?
</p>
        <blockquote>
          <h4>Close All Documents
</h4>
          <h4>
            <strong>Alt + W, L</strong>
          </h4>
          <h4>
            <h4>
              <strong>
              </strong>
            </h4>
            <strong>Note:</strong> The preceding image will take you to a full size image if you
want to see this in more detail.
</h4>
        </blockquote>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=e4be1125-7004-46e4-bca0-5f2f0fc5f31d" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 28: Close All Documents</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,e4be1125-7004-46e4-bca0-5f2f0fc5f31d.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/28/31DaysOfVisualStudioTipsAmpTricksNdashDay28CloseAllDocuments.aspx</link>
      <pubDate>Mon, 28 Jul 2008 21:06:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay28Close_FEFF/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay28Close_FEFF/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt;So
you have all kinds of windows and documents open in Visual Studio, everything from
form designers to XML editors. Now you want to close everything and start something
else, and you’re in a big hurry. What do you do?
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h4&gt;Close All Documents
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Alt + W, L&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;
&lt;h4&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/h4&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The preceding image will take you to a full size image if you
want to see this in more detail.
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=e4be1125-7004-46e4-bca0-5f2f0fc5f31d" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,e4be1125-7004-46e4-bca0-5f2f0fc5f31d.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=42a41b82-c3ae-4e9e-b144-fe1cfd0693bb</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,42a41b82-c3ae-4e9e-b144-fe1cfd0693bb.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,42a41b82-c3ae-4e9e-b144-fe1cfd0693bb.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=42a41b82-c3ae-4e9e-b144-fe1cfd0693bb</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay27Toggl_D234/image_4.png">
          <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay27Toggl_D234/image_thumb_1.png" width="244" align="right" border="0" />
        </a>
        <p>
        </p>
        <p>
Visual Studio allows developers to collapse code into regions, and so on. Sometimes
this is helpful, sometimes not so much. But with the power of Visual Studio keyboard
shortcuts we can make it less troublesome to manage this feature.
</p>
        <p>
Here’s how:
</p>
        <blockquote>
          <h4>Toggle Outlining Expansion
</h4>
          <h4>
            <strong>Ctrl + M, Ctrl + M</strong>
          </h4>
          <h4>
            <h4>
              <strong>
              </strong>
            </h4>
            <strong>Note:</strong> The preceding image will take you to a full size image if you
want to see this in more detail.
</h4>
        </blockquote>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=42a41b82-c3ae-4e9e-b144-fe1cfd0693bb" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 27: Toggle Outlining Expansion</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,42a41b82-c3ae-4e9e-b144-fe1cfd0693bb.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/27/31DaysOfVisualStudioTipsAmpTricksNdashDay27ToggleOutliningExpansion.aspx</link>
      <pubDate>Sun, 27 Jul 2008 20:55:00 GMT</pubDate>
      <description>&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay27Toggl_D234/image_4.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay27Toggl_D234/image_thumb_1.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Visual Studio allows developers to collapse code into regions, and so on. Sometimes
this is helpful, sometimes not so much. But with the power of Visual Studio keyboard
shortcuts we can make it less troublesome to manage this feature.
&lt;/p&gt;
&lt;p&gt;
Here’s how:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h4&gt;Toggle Outlining Expansion
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + M, Ctrl + M&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;
&lt;h4&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/h4&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The preceding image will take you to a full size image if you
want to see this in more detail.
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=42a41b82-c3ae-4e9e-b144-fe1cfd0693bb" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,42a41b82-c3ae-4e9e-b144-fe1cfd0693bb.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=76678921-ad22-4670-85b4-e3e8f15724cd</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,76678921-ad22-4670-85b4-e3e8f15724cd.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,76678921-ad22-4670-85b4-e3e8f15724cd.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=76678921-ad22-4670-85b4-e3e8f15724cd</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay26Findi_CD71/image_4.png">
            <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay26Findi_CD71/image_thumb_1.png" width="244" align="right" border="0" />
          </a>It
does take long to have a ton of code on your hands, especially when you need to find
something in a hurry. What can we do? Do we have a chance? How can we best find something
in all of our solutions files? 
</p>
        <p>
Here’s how:
</p>
        <blockquote>
          <h4>Find in Files
</h4>
          <h4>
            <strong>Ctrl + Shift + F</strong>
          </h4>
          <h4>
            <h4>
              <strong>
              </strong>
            </h4>
            <strong>Note:</strong> The image above will take you to a full size image if you want
to see this in more detail.
</h4>
        </blockquote>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=76678921-ad22-4670-85b4-e3e8f15724cd" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 26: Find in Files</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,76678921-ad22-4670-85b4-e3e8f15724cd.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/26/31DaysOfVisualStudioTipsAmpTricksNdashDay26FindInFiles.aspx</link>
      <pubDate>Sat, 26 Jul 2008 21:36:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay26Findi_CD71/image_4.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay26Findi_CD71/image_thumb_1.png" width="244" align="right" border="0" /&gt;&lt;/a&gt;It
does take long to have a ton of code on your hands, especially when you need to find
something in a hurry. What can we do? Do we have a chance? How can we best find something
in all of our solutions files? 
&lt;/p&gt;
&lt;p&gt;
Here’s how:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h4&gt;Find in Files
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + Shift + F&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;
&lt;h4&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/h4&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The image above will take you to a full size image if you want
to see this in more detail.
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=76678921-ad22-4670-85b4-e3e8f15724cd" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,76678921-ad22-4670-85b4-e3e8f15724cd.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=4bac47cc-3bcc-4e4d-937e-1c4cd125aba8</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,4bac47cc-3bcc-4e4d-937e-1c4cd125aba8.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,4bac47cc-3bcc-4e4d-937e-1c4cd125aba8.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=4bac47cc-3bcc-4e4d-937e-1c4cd125aba8</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay25ViewT_CCD0/image_2.png">
            <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay25ViewT_CCD0/image_thumb.png" width="244" align="right" border="0" />
          </a>
        </p>
        <p>
So, how long is your task list? Do you have a ton of TODO’s? Did you know you can
use Visual Studio to track your TODO’s in a task list? All you have to do is mark
each TODO as follows:
</p>
        <p>
          <font color="#008000">// TODO: this is an example of something I really need to do</font>
        </p>
        <p>
If you do this you can see your TODO’s in Visual Studio Task List dialog, which you
can always pull up with the following keyboard shortcut:
</p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <blockquote>
          <h4>
            <h4>
              <strong>
              </strong>
            </h4>
View Task List
</h4>
          <h4>
            <strong>Ctrl + \, Ctrl + T</strong>
          </h4>
          <h4>
            <h4>
              <strong>
              </strong>
            </h4>
            <strong>Note:</strong> The image above will take you to a full size image if you want
to see this in more detail.
</h4>
        </blockquote>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=4bac47cc-3bcc-4e4d-937e-1c4cd125aba8" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 25: View Task List</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,4bac47cc-3bcc-4e4d-937e-1c4cd125aba8.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/25/31DaysOfVisualStudioTipsAmpTricksNdashDay25ViewTaskList.aspx</link>
      <pubDate>Fri, 25 Jul 2008 21:33:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay25ViewT_CCD0/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay25ViewT_CCD0/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
So, how long is your task list? Do you have a ton of TODO’s? Did you know you can
use Visual Studio to track your TODO’s in a task list? All you have to do is mark
each TODO as follows:
&lt;/p&gt;
&lt;p&gt;
&lt;font color="#008000"&gt;// TODO: this is an example of something I really need to do&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
If you do this you can see your TODO’s in Visual Studio Task List dialog, which you
can always pull up with the following keyboard shortcut:
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h4&gt;
&lt;h4&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/h4&gt;
View Task List
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + \, Ctrl + T&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;
&lt;h4&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/h4&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The image above will take you to a full size image if you want
to see this in more detail.
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=4bac47cc-3bcc-4e4d-937e-1c4cd125aba8" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,4bac47cc-3bcc-4e4d-937e-1c4cd125aba8.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=26cd8446-2c2c-4609-b25b-5f04d9f241ae</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,26cd8446-2c2c-4609-b25b-5f04d9f241ae.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,26cd8446-2c2c-4609-b25b-5f04d9f241ae.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=26cd8446-2c2c-4609-b25b-5f04d9f241ae</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
Have you ever gotten code from someone or somewhere and you were not “thrilled” with
how it was formatted. Was it just formatted wrong? Then the “Format Document” keyboard
shortcut is for you! It will take the file you have open and format all the code until
it is valid. Personally I wish their was a “Format Document for Chris Craft” keyboard
shortcut because Visual Studio is a lot more forgiving than I am. But that’s okay
it is still a life saver and you will love it one day when it just make the code better,
all in one simple keyboard shortcut.
</p>
        <blockquote>
          <h4>
            <h4>
              <strong>
              </strong>
            </h4>
Format Document
</h4>
          <h4>
            <strong>Ctrl + K, Ctrl + D</strong>
          </h4>
          <h4>
            <h4>
              <strong>
              </strong>
            </h4>
            <strong>Note:</strong> The image above will take you to a full size image if you want
to see this in more detail.
</h4>
        </blockquote>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay24Forma_14BF6/image_4.png">
            <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay24Forma_14BF6/image_thumb_1.png" width="244" align="right" border="0" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=26cd8446-2c2c-4609-b25b-5f04d9f241ae" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 24: Format Document</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,26cd8446-2c2c-4609-b25b-5f04d9f241ae.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/24/31DaysOfVisualStudioTipsAmpTricksNdashDay24FormatDocument.aspx</link>
      <pubDate>Thu, 24 Jul 2008 21:36:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Have you ever gotten code from someone or somewhere and you were not “thrilled” with
how it was formatted. Was it just formatted wrong? Then the “Format Document” keyboard
shortcut is for you! It will take the file you have open and format all the code until
it is valid. Personally I wish their was a “Format Document for Chris Craft” keyboard
shortcut because Visual Studio is a lot more forgiving than I am. But that’s okay
it is still a life saver and you will love it one day when it just make the code better,
all in one simple keyboard shortcut.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h4&gt;
&lt;h4&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/h4&gt;
Format Document
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + K, Ctrl + D&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;
&lt;h4&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/h4&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The image above will take you to a full size image if you want
to see this in more detail.
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay24Forma_14BF6/image_4.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay24Forma_14BF6/image_thumb_1.png" width="244" align="right" border="0" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=26cd8446-2c2c-4609-b25b-5f04d9f241ae" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,26cd8446-2c2c-4609-b25b-5f04d9f241ae.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=2fbbed51-2783-474c-a0e1-b326b4611e5f</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,2fbbed51-2783-474c-a0e1-b326b4611e5f.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,2fbbed51-2783-474c-a0e1-b326b4611e5f.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=2fbbed51-2783-474c-a0e1-b326b4611e5f</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay23Toggl_12BD1/image_2.png">
          <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay23Toggl_12BD1/image_thumb.png" width="244" align="right" border="0" />
        </a>
        <p>
Screen real estate is always in short demand. Give us more monitors, give us bigger
monitors. What would you say if you could have more screen real estate for coding
with a single keyboard shortcut? You can, it is easy. All you have to do is the following:
</p>
        <blockquote>
          <h4>
            <h4>
              <strong>
              </strong>
            </h4>
Toggle Full Screen Mode
</h4>
          <h4>
            <strong>Shift + Alt + Enter</strong>
          </h4>
          <h4>
            <h4>
              <strong>
              </strong>
            </h4>
            <strong>Note:</strong> The image above will take you to a full size image if you want
to see this in more detail.
</h4>
        </blockquote>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=2fbbed51-2783-474c-a0e1-b326b4611e5f" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 23: Toggle Full Screen Mode</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,2fbbed51-2783-474c-a0e1-b326b4611e5f.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/23/31DaysOfVisualStudioTipsAmpTricksNdashDay23ToggleFullScreenMode.aspx</link>
      <pubDate>Wed, 23 Jul 2008 23:17:00 GMT</pubDate>
      <description>&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay23Toggl_12BD1/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay23Toggl_12BD1/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; 
&lt;p&gt;
Screen real estate is always in short demand. Give us more monitors, give us bigger
monitors. What would you say if you could have more screen real estate for coding
with a single keyboard shortcut? You can, it is easy. All you have to do is the following:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h4&gt;
&lt;h4&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/h4&gt;
Toggle Full Screen Mode
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Shift + Alt + Enter&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;
&lt;h4&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/h4&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The image above will take you to a full size image if you want
to see this in more detail.
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=2fbbed51-2783-474c-a0e1-b326b4611e5f" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,2fbbed51-2783-474c-a0e1-b326b4611e5f.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=278e48c7-3aac-4381-ba59-8b86e72f9156</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,278e48c7-3aac-4381-ba59-8b86e72f9156.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,278e48c7-3aac-4381-ba59-8b86e72f9156.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=278e48c7-3aac-4381-ba59-8b86e72f9156</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay21MoveC_1489D/image_2.png">
          <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay21MoveC_1489D/image_thumb.png" width="244" align="right" border="0" />
        </a>
        <p>
        </p>
        <p>
So is the event’s status <strong>Status.Cancelled</strong> or <strong>Status.Canceled</strong>?
It is very possible one person will ask that it be changed to “Canceled” only to have
another person ask to change it back to “Cancelled”. Instead of wrestling with the
code or wearing our your “Find and Replace” feature, take advantage of one of Visual
Studio’s features: The Rename Refactor. All you have to do is select an object and
use its keyboard shortcut:
</p>
        <blockquote>
          <h4>
            <h4>
              <strong>
              </strong>
            </h4>
The Rename Refactor
</h4>
          <h4>
            <strong>Ctrl + R, R</strong>
          </h4>
          <h4>
            <h4>
              <strong>
              </strong>
            </h4>
            <strong>Note:</strong> The image above will take you to a full size image if you want
to see this in more detail.
</h4>
        </blockquote>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=278e48c7-3aac-4381-ba59-8b86e72f9156" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 22: The Rename Refactor</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,278e48c7-3aac-4381-ba59-8b86e72f9156.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/22/31DaysOfVisualStudioTipsAmpTricksNdashDay22TheRenameRefactor.aspx</link>
      <pubDate>Tue, 22 Jul 2008 21:21:00 GMT</pubDate>
      <description>&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay21MoveC_1489D/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay21MoveC_1489D/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
So is the event’s status &lt;strong&gt;Status.Cancelled&lt;/strong&gt; or &lt;strong&gt;Status.Canceled&lt;/strong&gt;?
It is very possible one person will ask that it be changed to “Canceled” only to have
another person ask to change it back to “Cancelled”. Instead of wrestling with the
code or wearing our your “Find and Replace” feature, take advantage of one of Visual
Studio’s features: The Rename Refactor. All you have to do is select an object and
use its keyboard shortcut:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h4&gt;
&lt;h4&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/h4&gt;
The Rename Refactor
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + R, R&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;
&lt;h4&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/h4&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The image above will take you to a full size image if you want
to see this in more detail.
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=278e48c7-3aac-4381-ba59-8b86e72f9156" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,278e48c7-3aac-4381-ba59-8b86e72f9156.aspx</comments>
      <category>.Net Programming</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=5ab2bd9e-3b57-4ad4-a492-248f9697ca5d</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,5ab2bd9e-3b57-4ad4-a492-248f9697ca5d.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,5ab2bd9e-3b57-4ad4-a492-248f9697ca5d.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5ab2bd9e-3b57-4ad4-a492-248f9697ca5d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay21MoveC_131A7/image_2.png">
          <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay21MoveC_131A7/image_thumb.png" width="244" align="right" border="0" />
        </a>
        <p>
How often do you want to move across one of your lines of code? Every day? Every hour?
More? I’m sure it is often. And I hope you know and use this shortcut since it will
save you lots of effort ever time you use it. Try it today, I bet you’ll love it.
</p>
        <blockquote>
          <h4>Move Cursor One Word Right
</h4>
          <h4>
            <strong>Ctrl + Right Arrow</strong>
          </h4>
          <h4>Move Cursor One Word Left
</h4>
          <h4>
            <strong>Ctrl + Left Arrow</strong>
          </h4>
          <h4>
            <h4>
              <strong>
              </strong>
            </h4>
            <strong>Note:</strong> The image above will take you to a full size image if you want
to see this in more detail.
</h4>
        </blockquote>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=5ab2bd9e-3b57-4ad4-a492-248f9697ca5d" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 21: Move Cursor One Word</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,5ab2bd9e-3b57-4ad4-a492-248f9697ca5d.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/21/31DaysOfVisualStudioTipsAmpTricksNdashDay21MoveCursorOneWord.aspx</link>
      <pubDate>Mon, 21 Jul 2008 23:38:00 GMT</pubDate>
      <description>&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay21MoveC_131A7/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay21MoveC_131A7/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; 
&lt;p&gt;
How often do you want to move across one of your lines of code? Every day? Every hour?
More? I’m sure it is often. And I hope you know and use this shortcut since it will
save you lots of effort ever time you use it. Try it today, I bet you’ll love it.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h4&gt;Move Cursor One Word Right
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + Right Arrow&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;Move Cursor One Word Left
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + Left Arrow&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;
&lt;h4&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/h4&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The image above will take you to a full size image if you want
to see this in more detail.
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=5ab2bd9e-3b57-4ad4-a492-248f9697ca5d" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,5ab2bd9e-3b57-4ad4-a492-248f9697ca5d.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=fb8e57f6-c0d1-4359-b530-e66b03a22fb9</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,fb8e57f6-c0d1-4359-b530-e66b03a22fb9.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,fb8e57f6-c0d1-4359-b530-e66b03a22fb9.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=fb8e57f6-c0d1-4359-b530-e66b03a22fb9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay20FindA_85D2/image_2.png">
            <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay20FindA_85D2/image_thumb.png" width="244" align="right" border="0" />
          </a>
        </p>
        <p>
Let’s say you have a customer class. You know this class is used throughout your solution,
but you aren’t sure exactly where it is being used. How can you quickly and easily
find out this information?
</p>
        <p>
All you have to do is use “Find All References”, either use the right-click menu item
or even better use this keyboard shortcut:
</p>
        <blockquote>
          <h4>Find All References
</h4>
          <h4>
            <strong>Shift + F12</strong>
          </h4>
          <h4>
            <h4>
              <strong>
              </strong>
            </h4>
            <strong>Note:</strong> The image above will take you to a full size image if you want
to see this in more detail.
</h4>
        </blockquote>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=fb8e57f6-c0d1-4359-b530-e66b03a22fb9" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 20: Find All References</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,fb8e57f6-c0d1-4359-b530-e66b03a22fb9.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/20/31DaysOfVisualStudioTipsAmpTricksNdashDay20FindAllReferences.aspx</link>
      <pubDate>Sun, 20 Jul 2008 17:30:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay20FindA_85D2/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay20FindA_85D2/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Let’s say you have a customer class. You know this class is used throughout your solution,
but you aren’t sure exactly where it is being used. How can you quickly and easily
find out this information?
&lt;/p&gt;
&lt;p&gt;
All you have to do is use “Find All References”, either use the right-click menu item
or even better use this keyboard shortcut:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h4&gt;Find All References
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Shift + F12&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;
&lt;h4&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/h4&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The image above will take you to a full size image if you want
to see this in more detail.
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=fb8e57f6-c0d1-4359-b530-e66b03a22fb9" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,fb8e57f6-c0d1-4359-b530-e66b03a22fb9.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=e6e68a1c-27dd-49d4-ae5c-b02d883eb300</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,e6e68a1c-27dd-49d4-ae5c-b02d883eb300.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,e6e68a1c-27dd-49d4-ae5c-b02d883eb300.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e6e68a1c-27dd-49d4-ae5c-b02d883eb300</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay18Close_10E6C/image_2.png">
          <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay18Close_10E6C/image_thumb.png" width="244" align="right" border="0" />
        </a>
        <p>
        </p>
        <p>
Today’s tip is an interesting one. Do you know how to close an application window
in Windows? Usually you can press <strong>Alt + F4</strong>. Visual Studio has similar
feature, that comes in handy. The close current document keyboard shortcut works on
most documents irregardless of whether they are in code view or design view. Quite
useful and allows yours hands to spend more time on the keyboard and less time moving
the mouse around everywhere.
</p>
        <blockquote>
          <h4>Close Current Document
</h4>
          <h4>
            <strong>Ctrl + F4</strong>
          </h4>
          <h4>
            <h4>
              <strong>
              </strong>
            </h4>
            <strong>Note:</strong> The image above will take you to a full size image if you want
to see this in more detail.
</h4>
        </blockquote>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=e6e68a1c-27dd-49d4-ae5c-b02d883eb300" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 18: Close Current Document</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,e6e68a1c-27dd-49d4-ae5c-b02d883eb300.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/18/31DaysOfVisualStudioTipsAmpTricksNdashDay18CloseCurrentDocument.aspx</link>
      <pubDate>Fri, 18 Jul 2008 23:13:00 GMT</pubDate>
      <description>&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay18Close_10E6C/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay18Close_10E6C/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Today’s tip is an interesting one. Do you know how to close an application window
in Windows? Usually you can press &lt;strong&gt;Alt + F4&lt;/strong&gt;. Visual Studio has similar
feature, that comes in handy. The close current document keyboard shortcut works on
most documents irregardless of whether they are in code view or design view. Quite
useful and allows yours hands to spend more time on the keyboard and less time moving
the mouse around everywhere.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h4&gt;Close Current Document
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + F4&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;
&lt;h4&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/h4&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The image above will take you to a full size image if you want
to see this in more detail.
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=e6e68a1c-27dd-49d4-ae5c-b02d883eb300" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,e6e68a1c-27dd-49d4-ae5c-b02d883eb300.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=f5ef9dd3-ab82-482e-9ab1-f1fcaf3666af</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,f5ef9dd3-ab82-482e-9ab1-f1fcaf3666af.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,f5ef9dd3-ab82-482e-9ab1-f1fcaf3666af.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f5ef9dd3-ab82-482e-9ab1-f1fcaf3666af</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay17AddNe_12542/image_2.png">
          <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay17AddNe_12542/image_thumb.png" width="244" align="right" border="0" />
        </a>
        <p>
        </p>
        <p>
        </p>
        <p>
Solutions have more and more projects these days, and projects have more and more
files. If you are working on a large enterprise level line of business application
then you really might want to consider today’s Visual Studio keyboard shortcut. Admit
it, you’ve probably added hundreds of file using the mouse and massaging various Visual
Studio menus and toolbars. But after today you will probably have a new, better way
of doing the same thing. How cool is that?
</p>
        <blockquote>
          <h4>Add New Item to Project
</h4>
          <h4>
            <strong>Ctrl + Shift + A</strong>
          </h4>
          <h4>
            <h4>
              <strong>
              </strong>
            </h4>
            <strong>Note:</strong> The image above will take you to a full size image if you want
to see this in more detail.
</h4>
        </blockquote>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=f5ef9dd3-ab82-482e-9ab1-f1fcaf3666af" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 17: Add New Item to Project</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,f5ef9dd3-ab82-482e-9ab1-f1fcaf3666af.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/17/31DaysOfVisualStudioTipsAmpTricksNdashDay17AddNewItemToProject.aspx</link>
      <pubDate>Thu, 17 Jul 2008 23:46:00 GMT</pubDate>
      <description>&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay17AddNe_12542/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay17AddNe_12542/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Solutions have more and more projects these days, and projects have more and more
files. If you are working on a large enterprise level line of business application
then you really might want to consider today’s Visual Studio keyboard shortcut. Admit
it, you’ve probably added hundreds of file using the mouse and massaging various Visual
Studio menus and toolbars. But after today you will probably have a new, better way
of doing the same thing. How cool is that?
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h4&gt;Add New Item to Project
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + Shift + A&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;
&lt;h4&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/h4&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The image above will take you to a full size image if you want
to see this in more detail.
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=f5ef9dd3-ab82-482e-9ab1-f1fcaf3666af" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,f5ef9dd3-ab82-482e-9ab1-f1fcaf3666af.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=3a192267-2ce5-478a-b8dd-e4a5a583d860</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,3a192267-2ce5-478a-b8dd-e4a5a583d860.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,3a192267-2ce5-478a-b8dd-e4a5a583d860.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=3a192267-2ce5-478a-b8dd-e4a5a583d860</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay16Delet_B3BE/image_2.png">
          <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay16Delet_B3BE/image_thumb.png" width="244" align="right" border="0" />
        </a>
        <p>
So everyday you possibly write hundreds, maybe thousands, of lines of code. Some of
them are perfect, and will continue on to have a long productive life. Others however
will be found wanting. 
</p>
        <p>
It it for these inadequate lines of code that the delete line keyboard shortcut was
designed to deal with. And deal with it does. Instead of having to select a line,
or multiple lines, you can simple use the delete line shortcut and wipe away the current
line, or the currently selected lines.
</p>
        <blockquote>
          <h4>Delete Line
</h4>
          <h4>
            <strong>Ctrl + L</strong>
          </h4>
          <h4>
            <h4>
              <strong>
              </strong>
            </h4>
            <strong>Note:</strong> The image above will take you to a full size image if you want
to see this in more detail.
</h4>
        </blockquote>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=3a192267-2ce5-478a-b8dd-e4a5a583d860" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 16: Delete Line</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,3a192267-2ce5-478a-b8dd-e4a5a583d860.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/16/31DaysOfVisualStudioTipsAmpTricksNdashDay16DeleteLine.aspx</link>
      <pubDate>Wed, 16 Jul 2008 20:46:00 GMT</pubDate>
      <description>&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay16Delet_B3BE/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay16Delet_B3BE/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; 
&lt;p&gt;
So everyday you possibly write hundreds, maybe thousands, of lines of code. Some of
them are perfect, and will continue on to have a long productive life. Others however
will be found wanting. 
&lt;/p&gt;
&lt;p&gt;
It it for these inadequate lines of code that the delete line keyboard shortcut was
designed to deal with. And deal with it does. Instead of having to select a line,
or multiple lines, you can simple use the delete line shortcut and wipe away the current
line, or the currently selected lines.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h4&gt;Delete Line
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + L&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;
&lt;h4&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/h4&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The image above will take you to a full size image if you want
to see this in more detail.
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=3a192267-2ce5-478a-b8dd-e4a5a583d860" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,3a192267-2ce5-478a-b8dd-e4a5a583d860.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=e5c2588d-8b5c-4a5c-a60d-8405e553adec</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,e5c2588d-8b5c-4a5c-a60d-8405e553adec.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,e5c2588d-8b5c-4a5c-a60d-8405e553adec.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e5c2588d-8b5c-4a5c-a60d-8405e553adec</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay15ViewO_767E/image_2.png">
            <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay15ViewO_767E/image_thumb.png" width="244" align="right" border="0" />
          </a>
        </p>
        <p>
Visual Studio’s Object Browser is a powerful tool that can help developers to better
“see” and understand their projects, and projects they may be working with.
</p>
        <p>
Here’s what Visual Studio’s help says about it:
</p>
        <blockquote>
          <p>
The Object Browser lets you select and examine the symbols available for use in projects.
You can open the Object Browser from the View menu, or by clicking the Object Browser
button on the main toolbar.
</p>
        </blockquote>
        <blockquote>
          <p>
There are three panes: an Objects pane on the left, a Members pane on the upper right,
and a Description pane on the lower right. If you resize the Object Browser into a
single column, the Objects pane moves to the top, the Members pane to the middle,
and the Description pane to the bottom.
</p>
        </blockquote>
        <blockquote>
          <h4>View Object Browser
</h4>
          <h4>
            <strong>Ctrl + Alt + J</strong>
          </h4>
          <h4>
            <h4>
              <strong>
              </strong>
            </h4>
            <strong>Note:</strong> The image above will take you to a full size image if you want
to see this in more detail.
</h4>
        </blockquote>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=e5c2588d-8b5c-4a5c-a60d-8405e553adec" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 15: View Object Browser</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,e5c2588d-8b5c-4a5c-a60d-8405e553adec.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/15/31DaysOfVisualStudioTipsAmpTricksNdashDay15ViewObjectBrowser.aspx</link>
      <pubDate>Tue, 15 Jul 2008 16:21:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay15ViewO_767E/image_2.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay15ViewO_767E/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Visual Studio’s Object Browser is a powerful tool that can help developers to better
“see” and understand their projects, and projects they may be working with.
&lt;/p&gt;
&lt;p&gt;
Here’s what Visual Studio’s help says about it:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
The Object Browser lets you select and examine the symbols available for use in projects.
You can open the Object Browser from the View menu, or by clicking the Object Browser
button on the main toolbar.
&lt;/p&gt;
&lt;/blockquote&gt; &lt;blockquote&gt; 
&lt;p&gt;
There are three panes: an Objects pane on the left, a Members pane on the upper right,
and a Description pane on the lower right. If you resize the Object Browser into a
single column, the Objects pane moves to the top, the Members pane to the middle,
and the Description pane to the bottom.
&lt;/p&gt;
&lt;/blockquote&gt; &lt;blockquote&gt; 
&lt;h4&gt;View Object Browser
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + Alt + J&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;
&lt;h4&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/h4&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The image above will take you to a full size image if you want
to see this in more detail.
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=e5c2588d-8b5c-4a5c-a60d-8405e553adec" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,e5c2588d-8b5c-4a5c-a60d-8405e553adec.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=da1c1ba6-5bf3-4c7e-994c-587843822867</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,da1c1ba6-5bf3-4c7e-994c-587843822867.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,da1c1ba6-5bf3-4c7e-994c-587843822867.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=da1c1ba6-5bf3-4c7e-994c-587843822867</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay14CtrlT_FA87/image_2.png">
          <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay14CtrlT_FA87/image_thumb.png" width="244" align="right" border="0" />
        </a>
        <p>
        </p>
        <p>
A great feature of Windows is the Alt + Tab navigator window. It allows user to quickly
toggle between running applications. And Visual Studio has it’s equivalent of this
Windows feature. This allows you to see and to navigate <strong>Active Tool Windows</strong> and <strong>Active
Files</strong>. And you can see a thumbnail of the selected item.
</p>
        <p>
 
</p>
        <blockquote>
          <h4>Ctrl + Tab Navigator Window
</h4>
          <h4>
            <strong>Ctrl + Tab</strong>
          </h4>
          <h4>
            <h4>
              <strong>
              </strong>
            </h4>
            <strong>Note:</strong> The image above will take you to a full size image if you want
to see this in more detail.
</h4>
        </blockquote>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=da1c1ba6-5bf3-4c7e-994c-587843822867" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 14: Ctrl + Tab Navigator Window</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,da1c1ba6-5bf3-4c7e-994c-587843822867.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/14/31DaysOfVisualStudioTipsAmpTricksNdashDay14CtrlTabNavigatorWindow.aspx</link>
      <pubDate>Mon, 14 Jul 2008 23:48:00 GMT</pubDate>
      <description>&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay14CtrlT_FA87/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay14CtrlT_FA87/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
A great feature of Windows is the Alt + Tab navigator window. It allows user to quickly
toggle between running applications. And Visual Studio has it’s equivalent of this
Windows feature. This allows you to see and to navigate &lt;strong&gt;Active Tool Windows&lt;/strong&gt; and &lt;strong&gt;Active
Files&lt;/strong&gt;. And you can see a thumbnail of the selected item.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h4&gt;Ctrl + Tab Navigator Window
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + Tab&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;
&lt;h4&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/h4&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The image above will take you to a full size image if you want
to see this in more detail.
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=da1c1ba6-5bf3-4c7e-994c-587843822867" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,da1c1ba6-5bf3-4c7e-994c-587843822867.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=942f79e2-5bb6-4e9a-a709-9e70f49d885d</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,942f79e2-5bb6-4e9a-a709-9e70f49d885d.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,942f79e2-5bb6-4e9a-a709-9e70f49d885d.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=942f79e2-5bb6-4e9a-a709-9e70f49d885d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay13Incre_12D54/image_2.png">
            <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay13Incre_12D54/image_thumb.png" width="244" align="right" border="0" />
          </a>
        </p>
        <p>
There is search, and then there is search. So in the beginning we had <strong>Quick
Find: Ctrl + F</strong>. Quick Find worked fine, but wasn’t perfect. For one thing,
Quick Find bring up a dialog that always <a href="http://www.urbandictionary.com/define.php?term=automagically" target="_blank">automagically</a> end
up covering the most critical sections of your code, always. It has a LOT of options:
where to look, match case, match whole word, search up, search hidden text, use regular
expressions, and more. In other words, it is a bit unwieldy to use in simple day-to-day
searches. I’m sure there are situations where people really need to have two-handed
swords, but most of us are happy to make dinner with a simple kitchen knife. 
</p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
That’s where the keyboard shortcut for incremental search comes in. It is <strong>great</strong>.
No massive dialogs to get in the way. If you have already used Firefox’s incremental
search feature then you are familiar with how easy and powerful this method is. If
not, fire up Visual Studio now and give it a try. You have a real treat in store for
you.
</p>
        <blockquote>
          <h4>Incremental Search
</h4>
          <h4>
            <strong>Ctrl + I</strong>
          </h4>
          <h4>
            <h4>
              <strong>
              </strong>
            </h4>
            <strong>Note:</strong> The image above will take you to a full size image if you want
to see this in more detail.
</h4>
        </blockquote>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=942f79e2-5bb6-4e9a-a709-9e70f49d885d" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 13: Incremental Search</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,942f79e2-5bb6-4e9a-a709-9e70f49d885d.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/13/31DaysOfVisualStudioTipsAmpTricksNdashDay13IncrementalSearch.aspx</link>
      <pubDate>Sun, 13 Jul 2008 23:39:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay13Incre_12D54/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay13Incre_12D54/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
There is search, and then there is search. So in the beginning we had &lt;strong&gt;Quick
Find: Ctrl + F&lt;/strong&gt;. Quick Find worked fine, but wasn’t perfect. For one thing,
Quick Find bring up a dialog that always &lt;a href="http://www.urbandictionary.com/define.php?term=automagically" target="_blank"&gt;automagically&lt;/a&gt; end
up covering the most critical sections of your code, always. It has a LOT of options:
where to look, match case, match whole word, search up, search hidden text, use regular
expressions, and more. In other words, it is a bit unwieldy to use in simple day-to-day
searches. I’m sure there are situations where people really need to have two-handed
swords, but most of us are happy to make dinner with a simple kitchen knife. 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
That’s where the keyboard shortcut for incremental search comes in. It is &lt;strong&gt;great&lt;/strong&gt;.
No massive dialogs to get in the way. If you have already used Firefox’s incremental
search feature then you are familiar with how easy and powerful this method is. If
not, fire up Visual Studio now and give it a try. You have a real treat in store for
you.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h4&gt;Incremental Search
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + I&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;
&lt;h4&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/h4&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The image above will take you to a full size image if you want
to see this in more detail.
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=942f79e2-5bb6-4e9a-a709-9e70f49d885d" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,942f79e2-5bb6-4e9a-a709-9e70f49d885d.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=29bbf609-dc5b-449b-b794-2145e9f9a484</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,29bbf609-dc5b-449b-b794-2145e9f9a484.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,29bbf609-dc5b-449b-b794-2145e9f9a484.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=29bbf609-dc5b-449b-b794-2145e9f9a484</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
        </p>
        <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay12Toggl_12BEC/image_2.png">
          <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay12Toggl_12BEC/image_thumb.png" width="244" align="right" border="0" />
        </a>It
is kind of funny how a feature that is easily argued as unnecessary and  superfluous
can be a feature you find yourself using over and over. That’s exactly the kind of
feature the <strong>Make Lowercase</strong> and <strong>Make Uppercase</strong> keyboard
shortcuts are for Visual Studio. It might not be a feature you even use every day,
but when you do finally end up needing this one it is such an incredibly useful feature. 
<p></p><p></p><p></p><p></p><p></p><p></p><p></p><p>
Don’t believe me? How long would the following have taken to do by hand?
</p><p></p><p></p><blockquote><p>
it is kind of funny how a feature that is easily argued as unnecessary and  superfluous
can be a feature you find yourself using over and over. that’s exactly the kind of
feature the make lowercase and make uppercase keyboard shortcuts are for visual studio.
it might not be a feature you even use every day, but when you do finally end up needing
this one it is such an incredibly useful feature.
</p><p>
IT IS KIND OF FUNNY HOW A FEATURE THAT IS EASILY ARGUED AS UNNECESSARY AND  SUPERFLUOUS
CAN BE A FEATURE YOU FIND YOURSELF USING OVER AND OVER. THAT’S EXACTLY THE KIND OF
FEATURE THE MAKE LOWERCASE AND MAKE UPPERCASE KEYBOARD SHORTCUTS ARE FOR VISUAL STUDIO.
IT MIGHT NOT BE A FEATURE YOU EVEN USE EVERY DAY, BUT WHEN YOU DO FINALLY END UP NEEDING
THIS ONE IT IS SUCH AN INCREDIBLY USEFUL FEATURE.
</p></blockquote><p>
That’s the power of a good shortcut. Quick, simple, and powerful!
</p><p></p><blockquote><h4>Make Lowercase
</h4><h4><strong>Ctrl + U</strong></h4><h4>Make Uppercase
</h4><h4><strong>Ctrl + Shift + U</strong></h4></blockquote><p><strong>Note:</strong> The image above will take you to a full size image if you want
to see this in more detail.
</p><p><strong>Feedback:</strong></p><p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p><p><strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p><img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=29bbf609-dc5b-449b-b794-2145e9f9a484" /></body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 12: Make Lowercase / Uppercase</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,29bbf609-dc5b-449b-b794-2145e9f9a484.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/12/31DaysOfVisualStudioTipsAmpTricksNdashDay12MakeLowercaseUppercase.aspx</link>
      <pubDate>Sat, 12 Jul 2008 21:19:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay12Toggl_12BEC/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay12Toggl_12BEC/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt;It
is kind of funny how a feature that is easily argued as unnecessary and&amp;#160; superfluous
can be a feature you find yourself using over and over. That’s exactly the kind of
feature the &lt;strong&gt;Make Lowercase&lt;/strong&gt; and &lt;strong&gt;Make Uppercase&lt;/strong&gt; keyboard
shortcuts are for Visual Studio. It might not be a feature you even use every day,
but when you do finally end up needing this one it is such an incredibly useful feature. 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Don’t believe me? How long would the following have taken to do by hand?
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
it is kind of funny how a feature that is easily argued as unnecessary and&amp;#160; superfluous
can be a feature you find yourself using over and over. that’s exactly the kind of
feature the make lowercase and make uppercase keyboard shortcuts are for visual studio.
it might not be a feature you even use every day, but when you do finally end up needing
this one it is such an incredibly useful feature.
&lt;/p&gt;
&lt;p&gt;
IT IS KIND OF FUNNY HOW A FEATURE THAT IS EASILY ARGUED AS UNNECESSARY AND&amp;#160; SUPERFLUOUS
CAN BE A FEATURE YOU FIND YOURSELF USING OVER AND OVER. THAT’S EXACTLY THE KIND OF
FEATURE THE MAKE LOWERCASE AND MAKE UPPERCASE KEYBOARD SHORTCUTS ARE FOR VISUAL STUDIO.
IT MIGHT NOT BE A FEATURE YOU EVEN USE EVERY DAY, BUT WHEN YOU DO FINALLY END UP NEEDING
THIS ONE IT IS SUCH AN INCREDIBLY USEFUL FEATURE.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
That’s the power of a good shortcut. Quick, simple, and powerful!
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h4&gt;Make Lowercase
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + U&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;Make Uppercase
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + Shift + U&lt;/strong&gt;
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The image above will take you to a full size image if you want
to see this in more detail.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=29bbf609-dc5b-449b-b794-2145e9f9a484" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,29bbf609-dc5b-449b-b794-2145e9f9a484.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=fda09e07-d7d2-41b6-b180-417dfb644a09</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,fda09e07-d7d2-41b6-b180-417dfb644a09.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,fda09e07-d7d2-41b6-b180-417dfb644a09.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=fda09e07-d7d2-41b6-b180-417dfb644a09</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <strong>
            <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay10Comme_F5AD/image_2.png">
              <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay10Comme_F5AD/image_thumb.png" width="244" align="right" border="0" />
            </a>
          </strong>
        </p>
        <p>
Here’s another <strong>powerful</strong> tip. Almost every application has a UI, and
these days most applications have a rich UI. Its a lot easier to work with an advanced
UI in an UI design editor. But it’s a lot easier to do something in a code editor. <strong>So
what’s a developer to do?</strong></p>
        <p>
You can always tell a keyboard shortcut is powerful and important when it is given
a single key.
</p>
        <blockquote>
          <h4>Toggle Code / Design Views
</h4>
          <h4>
            <strong>F7</strong>
          </h4>
        </blockquote>
        <p>
          <strong>Note:</strong> The image above will take you to a full size image if you want
to see this in more detail.
</p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=fda09e07-d7d2-41b6-b180-417dfb644a09" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 11: Toggle Code / Design Views</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,fda09e07-d7d2-41b6-b180-417dfb644a09.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/11/31DaysOfVisualStudioTipsAmpTricksNdashDay11ToggleCodeDesignViews.aspx</link>
      <pubDate>Fri, 11 Jul 2008 21:28:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay10Comme_F5AD/image_2.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay10Comme_F5AD/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Here’s another &lt;strong&gt;powerful&lt;/strong&gt; tip. Almost every application has a UI, and
these days most applications have a rich UI. Its a lot easier to work with an advanced
UI in an UI design editor. But it’s a lot easier to do something in a code editor. &lt;strong&gt;So
what’s a developer to do?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
You can always tell a keyboard shortcut is powerful and important when it is given
a single key.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h4&gt;Toggle Code / Design Views
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;F7&lt;/strong&gt;
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The image above will take you to a full size image if you want
to see this in more detail.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=fda09e07-d7d2-41b6-b180-417dfb644a09" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,fda09e07-d7d2-41b6-b180-417dfb644a09.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=3e488339-1a3d-4373-93c1-e8be23d0ca2a</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,3e488339-1a3d-4373-93c1-e8be23d0ca2a.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,3e488339-1a3d-4373-93c1-e8be23d0ca2a.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=3e488339-1a3d-4373-93c1-e8be23d0ca2a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
        </p>
        <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay10Comme_1321F/image_2.png">
          <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay10Comme_1321F/image_thumb.png" width="244" align="right" border="0" />
        </a>
        <p>
This one is huge. You really need to learn this one, if you don’t already know and
use it. Anytime you are working with code you, you will need to comment parts of and
uncomment parts of it. It is just a part of a developer’s life. <strong>The mechanic
will get his hands dirty, the carpenter will get splinters, and the developer will
comment and uncomment code.</strong></p>
        <p>
I guess the worst way you could comment and uncomment your code is to type it all
by hand. Next worse would be to use the mouse and go to <strong>Edit</strong> menu, <strong>Advance</strong> menu
item, then click <strong>Comment Selection</strong> or <strong>Uncomment Selection</strong>.
Another option that is to use the <strong>Text Editor Toolbar</strong> (see below).
</p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay10Comme_1321F/image_4.png">
            <img title="image" style="margin: 5px" height="25" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay10Comme_1321F/image_thumb_1.png" width="406" align="left" border="0" />
          </a>
        </p>
        <p>
 
</p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
 
</p>
        <p>
A little better I guess is to use the keyboard accelerator shortcut: <strong>Alt</strong>,
then <strong>E</strong>, then <strong>V</strong>, then <strong>M</strong> for (<strong>Co<u>m</u>ment
Selection</strong>), or E for (<strong>Uncomm<u>e</u>nt Selection</strong>).
</p>
        <p>
That’s four okay ways of comment and uncommenting your code, but what is the best
way?
</p>
        <blockquote>
          <h4>Comment Selection
</h4>
          <h4>
            <strong>Ctrl + K, Ctrl + C</strong>
          </h4>
          <h4>Uncomment Selection
</h4>
          <h4>
            <strong>Ctrl + K, Ctrl + U</strong>
          </h4>
        </blockquote>
        <p>
          <strong>Note:</strong> The image above will take you to a full size image if you want
to see this in more detail.
</p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=3e488339-1a3d-4373-93c1-e8be23d0ca2a" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 10: Comment / Uncomment Selection</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,3e488339-1a3d-4373-93c1-e8be23d0ca2a.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/11/31DaysOfVisualStudioTipsAmpTricksNdashDay10CommentUncommentSelection.aspx</link>
      <pubDate>Fri, 11 Jul 2008 06:52:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay10Comme_1321F/image_2.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay10Comme_1321F/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; 
&lt;p&gt;
This one is huge. You really need to learn this one, if you don’t already know and
use it. Anytime you are working with code you, you will need to comment parts of and
uncomment parts of it. It is just a part of a developer’s life. &lt;strong&gt;The mechanic
will get his hands dirty, the carpenter will get splinters, and the developer will
comment and uncomment code.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I guess the worst way you could comment and uncomment your code is to type it all
by hand. Next worse would be to use the mouse and go to &lt;strong&gt;Edit&lt;/strong&gt; menu, &lt;strong&gt;Advance&lt;/strong&gt; menu
item, then click &lt;strong&gt;Comment Selection&lt;/strong&gt; or &lt;strong&gt;Uncomment Selection&lt;/strong&gt;.
Another option that is to use the &lt;strong&gt;Text Editor Toolbar&lt;/strong&gt; (see below).
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay10Comme_1321F/image_4.png"&gt;&lt;img title="image" style="margin: 5px" height="25" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay10Comme_1321F/image_thumb_1.png" width="406" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
A little better I guess is to use the keyboard accelerator shortcut: &lt;strong&gt;Alt&lt;/strong&gt;,
then &lt;strong&gt;E&lt;/strong&gt;, then &lt;strong&gt;V&lt;/strong&gt;, then &lt;strong&gt;M&lt;/strong&gt; for (&lt;strong&gt;Co&lt;u&gt;m&lt;/u&gt;ment
Selection&lt;/strong&gt;), or E for (&lt;strong&gt;Uncomm&lt;u&gt;e&lt;/u&gt;nt Selection&lt;/strong&gt;).
&lt;/p&gt;
&lt;p&gt;
That’s four okay ways of comment and uncommenting your code, but what is the best
way?
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h4&gt;Comment Selection
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + K, Ctrl + C&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;Uncomment Selection
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + K, Ctrl + U&lt;/strong&gt;
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The image above will take you to a full size image if you want
to see this in more detail.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=3e488339-1a3d-4373-93c1-e8be23d0ca2a" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,3e488339-1a3d-4373-93c1-e8be23d0ca2a.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=bafcbf35-400b-4e69-a3af-9ec9a213995e</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,bafcbf35-400b-4e69-a3af-9ec9a213995e.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,bafcbf35-400b-4e69-a3af-9ec9a213995e.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=bafcbf35-400b-4e69-a3af-9ec9a213995e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay9ViewPr_11883/image_2.png">
          <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay9ViewPr_11883/image_thumb.png" width="244" align="right" border="0" />
        </a>
        <p>
        </p>
        <p>
This Visual Studio window is so import it has two keyboard shortcuts. Can you guess
what window it is? That’s right: it’s the Visual Studio Properties window.
</p>
        <p>
So how many different ways can you come up with to open this window?
</p>
        <blockquote>
          <p>
            <strong>View Properties Window</strong>
          </p>
        </blockquote>
        <ul>
          <ul>
            <li>
Use the mouse and show / hide the window</li>
            <li>
Use the keyboard accelerators: <strong>Alt, then V, then W</strong></li>
            <li>
Use the Design View keyboard shortcut: <strong>Alt + Enter</strong></li>
            <li>
Use the keyboard shortcut: <strong>F4</strong></li>
          </ul>
        </ul>
        <p>
          <strong>Note:</strong> The image above will take you to a full size image if you want
to see this in more detail.
</p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=bafcbf35-400b-4e69-a3af-9ec9a213995e" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 9: View Properties Windows</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,bafcbf35-400b-4e69-a3af-9ec9a213995e.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/10/31DaysOfVisualStudioTipsAmpTricksNdashDay9ViewPropertiesWindows.aspx</link>
      <pubDate>Thu, 10 Jul 2008 00:20:00 GMT</pubDate>
      <description>&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay9ViewPr_11883/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay9ViewPr_11883/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
This Visual Studio window is so import it has two keyboard shortcuts. Can you guess
what window it is? That’s right: it’s the Visual Studio Properties window.
&lt;/p&gt;
&lt;p&gt;
So how many different ways can you come up with to open this window?
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;View Properties Window&lt;/strong&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;
Use the mouse and show / hide the window&lt;/li&gt;
&lt;li&gt;
Use the keyboard accelerators: &lt;strong&gt;Alt, then V, then W&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
Use the Design View keyboard shortcut: &lt;strong&gt;Alt + Enter&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
Use the keyboard shortcut: &lt;strong&gt;F4&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The image above will take you to a full size image if you want
to see this in more detail.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=bafcbf35-400b-4e69-a3af-9ec9a213995e" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,bafcbf35-400b-4e69-a3af-9ec9a213995e.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=e3fff409-2db7-4e70-84ae-d6f6c2522fb5</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,e3fff409-2db7-4e70-84ae-d6f6c2522fb5.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,e3fff409-2db7-4e70-84ae-d6f6c2522fb5.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e3fff409-2db7-4e70-84ae-d6f6c2522fb5</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
        </p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay8Vertic_12F53/image_2.png">
            <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="182" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay8Vertic_12F53/image_thumb.png" width="389" align="right" border="0" />
          </a>Microsoft
Word has two “<strong>interesting</strong>” features. One feature is you can generate
random text, for example, <strong>=rand(3)</strong> will generate three random paragraphs
of text. The other feature is that Word allows you to make what I like to call “Vertical
Block Selections”. See the following picture for an example of both.
</p>
        <p>
Pretty cool, huh? And did you know you can make vertical block selections in Visual
Studio? Here’s how:
</p>
        <blockquote>
          <h4>Vertical Block Selection
</h4>
        </blockquote>
        <blockquote>
          <h4>
            <strong>Alt + Mouse</strong>
          </h4>
        </blockquote>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay8Vertic_12F53/image_6.png">
            <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay8Vertic_12F53/image_thumb_2.png" width="244" align="left" border="0" />
          </a>
        </p>
        <p>
          <strong>
          </strong>
        </p>
        <p>
          <strong>
          </strong>
        </p>
        <p>
          <strong>
          </strong>
        </p>
        <p>
          <strong>
          </strong>
        </p>
        <p>
          <strong>
          </strong>
        </p>
        <p>
          <strong>
          </strong>
        </p>
        <p>
          <strong>
          </strong>
        </p>
        <p>
          <strong>
          </strong>
        </p>
        <p>
          <strong>Note:</strong> The images above and to the right will take you to a full size
image if you want to see this in more detail.
</p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=e3fff409-2db7-4e70-84ae-d6f6c2522fb5" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 8: Vertical Block Selection</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,e3fff409-2db7-4e70-84ae-d6f6c2522fb5.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/09/31DaysOfVisualStudioTipsAmpTricksNdashDay8VerticalBlockSelection.aspx</link>
      <pubDate>Wed, 09 Jul 2008 05:34:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay8Vertic_12F53/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="182" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay8Vertic_12F53/image_thumb.png" width="389" align="right" border="0" /&gt;&lt;/a&gt;Microsoft
Word has two “&lt;strong&gt;interesting&lt;/strong&gt;” features. One feature is you can generate
random text, for example, &lt;strong&gt;=rand(3)&lt;/strong&gt; will generate three random paragraphs
of text. The other feature is that Word allows you to make what I like to call “Vertical
Block Selections”. See the following picture for an example of both.
&lt;/p&gt;
&lt;p&gt;
Pretty cool, huh? And did you know you can make vertical block selections in Visual
Studio? Here’s how:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h4&gt;Vertical Block Selection
&lt;/h4&gt;
&lt;/blockquote&gt; &lt;blockquote&gt; 
&lt;h4&gt;&lt;strong&gt;Alt + Mouse&lt;/strong&gt;
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay8Vertic_12F53/image_6.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay8Vertic_12F53/image_thumb_2.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The images above and to the right will take you to a full size
image if you want to see this in more detail.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=e3fff409-2db7-4e70-84ae-d6f6c2522fb5" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,e3fff409-2db7-4e70-84ae-d6f6c2522fb5.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=d8c4b6f2-05f8-4d5e-8703-064d47c6de98</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,d8c4b6f2-05f8-4d5e-8703-064d47c6de98.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,d8c4b6f2-05f8-4d5e-8703-064d47c6de98.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=d8c4b6f2-05f8-4d5e-8703-064d47c6de98</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
        </p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay6GotoLi_105A9/image_4.png">
            <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay6GotoLi_105A9/image_thumb_1.png" width="244" align="right" border="0" />
          </a> So
a couple days ago we covered how to display line numbers: 
</p>
        <blockquote>
          <p>
“<a href="http://www.cjcraft.com/blog/2008/07/04/31DaysOfVisualStudioTipsAmpTricksNdashDay4DisplayLineNumbers.aspx">31
Days of Visual Studio Tips &amp; Tricks – Day 4: Display Line Numbers</a>”.
</p>
        </blockquote>
        <p>
So now how can we take this one step further. How about an easy way to go to a specific
line of code? Think about how often as a developer you need to find a line in a large
file of code. Sometimes you find out there is an error on a certain line of code and
instead of scrolling down to this line manually you could use a special keyboard shortcut.
</p>
        <blockquote>
          <strong>
          </strong>
          <h4>
            <strong>Go to Line</strong>
          </h4>
          <h4>
            <strong>Ctrl + G</strong>
          </h4>
        </blockquote>
        <p>
Definitely one of my favorite keyboard shortcuts for Visual Studio.
</p>
        <p>
          <strong>Note:</strong> The image to the right will take you to a full size image if
you want to see this in more detail.
</p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=d8c4b6f2-05f8-4d5e-8703-064d47c6de98" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 7: Go to Line</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,d8c4b6f2-05f8-4d5e-8703-064d47c6de98.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/07/31DaysOfVisualStudioTipsAmpTricksNdashDay7GoToLine.aspx</link>
      <pubDate>Mon, 07 Jul 2008 21:59:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay6GotoLi_105A9/image_4.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay6GotoLi_105A9/image_thumb_1.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; So
a couple days ago we covered how to display line numbers: 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
“&lt;a href="http://www.cjcraft.com/blog/2008/07/04/31DaysOfVisualStudioTipsAmpTricksNdashDay4DisplayLineNumbers.aspx"&gt;31
Days of Visual Studio Tips &amp;amp; Tricks – Day 4: Display Line Numbers&lt;/a&gt;”.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
So now how can we take this one step further. How about an easy way to go to a specific
line of code? Think about how often as a developer you need to find a line in a large
file of code. Sometimes you find out there is an error on a certain line of code and
instead of scrolling down to this line manually you could use a special keyboard shortcut.
&lt;/p&gt;
&lt;blockquote&gt;&lt;strong&gt;&lt;/strong&gt; 
&lt;h4&gt;&lt;strong&gt;Go to Line&lt;/strong&gt;
&lt;/h4&gt;
&lt;h4&gt;&lt;strong&gt;Ctrl + G&lt;/strong&gt;
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Definitely one of my favorite keyboard shortcuts for Visual Studio.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The image to the right will take you to a full size image if
you want to see this in more detail.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=d8c4b6f2-05f8-4d5e-8703-064d47c6de98" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,d8c4b6f2-05f8-4d5e-8703-064d47c6de98.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=a00c2b32-027f-4632-ad2a-b10f97a1ea57</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,a00c2b32-027f-4632-ad2a-b10f97a1ea57.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,a00c2b32-027f-4632-ad2a-b10f97a1ea57.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=a00c2b32-027f-4632-ad2a-b10f97a1ea57</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay6CycleC_9397/image_2.png">
            <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay6CycleC_9397/image_thumb.png" width="244" align="right" border="0" />
          </a> Many
times developers will find themselves working with an object, and wanting to know
more information about how it is defined and designed.
</p>
        <p>
For example, you are working with a Customer object and you want to look at the Customer.cs
file and find out what the Customer object has to offer. What methods, properties,
and events does it have for you to work with?
</p>
        <p>
There are several ways for learn more about our Customer class. One you could use
the <strong>Solution Explorer</strong> and manually locate the wanted Customer.cs
file. This is a slow process and requires you to already know name and location of
the class you want to review. Sometimes it may not be as simple as added a .cs extension
the object.
</p>
        <p>
Another approach would be to right click on Customer object and choose <strong>Go
to Definition</strong>. This will take you there automatically, so it is much quicker.
But there is an even faster way, and this is the way you wan to use:
</p>
        <blockquote>
          <h5>Go to Definition
</h5>
          <h5>
            <strong>F12</strong>
          </h5>
        </blockquote>
        <p>
This keyboard shortcut is so important that it is assigned to a function key. This
requires only one key press.
</p>
        <p>
          <strong>Note:</strong> The image to the right will take you to a full size image if
you want to see this in more detail.
</p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=a00c2b32-027f-4632-ad2a-b10f97a1ea57" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 6: Go to Definition</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,a00c2b32-027f-4632-ad2a-b10f97a1ea57.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/06/31DaysOfVisualStudioTipsAmpTricksNdashDay6GoToDefinition.aspx</link>
      <pubDate>Sun, 06 Jul 2008 18:51:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay6CycleC_9397/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay6CycleC_9397/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; Many
times developers will find themselves working with an object, and wanting to know
more information about how it is defined and designed.
&lt;/p&gt;
&lt;p&gt;
For example, you are working with a Customer object and you want to look at the Customer.cs
file and find out what the Customer object has to offer. What methods, properties,
and events does it have for you to work with?
&lt;/p&gt;
&lt;p&gt;
There are several ways for learn more about our Customer class. One you could use
the &lt;strong&gt;Solution Explorer&lt;/strong&gt; and manually locate the wanted Customer.cs
file. This is a slow process and requires you to already know name and location of
the class you want to review. Sometimes it may not be as simple as added a .cs extension
the object.
&lt;/p&gt;
&lt;p&gt;
Another approach would be to right click on Customer object and choose &lt;strong&gt;Go
to Definition&lt;/strong&gt;. This will take you there automatically, so it is much quicker.
But there is an even faster way, and this is the way you wan to use:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h5&gt;Go to Definition
&lt;/h5&gt;
&lt;h5&gt;&lt;strong&gt;F12&lt;/strong&gt;
&lt;/h5&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
This keyboard shortcut is so important that it is assigned to a function key. This
requires only one key press.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The image to the right will take you to a full size image if
you want to see this in more detail.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments.
I’ll compile a list and post it for everyone once there are enough.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=a00c2b32-027f-4632-ad2a-b10f97a1ea57" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,a00c2b32-027f-4632-ad2a-b10f97a1ea57.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=b3bc3d6a-12a5-4f93-a446-d36849faa327</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,b3bc3d6a-12a5-4f93-a446-d36849faa327.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,b3bc3d6a-12a5-4f93-a446-d36849faa327.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=b3bc3d6a-12a5-4f93-a446-d36849faa327</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
It is Independence Day today in the US, and we’re in Washington, D.C. <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay4Displa_643C/image_2.png"><img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay4Displa_643C/image_thumb.png" width="244" align="right" border="0" /></a>to
see us some awesome fireworks!
</p>
        <p>
Since today is July, 4th, and we are on Day 4 I figured it would be good to do a VSTT
that dealt with numbers. The best one I know is how to display line numbers in Visual
Studio:
</p>
        <blockquote>
          <p>
            <strong>Display Line Numbers:</strong>
          </p>
          <p>
Go to the <strong>Tools</strong> menu, then click on the <strong>Options…</strong> menu
item. Find the <strong>Text Editor</strong> item in the list on the left. Then I recommend
choosing <strong>All Languages</strong>. Next find and check the <strong>Line Numbers</strong> checkbox
in the <strong>Display</strong> section on the right.
</p>
        </blockquote>
        <p>
The image to the right will take you to a full size image if you want to see this
in more detail.
</p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
Alright, we’ve more <a href="http://www.cjcraft.com/blog/CommentView,guid,262788ce-f26d-4e15-85bc-4c0a25c492f4.aspx#commentstart" target="_blank">reader
submitted tips</a>.  Thanks guys. Yeah, we are now tied. score: <strong>Me</strong> 4
/ <strong>Readers</strong> 4.
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=b3bc3d6a-12a5-4f93-a446-d36849faa327" />
      </body>
      <title>31 Days of Visual Studio Tips &amp;amp; Tricks &amp;ndash; Day 4: Display Line Numbers</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,b3bc3d6a-12a5-4f93-a446-d36849faa327.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/04/31DaysOfVisualStudioTipsAmpTricksNdashDay4DisplayLineNumbers.aspx</link>
      <pubDate>Fri, 04 Jul 2008 15:18:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
It is Independence Day today in the US, and we’re in Washington, D.C. &lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay4Displa_643C/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudioTipsTricksDay4Displa_643C/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt;to
see us some awesome fireworks!
&lt;/p&gt;
&lt;p&gt;
Since today is July, 4th, and we are on Day 4 I figured it would be good to do a VSTT
that dealt with numbers. The best one I know is how to display line numbers in Visual
Studio:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Display Line Numbers:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Go to the &lt;strong&gt;Tools&lt;/strong&gt; menu, then click on the &lt;strong&gt;Options…&lt;/strong&gt; menu
item. Find the &lt;strong&gt;Text Editor&lt;/strong&gt; item in the list on the left. Then I recommend
choosing &lt;strong&gt;All Languages&lt;/strong&gt;. Next find and check the &lt;strong&gt;Line Numbers&lt;/strong&gt; checkbox
in the &lt;strong&gt;Display&lt;/strong&gt; section on the right.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
The image to the right will take you to a full size image if you want to see this
in more detail.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Alright, we’ve more &lt;a href="http://www.cjcraft.com/blog/CommentView,guid,262788ce-f26d-4e15-85bc-4c0a25c492f4.aspx#commentstart" target="_blank"&gt;reader
submitted tips&lt;/a&gt;.&amp;#160; Thanks guys. Yeah, we are now tied. score: &lt;strong&gt;Me&lt;/strong&gt; 4
/ &lt;strong&gt;Readers&lt;/strong&gt; 4.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4&amp;amp;url=http%3a%2f%2fcid-0779b8ef58de4561.skydrive.live.com%2fself.aspx%2fPublic%2f31%2520Days%2520of%2520Visual%2520Studio%25202008%2520Tips%2520%7c0%2520Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=b3bc3d6a-12a5-4f93-a446-d36849faa327" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,b3bc3d6a-12a5-4f93-a446-d36849faa327.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>miscellaneous</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=262788ce-f26d-4e15-85bc-4c0a25c492f4</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,262788ce-f26d-4e15-85bc-4c0a25c492f4.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,262788ce-f26d-4e15-85bc-4c0a25c492f4.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=262788ce-f26d-4e15-85bc-4c0a25c492f4</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudio2008TipsTricksDay1Sh_F9B9/image_4.png">
            <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudio2008TipsTricksDay1Sh_F9B9/image_thumb_1.png" width="244" align="right" border="0" />
          </a>It
happens all the time. You’re working in Visual Studio, and you need to work with an
object that is in a namespace you haven’t declared yet. For example, you need to create
a <strong>WebRequest</strong> in the <strong>System.Net</strong> namespace. 
</p>
        <p>
You have a few choices, some easy and some hard: You could add a using or import statement
at the top of the class file as in “<strong>using System.NET</strong>”. You could
fully qualify the object as in “<strong>System.Net.WebRequest</strong>”. You could
try to click that tiny, tiny little red rectangle that will open the Smart Tag. You
could type “<strong>CTRL + SHIFT + F10</strong>”. Or you could take the easy road
and simply enter “<strong>Ctrl + .</strong>”.
</p>
        <p>
          <strong>“Ctrl + .” Rocks! Try it, you’ll love it!</strong>
        </p>
        <p>
 
</p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
What is your favorite Visual Studio 2008 tip or trick? Tell us all about it in the
comments section. I’m keeping score: <strong>Me</strong> 2 / <strong>Readers</strong> 0.
</p>
        <p>
 
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/31%20Days%20of%20Visual%20Studio%202008%20Tips%20|0%20Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4" />
      </body>
      <title>31 Days of Visual Studio 2008 Tips &amp;amp; Tricks - Day 2: Open Smart Tag</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,262788ce-f26d-4e15-85bc-4c0a25c492f4.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/03/31DaysOfVisualStudio2008TipsAmpTricksDay2OpenSmartTag.aspx</link>
      <pubDate>Thu, 03 Jul 2008 06:59:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudio2008TipsTricksDay1Sh_F9B9/image_4.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudio2008TipsTricksDay1Sh_F9B9/image_thumb_1.png" width="244" align="right" border="0" /&gt;&lt;/a&gt;It
happens all the time. You’re working in Visual Studio, and you need to work with an
object that is in a namespace you haven’t declared yet. For example, you need to create
a &lt;strong&gt;WebRequest&lt;/strong&gt; in the &lt;strong&gt;System.Net&lt;/strong&gt; namespace. 
&lt;/p&gt;
&lt;p&gt;
You have a few choices, some easy and some hard: You could add a using or import statement
at the top of the class file as in “&lt;strong&gt;using System.NET&lt;/strong&gt;”. You could
fully qualify the object as in “&lt;strong&gt;System.Net.WebRequest&lt;/strong&gt;”. You could
try to click that tiny, tiny little red rectangle that will open the Smart Tag. You
could type “&lt;strong&gt;CTRL + SHIFT + F10&lt;/strong&gt;”. Or you could take the easy road
and simply enter “&lt;strong&gt;Ctrl + .&lt;/strong&gt;”.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;“Ctrl + .” Rocks! Try it, you’ll love it!&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
What is your favorite Visual Studio 2008 tip or trick? Tell us all about it in the
comments section. I’m keeping score: &lt;strong&gt;Me&lt;/strong&gt; 2 / &lt;strong&gt;Readers&lt;/strong&gt; 0.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/31%20Days%20of%20Visual%20Studio%202008%20Tips%20|0%20Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=262788ce-f26d-4e15-85bc-4c0a25c492f4" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,262788ce-f26d-4e15-85bc-4c0a25c492f4.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>programming</category>
      <category>windows</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=c1b10f7f-47d0-43cc-8691-c05cbbc55544</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,c1b10f7f-47d0-43cc-8691-c05cbbc55544.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,c1b10f7f-47d0-43cc-8691-c05cbbc55544.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=c1b10f7f-47d0-43cc-8691-c05cbbc55544</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudio2008TipsTricksDay1_11519/image_2.png">
            <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudio2008TipsTricksDay1_11519/image_thumb.png" width="244" align="right" border="0" />
          </a>
        </p>
        <p>
With most things there are two ways to learn them: the easy way, and the hard way.
Visual Studio 2008 is know exception. One option, the hard way, is to spend all of
your precious time learning and memorizing <strong>hundreds</strong> of Visual Studio
shortcut key combinations. 
</p>
        <p>
Quick, what is the shortcut to perform an incremental search, or to convert selected
text to lower case, or to comment a selection of code? Everyone one of these has a
handy shortcut key combination. Do you know them all? If not, did you know Visual
Studio has a feature you can enable so that it will show you, or maybe I should say <strong>teach
you</strong>, the shortcut keys for most commonly accessed menu and toolbar items?
</p>
        <p>
It is called “Show shortcut keys in Screen Tips”. You have to enable “Show Screen
Tips on toolbars” for this feature to work. Both items are located on the same screen
for easy access.
</p>
        <p>
          <strong>Here’s what you need to do:</strong>
        </p>
        <ul>
          <li>
In Visual Studio go to <strong>Tools</strong>, and then <strong>Customize…</strong>.</li>
          <li>
This will open the <strong>Customize</strong> dialog where you will now need to check
both the “Show shortcut keys in Screen Tips” and “Show Screen Tips on toolbars” checkboxes.</li>
        </ul>
        <p>
From now on when you use Visual Studio it will display shortcut key combinations on
menus and toolbar tooltips whenever you use them.
</p>
        <p>
If you’ll click on the included image, you will see a larger more detailed screenshot
of the areas discussed.
</p>
        <p>
 
</p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
Do you have a favorite Visual Studio 2008 tip or trick? Then tell us all about it
in the comments section. I’m keeping score: <strong>Me</strong> 1 / <strong>Readers</strong> 0.
Don’t let your teammates down. :D
</p>
        <p>
 
</p>
        <p>
          <strong>PowerPoint</strong>: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/31%20Days%20of%20Visual%20Studio%202008%20Tips%20|0%20Tricks.pptx">31
Days of Visual Studio 2008 Tips &amp; Tricks.pptx</a> (Note: PowerPoint is updated
daily to include new items.)
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=c1b10f7f-47d0-43cc-8691-c05cbbc55544" />
      </body>
      <title>31 Days of Visual Studio 2008 Tips &amp;amp; Tricks - Day 1: Show Shortcut Keys</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,c1b10f7f-47d0-43cc-8691-c05cbbc55544.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/02/31DaysOfVisualStudio2008TipsAmpTricksDay1ShowShortcutKeys.aspx</link>
      <pubDate>Wed, 02 Jul 2008 03:42:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudio2008TipsTricksDay1_11519/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudio2008TipsTricksDay1_11519/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
With most things there are two ways to learn them: the easy way, and the hard way.
Visual Studio 2008 is know exception. One option, the hard way, is to spend all of
your precious time learning and memorizing &lt;strong&gt;hundreds&lt;/strong&gt; of Visual Studio
shortcut key combinations. 
&lt;/p&gt;
&lt;p&gt;
Quick, what is the shortcut to perform an incremental search, or to convert selected
text to lower case, or to comment a selection of code? Everyone one of these has a
handy shortcut key combination. Do you know them all? If not, did you know Visual
Studio has a feature you can enable so that it will show you, or maybe I should say &lt;strong&gt;teach
you&lt;/strong&gt;, the shortcut keys for most commonly accessed menu and toolbar items?
&lt;/p&gt;
&lt;p&gt;
It is called “Show shortcut keys in Screen Tips”. You have to enable “Show Screen
Tips on toolbars” for this feature to work. Both items are located on the same screen
for easy access.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Here’s what you need to do:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
In Visual Studio go to &lt;strong&gt;Tools&lt;/strong&gt;, and then &lt;strong&gt;Customize…&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
This will open the &lt;strong&gt;Customize&lt;/strong&gt; dialog where you will now need to check
both the “Show shortcut keys in Screen Tips” and “Show Screen Tips on toolbars” checkboxes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
From now on when you use Visual Studio it will display shortcut key combinations on
menus and toolbar tooltips whenever you use them.
&lt;/p&gt;
&lt;p&gt;
If you’ll click on the included image, you will see a larger more detailed screenshot
of the areas discussed.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Do you have a favorite Visual Studio 2008 tip or trick? Then tell us all about it
in the comments section. I’m keeping score: &lt;strong&gt;Me&lt;/strong&gt; 1 / &lt;strong&gt;Readers&lt;/strong&gt; 0.
Don’t let your teammates down. :D
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt;: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/31%20Days%20of%20Visual%20Studio%202008%20Tips%20|0%20Tricks.pptx"&gt;31
Days of Visual Studio 2008 Tips &amp;amp; Tricks.pptx&lt;/a&gt; (Note: PowerPoint is updated
daily to include new items.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=c1b10f7f-47d0-43cc-8691-c05cbbc55544" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,c1b10f7f-47d0-43cc-8691-c05cbbc55544.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>PDANUG</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=086bef1d-c4cb-4856-9a1e-3cd957fdbefd</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,086bef1d-c4cb-4856-9a1e-3cd957fdbefd.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,086bef1d-c4cb-4856-9a1e-3cd957fdbefd.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=086bef1d-c4cb-4856-9a1e-3cd957fdbefd</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudio2008TipsTricksIntrod_103E3/image_4.png">
            <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="183" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudio2008TipsTricksIntrod_103E3/image_thumb_1.png" width="244" align="right" border="0" />
          </a>I’ve
committed myself to taking the knowledge I have learned, over the years, and sharing
it more with others. Last month I did <a href="http://www.cjcraft.com/blog/2008/06/01/30DaysOfNETWindowsMobileApplications.aspx">30
Days of .NET Windows Mobile Applications</a>, and this month I intend to do 31 Days
of Visual Studio 2008 Tips &amp; Tricks.
</p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
The material will come from a presentation I have given many times at different code
camps and user groups. One of the goals of the series is to start a “conversation”
with my readers. I want to share some of my best tips and tricks for Visual Studio,
and in return I hope you’ll share some of yours with us as well.
</p>
        <p>
Another goal I have is for the information to be <strong>quick</strong> and <strong>easy</strong> to
“digest” and as <strong>worthwhile</strong> as possible. Give me a few minutes every
day this month, and I bet I’ll make a difference in how productive you are every day.
</p>
        <p>
 
</p>
        <p>
Here’s the introduction from my <strong>Visual Studio 2008 Tips &amp; Tricks</strong> presentation
to set the stage:
</p>
        <blockquote>
          <p>
            <em>“Visual Studio .NET is filled with hundreds of features that make our lives as
developers more efficient. The number of features that Visual Studio .NET contains
is immense. The Visual Studio .NET Tips and Tricks presentation is a compilation of
my favorite, and most popular, tips and tricks for this great IDE. Developers who
are unaware of these timesaving features miss out on opportunities to increase their
programming productivity and effectiveness. This Visual Studio .NET Tips and Tricks
presentation is meant to explain how to use Visual Studio .NET more effectively.”</em>
          </p>
        </blockquote>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=086bef1d-c4cb-4856-9a1e-3cd957fdbefd" />
      </body>
      <title>31 Days of Visual Studio 2008 Tips &amp;amp; Tricks: Introduction</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,086bef1d-c4cb-4856-9a1e-3cd957fdbefd.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/07/02/31DaysOfVisualStudio2008TipsAmpTricksIntroduction.aspx</link>
      <pubDate>Wed, 02 Jul 2008 03:40:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudio2008TipsTricksIntrod_103E3/image_4.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="183" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/31DaysofVisualStudio2008TipsTricksIntrod_103E3/image_thumb_1.png" width="244" align="right" border="0" /&gt;&lt;/a&gt;I’ve
committed myself to taking the knowledge I have learned, over the years, and sharing
it more with others. Last month I did &lt;a href="http://www.cjcraft.com/blog/2008/06/01/30DaysOfNETWindowsMobileApplications.aspx"&gt;30
Days of .NET Windows Mobile Applications&lt;/a&gt;, and this month I intend to do 31 Days
of Visual Studio 2008 Tips &amp;amp; Tricks.
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
The material will come from a presentation I have given many times at different code
camps and user groups. One of the goals of the series is to start a “conversation”
with my readers. I want to share some of my best tips and tricks for Visual Studio,
and in return I hope you’ll share some of yours with us as well.
&lt;/p&gt;
&lt;p&gt;
Another goal I have is for the information to be &lt;strong&gt;quick&lt;/strong&gt; and &lt;strong&gt;easy&lt;/strong&gt; to
“digest” and as &lt;strong&gt;worthwhile&lt;/strong&gt; as possible. Give me a few minutes every
day this month, and I bet I’ll make a difference in how productive you are every day.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Here’s the introduction from my &lt;strong&gt;Visual Studio 2008 Tips &amp;amp; Tricks&lt;/strong&gt; presentation
to set the stage:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;“Visual Studio .NET is filled with hundreds of features that make our lives as
developers more efficient. The number of features that Visual Studio .NET contains
is immense. The Visual Studio .NET Tips and Tricks presentation is a compilation of
my favorite, and most popular, tips and tricks for this great IDE. Developers who
are unaware of these timesaving features miss out on opportunities to increase their
programming productivity and effectiveness. This Visual Studio .NET Tips and Tricks
presentation is meant to explain how to use Visual Studio .NET more effectively.”&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt;&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=086bef1d-c4cb-4856-9a1e-3cd957fdbefd" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,086bef1d-c4cb-4856-9a1e-3cd957fdbefd.aspx</comments>
      <category>.Net Programming</category>
      <category>31 Days VSTT</category>
      <category>cool</category>
      <category>PDANUG</category>
      <category>programming</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=75ebe38e-2734-4380-9dcf-8ddba3cb94dd</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,75ebe38e-2734-4380-9dcf-8ddba3cb94dd.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,75ebe38e-2734-4380-9dcf-8ddba3cb94dd.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=75ebe38e-2734-4380-9dcf-8ddba3cb94dd</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsTheRoadA_138C2/image_2.png">
            <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="248" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsTheRoadA_138C2/image_thumb.png" width="304" align="right" border="0" />
          </a>We
only have one more day left in our 30 days of .NET [Windows Mobile Applications].
Where do we go from here?
</p>
        <p>
I’m really happy with the 30 Days of .NET so I do think I will continue that in one
format or another for some time. It’s been a blast. And everyone knows my passion
for Windows Mobile programming so we keep finding way to work that in there as well.
</p>
        <p>
I haven’t quite decided what I’ll do for next month but I’m sure it’ll only get better
as we move forward.
</p>
        <p>
There have been a lot of request for applications that haven’t made it on deck yet,
and obviously they aren’t all going to get done tomorrow. But I think I’ll be able
to throw in some Bonus Day of .NET or Return of Day of .NET and knock some of them
out over time.
</p>
        <p>
My goal is to take all the existing content and clean it up some and make more through
and detailed learning materials to really help beginners take off with Windows Mobile.
</p>
        <p>
Hope you’ll join me on the road ahead…
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=75ebe38e-2734-4380-9dcf-8ddba3cb94dd" />
      </body>
      <title>30 Days of .NET [Windows Mobile Applications] &amp;ndash; The Road Ahead</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,75ebe38e-2734-4380-9dcf-8ddba3cb94dd.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/06/30/30DaysOfNETWindowsMobileApplicationsNdashTheRoadAhead.aspx</link>
      <pubDate>Mon, 30 Jun 2008 06:10:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsTheRoadA_138C2/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="248" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsTheRoadA_138C2/image_thumb.png" width="304" align="right" border="0" /&gt;&lt;/a&gt;We
only have one more day left in our 30 days of .NET [Windows Mobile Applications].
Where do we go from here?
&lt;/p&gt;
&lt;p&gt;
I’m really happy with the 30 Days of .NET so I do think I will continue that in one
format or another for some time. It’s been a blast. And everyone knows my passion
for Windows Mobile programming so we keep finding way to work that in there as well.
&lt;/p&gt;
&lt;p&gt;
I haven’t quite decided what I’ll do for next month but I’m sure it’ll only get better
as we move forward.
&lt;/p&gt;
&lt;p&gt;
There have been a lot of request for applications that haven’t made it on deck yet,
and obviously they aren’t all going to get done tomorrow. But I think I’ll be able
to throw in some Bonus Day of .NET or Return of Day of .NET and knock some of them
out over time.
&lt;/p&gt;
&lt;p&gt;
My goal is to take all the existing content and clean it up some and make more through
and detailed learning materials to really help beginners take off with Windows Mobile.
&lt;/p&gt;
&lt;p&gt;
Hope you’ll join me on the road ahead…
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=75ebe38e-2734-4380-9dcf-8ddba3cb94dd" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,75ebe38e-2734-4380-9dcf-8ddba3cb94dd.aspx</comments>
      <category>.Net Programming</category>
      <category>30 Day of .NET</category>
      <category>compact framework</category>
      <category>cool</category>
      <category>miscellaneous</category>
      <category>personal</category>
      <category>programming</category>
      <category>smartphone</category>
      <category>windows mobile</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=94a2ddcb-3417-4c31-afc7-d1705492ff1b</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,94a2ddcb-3417-4c31-afc7-d1705492ff1b.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,94a2ddcb-3417-4c31-afc7-d1705492ff1b.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=94a2ddcb-3417-4c31-afc7-d1705492ff1b</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
Wow, it’s hard to believe the month is almost over already. So far we have 29 applications
done in 29 days! Thank you for all your encouragement.
</p>
        <p>
If you missed the week one recap here it is: <a href="http://www.cjcraft.com/blog/2008/06/09/30DaysOfNETWindowsMobileApplicationsWeekOne.aspx">30
Days of .NET [Windows Mobile Applications] - Week One</a>.
</p>
        <p>
If you missed the week two recap here it is: <a href="http://www.cjcraft.com/blog/2008/06/16/30DaysOfNETWindowsMobileApplicationsWeekTwo.aspx">30
Days of .NET [Windows Mobile Applications] - Week Two</a>.
</p>
        <p>
If you missed the week three recap here it is: <a href="http://www.cjcraft.com/blog/2008/06/22/30DaysOfNETWindowsMobileApplicationsWeekThree.aspx">30
Days of .NET [Windows Mobile Applications] - Week Three</a>.
</p>
        <p>
What’s your favorite?
</p>
        <table cellspacing="0" cellpadding="2" width="689" border="0">
          <tbody>
            <tr>
              <td valign="top" width="170">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_10.png">
                  <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_thumb_4.png" width="155" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="175">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_2.png">
                  <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_thumb.png" width="155" align="left" border="0" />
                </a> </td>
              <td valign="top" width="171">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_4.png">
                  <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_thumb_1.png" width="155" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="171">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_8.png">
                  <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_thumb_3.png" width="155" align="left" border="0" />
                </a>
              </td>
            </tr>
            <tr>
              <td valign="top" width="170">
                <a href="http://www.cjcraft.com/blog/2008/06/22/30DaysOfNETWindowsMobileApplicationsDay22GPSClock.aspx">GPS
Clock</a>
                <a href="http://www.cjcraft.com/blog/2008/06/24/30DaysOfNETWindowsMobileApplicationsNdashDay23MobileInfo.aspx">
                </a>
              </td>
              <td valign="top" width="175">
                <a href="http://www.cjcraft.com/blog/2008/06/24/30DaysOfNETWindowsMobileApplicationsNdashDay23MobileInfo.aspx">MobileInfo</a>
                <a href="http://www.cjcraft.com/blog/2008/06/24/30DaysOfNETWindowsMobileApplicationsNdashDay24MobileFlashlight.aspx">
                </a>
              </td>
              <td valign="top" width="171">
                <a href="http://www.cjcraft.com/blog/2008/06/24/30DaysOfNETWindowsMobileApplicationsNdashDay24MobileFlashlight.aspx">Mobile
Flashlight</a>
              </td>
              <td valign="top" width="171">
                <a href="http://www.cjcraft.com/blog/2008/06/26/30DaysOfNETWindowsMobileApplicationsNdashDay25SmartDial.aspx">SmartDial</a>
              </td>
            </tr>
          </tbody>
        </table>
        <p>
Let see we have a time utility, and device information, call blocker, and lots more!
</p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <table cellspacing="0" cellpadding="2" width="550" border="0">
          <tbody>
            <tr>
              <td valign="top" width="137">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_12.png">
                  <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_thumb_5.png" width="155" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="137">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_14.png">
                  <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_thumb_6.png" width="155" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="137">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_16.png">
                  <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_thumb_7.png" width="155" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="137">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image31_1.png">
                  <img title="image_thumb15[4]" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image_thumb15[4]" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_thumb15%5B4%5D_cf1ecfce-3ddb-45d0-9210-42c4c9aa584c.png" width="156" align="left" border="0" />
                </a>
              </td>
            </tr>
            <tr>
              <td valign="top" width="137">
                <a href="http://www.cjcraft.com/blog/2008/06/27/30DaysOfNETWindowsMobileApplicationsNdashDay26GeoCash.aspx">GeoCash</a>
              </td>
              <td valign="top" width="137">
                <a href="http://www.cjcraft.com/blog/2008/06/28/30DaysOfNETWindowsMobileApplicationsNdashDay27Repeatr.aspx">Repeatr</a>
              </td>
              <td valign="top" width="137">
                <a href="http://www.cjcraft.com/blog/2008/06/28/30DaysOfNETWindowsMobileApplicationsNdashDay28CallBlocker.aspx">CallBlocker</a>
              </td>
              <td valign="top" width="137">
                <a href="http://www.cjcraft.com/blog/2008/06/30/30DaysOfNETWindowsMobileApplicationsNdashDay29CommunityMegaphoneReader.aspx">What
will be next?</a>
              </td>
            </tr>
          </tbody>
        </table>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
Got an idea? Got some feedback? Share it? Thanks!
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=94a2ddcb-3417-4c31-afc7-d1705492ff1b" />
      </body>
      <title>30 Days of .NET [Windows Mobile Applications] - Week Four</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,94a2ddcb-3417-4c31-afc7-d1705492ff1b.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/06/30/30DaysOfNETWindowsMobileApplicationsWeekFour.aspx</link>
      <pubDate>Mon, 30 Jun 2008 05:06:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Wow, it’s hard to believe the month is almost over already. So far we have 29 applications
done in 29 days! Thank you for all your encouragement.
&lt;/p&gt;
&lt;p&gt;
If you missed the week one recap here it is: &lt;a href="http://www.cjcraft.com/blog/2008/06/09/30DaysOfNETWindowsMobileApplicationsWeekOne.aspx"&gt;30
Days of .NET [Windows Mobile Applications] - Week One&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
If you missed the week two recap here it is: &lt;a href="http://www.cjcraft.com/blog/2008/06/16/30DaysOfNETWindowsMobileApplicationsWeekTwo.aspx"&gt;30
Days of .NET [Windows Mobile Applications] - Week Two&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
If you missed the week three recap here it is: &lt;a href="http://www.cjcraft.com/blog/2008/06/22/30DaysOfNETWindowsMobileApplicationsWeekThree.aspx"&gt;30
Days of .NET [Windows Mobile Applications] - Week Three&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
What’s your favorite?
&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="2" width="689" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top" width="170"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_10.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_thumb_4.png" width="155" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="175"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_thumb.png" width="155" align="left" border="0" /&gt;&lt;/a&gt;&amp;#160;&lt;/td&gt;
&lt;td valign="top" width="171"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_4.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_thumb_1.png" width="155" align="left" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td valign="top" width="171"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_8.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_thumb_3.png" width="155" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="170"&gt;
&lt;a href="http://www.cjcraft.com/blog/2008/06/22/30DaysOfNETWindowsMobileApplicationsDay22GPSClock.aspx"&gt;GPS
Clock&lt;/a&gt;&lt;a href="http://www.cjcraft.com/blog/2008/06/24/30DaysOfNETWindowsMobileApplicationsNdashDay23MobileInfo.aspx"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td valign="top" width="175"&gt;
&lt;a href="http://www.cjcraft.com/blog/2008/06/24/30DaysOfNETWindowsMobileApplicationsNdashDay23MobileInfo.aspx"&gt;MobileInfo&lt;/a&gt;&lt;a href="http://www.cjcraft.com/blog/2008/06/24/30DaysOfNETWindowsMobileApplicationsNdashDay24MobileFlashlight.aspx"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td valign="top" width="171"&gt;
&lt;a href="http://www.cjcraft.com/blog/2008/06/24/30DaysOfNETWindowsMobileApplicationsNdashDay24MobileFlashlight.aspx"&gt;Mobile
Flashlight&lt;/a&gt;&lt;/td&gt;
&lt;td valign="top" width="171"&gt;
&lt;a href="http://www.cjcraft.com/blog/2008/06/26/30DaysOfNETWindowsMobileApplicationsNdashDay25SmartDial.aspx"&gt;SmartDial&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
Let see we have a time utility, and device information, call blocker, and lots more!
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="2" width="550" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top" width="137"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_12.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_thumb_5.png" width="155" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="137"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_14.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_thumb_6.png" width="155" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="137"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_16.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_thumb_7.png" width="155" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="137"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image31_1.png"&gt;&lt;img title="image_thumb15[4]" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image_thumb15[4]" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekFour_1273D/image_thumb15%5B4%5D_cf1ecfce-3ddb-45d0-9210-42c4c9aa584c.png" width="156" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="137"&gt;
&lt;a href="http://www.cjcraft.com/blog/2008/06/27/30DaysOfNETWindowsMobileApplicationsNdashDay26GeoCash.aspx"&gt;GeoCash&lt;/a&gt;&lt;/td&gt;
&lt;td valign="top" width="137"&gt;
&lt;a href="http://www.cjcraft.com/blog/2008/06/28/30DaysOfNETWindowsMobileApplicationsNdashDay27Repeatr.aspx"&gt;Repeatr&lt;/a&gt;&lt;/td&gt;
&lt;td valign="top" width="137"&gt;
&lt;a href="http://www.cjcraft.com/blog/2008/06/28/30DaysOfNETWindowsMobileApplicationsNdashDay28CallBlocker.aspx"&gt;CallBlocker&lt;/a&gt;&lt;/td&gt;
&lt;td valign="top" width="137"&gt;
&lt;a href="http://www.cjcraft.com/blog/2008/06/30/30DaysOfNETWindowsMobileApplicationsNdashDay29CommunityMegaphoneReader.aspx"&gt;What
will be next?&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Got an idea? Got some feedback? Share it? Thanks!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=94a2ddcb-3417-4c31-afc7-d1705492ff1b" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,94a2ddcb-3417-4c31-afc7-d1705492ff1b.aspx</comments>
      <category>.Net Programming</category>
      <category>30 Day of .NET</category>
      <category>compact framework</category>
      <category>cool</category>
      <category>pocket pc</category>
      <category>programming</category>
      <category>smartphone</category>
      <category>windows mobile</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=ebfde5bd-4709-427b-b73d-42a9753f1e70</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,ebfde5bd-4709-427b-b73d-42a9753f1e70.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,ebfde5bd-4709-427b-b73d-42a9753f1e70.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=ebfde5bd-4709-427b-b73d-42a9753f1e70</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
 <a href="http://gosilverlight.org/"><img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="132" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/2008SilverlightControlBuilderContest_1257A/image_3.png" width="200" align="right" border="0" /></a>A
friend, a coworker, and an all-around great guy, Page Brooks, has created a contest
for building controls for Silverlight.
</p>
        <p>
Here’s the highlights:
</p>
        <blockquote>
          <p>
"Welcome to the <a href="http://www.silverlight.net">Silverlight</a> Control
Builder Contest! With this contest, we hope to incite the development of many open
and free Silverlight Controls that all developers can use in their applications, and
what better way to do this than through a friendly contest! This contest is your chance
to demonstrate your control building skills to the Silverlight community and win some
pretty cool prizes at the same time!"
</p>
        </blockquote>
        <p>
Check out the prizes:
</p>
        <blockquote>
          <p>
            <strong>1st Place </strong>
          </p>
          <ul>
            <li>
1-Year MSDN Premium Subscription (Not for Resale) 
</li>
            <li>
Your choice of one book from the entire O'Reilly catalog 
</li>
          </ul>
          <p>
            <strong>2nd Place </strong>
          </p>
          <ul>
            <li>
Microsoft Visual Studio 2008 Standard Edition</li>
            <li>
Your choice of one book from the entire O'Reilly catalog 
<br /></li>
          </ul>
          <p>
            <strong>3rd Place </strong>
          </p>
          <ul>
            <li>
Essential Silverlight 2 Up-to-Date from O'Reilly</li>
            <li>
Your choice of one book from the entire O'Reilly catalog</li>
          </ul>
        </blockquote>
        <p>
Great opportunity to build a little fame and win some great prizes. Find out more
after the jump: <a href="http://gosilverlight.org/">http://gosilverlight.org/</a></p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=ebfde5bd-4709-427b-b73d-42a9753f1e70" />
      </body>
      <title>2008 Silverlight Control Builder Contest</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,ebfde5bd-4709-427b-b73d-42a9753f1e70.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/06/30/2008SilverlightControlBuilderContest.aspx</link>
      <pubDate>Mon, 30 Jun 2008 04:52:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;&lt;a href="http://gosilverlight.org/"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="132" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/2008SilverlightControlBuilderContest_1257A/image_3.png" width="200" align="right" border="0" /&gt;&lt;/a&gt;A
friend, a coworker, and an all-around great guy, Page Brooks, has created a contest
for building controls for Silverlight.
&lt;/p&gt;
&lt;p&gt;
Here’s the highlights:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&amp;quot;Welcome to the &lt;a href="http://www.silverlight.net"&gt;Silverlight&lt;/a&gt; Control
Builder Contest! With this contest, we hope to incite the development of many open
and free Silverlight Controls that all developers can use in their applications, and
what better way to do this than through a friendly contest! This contest is your chance
to demonstrate your control building skills to the Silverlight community and win some
pretty cool prizes at the same time!&amp;quot;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Check out the prizes:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;1st Place &lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
1-Year MSDN Premium Subscription (Not for Resale) 
&lt;/li&gt;
&lt;li&gt;
Your choice of one book from the entire O'Reilly catalog 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;2nd Place &lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Microsoft Visual Studio 2008 Standard Edition&lt;/li&gt;
&lt;li&gt;
Your choice of one book from the entire O'Reilly catalog 
&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;3rd Place &lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Essential Silverlight 2 Up-to-Date from O'Reilly&lt;/li&gt;
&lt;li&gt;
Your choice of one book from the entire O'Reilly catalog&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Great opportunity to build a little fame and win some great prizes. Find out more
after the jump: &lt;a href="http://gosilverlight.org/"&gt;http://gosilverlight.org/&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=ebfde5bd-4709-427b-b73d-42a9753f1e70" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,ebfde5bd-4709-427b-b73d-42a9753f1e70.aspx</comments>
      <category>.Net Programming</category>
      <category>cool</category>
      <category>programming</category>
      <category>silverlight</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=e9c5d22b-57e0-4dd1-b1df-7ae6fac7d385</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,e9c5d22b-57e0-4dd1-b1df-7ae6fac7d385.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,e9c5d22b-57e0-4dd1-b1df-7ae6fac7d385.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e9c5d22b-57e0-4dd1-b1df-7ae6fac7d385</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <strong>Only One Day Left…</strong>
        </p>
        <p>
Not too long ago <a href="http://pagebrooks.com/">Page Brooks</a> and myself made
the three and a half hour drive from Florence, SC to Greensboro, NC to attend the <a href="http://live.ineta.org/blog/2008/06/06/CarolinaCommunityLeadershipSummit08.aspx">Ineta
Carolina Community Leadership Summit '08</a>. This was a great event and there we
meet a lot of the local Ineta user group leaders. We also meet <a href="http://blogs.msdn.com/gduthie/">Andrew
Duthie</a>, aka <a href="http://blogs.msdn.com/gduthie/">DEvHammer</a>. One issue
that rose to the top of things we wanted to work on improving at the leadership summit
was awareness of events that are occurring in the local regional area. That’s when
Andrew told everyone about the project he has been working on: <a href="http://www.communitymegaphone.com/">Community
Megaphone</a>.
</p>
        <p>
I love have information at my fingertips, so I decided to write a tie-in application:
</p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay29Com_1207D/image_2.png">
            <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="179" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay29Com_1207D/image_thumb.png" width="258" align="right" border="0" />
          </a>
        </p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay29Com_1207D/image_4.png">
            <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="455" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay29Com_1207D/image_thumb_1.png" width="293" align="left" border="0" />
          </a>
        </p>
        <p>
          <strong>Community Megaphone Reader </strong>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
Basically, this application connects to the Community Megaphone RSS feed and pulls
down event data. Then it takes your current GPS position and calculates your distance
from each event. Finally, it takes all the events and sorts then so you can find the
event that is the closest to you. This is a great application for the traveling .NET
geek. Where ever you are you can find great .NET events to attend.
</p>
        <p>
The UI is paying homage to Andrew’s Community Megaphone site. I tried to match the
basic colors to keep it familiar. The hyperlinks are active and will take you the
event’s page on Community Megaphone. The menu only has a few options: <strong>Refresh</strong>, <strong>About</strong>,
and <strong>Exit</strong>.
</p>
        <p>
An application like this is really exciting, because it is tying the world of mobile
together with the world wide web.
</p>
        <p>
These types of mashup applications will contitue to take of for years.
</p>
        <p>
          <strong>LoadRss Method</strong>
        </p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 49.72%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 210px; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">public</span>
              <span style="color: #0000ff">static</span> DataSet
LoadRss(<span style="color: #0000ff">string</span> requestUriString)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span> HttpWebRequest
feed = HttpWebRequest.Create(requestUriString) <span style="color: #0000ff">as</span> HttpWebRequest;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span> StreamReader
streamReader = <span style="color: #0000ff">new</span> StreamReader(feed.GetResponse().GetResponseStream());</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 5:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 6:</span>
              <span style="color: #0000ff">string</span> rssXml
= streamReader.ReadToEnd();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 7:</span> rssXml
= rssXml.Replace(<span style="color: #006080">@"&lt;?xml version="</span><span style="color: #006080">"1.0"</span><span style="color: #006080">"
encoding="</span><span style="color: #006080">"utf-8"</span><span style="color: #006080">"?&gt;"</span>, <span style="color: #0000ff">string</span>.Empty);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 8:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 9:</span> StringReader
stringReader = <span style="color: #0000ff">new</span> StringReader(rssXml);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 10:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 11:</span> DataSet
dataSet = <span style="color: #0000ff">new</span> DataSet();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 12:</span> dataSet.ReadXml(stringReader);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 13:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 14:</span>
              <span style="color: #0000ff">return</span> dataSet;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 15:</span> }</pre>
          </div>
        </div>
        <p>
 
</p>
        <p>
          <strong>GetEvents Method</strong>
        </p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">public</span>
              <span style="color: #0000ff">static</span> List&lt;Item&gt;
GetEvents(DataSet dataSet, GpsPosition gpsPosition)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span> List&lt;Item&gt;
items = <span style="color: #0000ff">new</span> List&lt;Item&gt;();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 5:</span>
              <span style="color: #0000ff">foreach</span> (DataRow
dataRow <span style="color: #0000ff">in</span> dataSet.Tables[<span style="color: #006080">"item"</span>].Rows)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 6:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 7:</span> Item
item = <span style="color: #0000ff">new</span> Item();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 8:</span> item.Title
= (<span style="color: #0000ff">string</span>)dataRow[<span style="color: #006080">"title"</span>];</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 9:</span> item.Description
= (<span style="color: #0000ff">string</span>)dataRow[<span style="color: #006080">"description"</span>];</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 10:</span> item.Link
= (<span style="color: #0000ff">string</span>)dataRow[<span style="color: #006080">"link"</span>];</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 11:</span> item.PublishDate
= DateTime.Parse((<span style="color: #0000ff">string</span>)dataRow[<span style="color: #006080">"pubDate"</span>]);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 12:</span> item.Latitude
= Double.Parse((<span style="color: #0000ff">string</span>)dataRow[<span style="color: #006080">"lat"</span>]);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 13:</span> item.Longitude
= Double.Parse((<span style="color: #0000ff">string</span>)dataRow[<span style="color: #006080">"long"</span>]);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 14:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 15:</span>
              <span style="color: #0000ff">if</span>(gpsPosition.LatitudeValid
&amp;&amp; gpsPosition.LongitudeValid)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 16:</span> item.Distance
= GeoCodeCalc.CalcDistance(gpsPosition.Latitude, gpsPosition.Longitude, item.Latitude,
item.Longitude);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 17:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 18:</span> items.Add(item);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 19:</span> }</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 20:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 21:</span> items.Sort(<span style="color: #0000ff">delegate</span>(Item
item1, Item item2)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 22:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 23:</span>
              <span style="color: #0000ff">return</span> item1.Distance.CompareTo(item2.Distance);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 24:</span> });</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 25:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 26:</span>
              <span style="color: #0000ff">return</span> items;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 27:</span> }</pre>
          </div>
        </div>
        <p>
          <strong>Display Events Method</strong>
        </p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">public</span>
              <span style="color: #0000ff">static</span>
              <span style="color: #0000ff">string</span> DisplayEvents(List&lt;Item&gt;
events)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span> StringBuilder
stringBuilder = <span style="color: #0000ff">new</span> StringBuilder();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 5:</span>
              <span style="color: #0000ff">foreach</span> (Item
item <span style="color: #0000ff">in</span> events)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 6:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 7:</span> stringBuilder.Append(<span style="color: #006080">@"&lt;span
style="</span><span style="color: #006080">"color: #FFFFFF;font-weight:bold;"</span><span style="color: #006080">"&gt;"</span>);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 8:</span> stringBuilder.AppendFormat(<span style="color: #006080">@"&lt;a
href="</span><span style="color: #006080">"{0}"</span><span style="color: #006080">"
style="</span><span style="color: #006080">"color: #DBB94F;"</span><span style="color: #006080">"&gt;{1}&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;"</span>,
item.Link, item.Title);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 9:</span> stringBuilder.AppendFormat(<span style="color: #006080">@"{0}&lt;br/&gt;&lt;br/&gt;"</span>,
item.Description);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 10:</span> stringBuilder.AppendFormat(<span style="color: #006080">@"&lt;b&gt;Distance:
&lt;span style="</span><span style="color: #006080">"color: #DBB94F;"</span><span style="color: #006080">"&gt;{0}
miles&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;"</span>, item.Distance.ToString(<span style="color: #006080">"0.00"</span>));</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 11:</span>
              <span style="color: #008000">//
stringBuilder.AppendFormat(@"&lt;b&gt;{0}&lt;/b&gt;&lt;br/&gt;", item.PublishDate);</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 12:</span>
              <span style="color: #008000">//
stringBuilder.AppendFormat(@"{0}&lt;br/&gt;", item.Latitude);</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 13:</span>
              <span style="color: #008000">//
stringBuilder.AppendFormat(@"{0}&lt;br/&gt;", item.Longitude);</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 14:</span> stringBuilder.AppendFormat(<span style="color: #006080">@"&lt;br/&gt;&lt;br/&gt;"</span>);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 15:</span> stringBuilder.Append(<span style="color: #006080">@"&lt;/span&gt;"</span>);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 16:</span> }</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 17:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 18:</span>
              <span style="color: #0000ff">return</span> stringBuilder.ToString();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 19:</span> }</pre>
          </div>
        </div>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <strong>Possibilities:</strong>
        </p>
        <p>
Andrew recently added iCalendar file support to Community Megaphone. This would be
a great feature to add to a Windows Mobile application, and it is totally doable.
The HTML could be a little more fancy maybe even use a few 16x16 fonts for a little
personality.
</p>
        <p>
Download executable: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/CommunityMegaphoneReader.CAB">communityMegaphoneReader.cab</a></p>
        <p>
Download Source Code: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/CommunityMegaphoneReader.zip">communityMegaphoneReader.zip</a></p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
Want more? What else would you like to see? Time’s running out only one more day.
Be sure to get your ideas in soon!
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=e9c5d22b-57e0-4dd1-b1df-7ae6fac7d385" />
      </body>
      <title>30 Days of .NET [Windows Mobile Applications] &amp;ndash; Day 29: Community Megaphone Reader</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,e9c5d22b-57e0-4dd1-b1df-7ae6fac7d385.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/06/30/30DaysOfNETWindowsMobileApplicationsNdashDay29CommunityMegaphoneReader.aspx</link>
      <pubDate>Mon, 30 Jun 2008 04:31:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Only One Day Left…&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Not too long ago &lt;a href="http://pagebrooks.com/"&gt;Page Brooks&lt;/a&gt; and myself made
the three and a half hour drive from Florence, SC to Greensboro, NC to attend the &lt;a href="http://live.ineta.org/blog/2008/06/06/CarolinaCommunityLeadershipSummit08.aspx"&gt;Ineta
Carolina Community Leadership Summit '08&lt;/a&gt;. This was a great event and there we
meet a lot of the local Ineta user group leaders. We also meet &lt;a href="http://blogs.msdn.com/gduthie/"&gt;Andrew
Duthie&lt;/a&gt;, aka &lt;a href="http://blogs.msdn.com/gduthie/"&gt;DEvHammer&lt;/a&gt;. One issue
that rose to the top of things we wanted to work on improving at the leadership summit
was awareness of events that are occurring in the local regional area. That’s when
Andrew told everyone about the project he has been working on: &lt;a href="http://www.communitymegaphone.com/"&gt;Community
Megaphone&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
I love have information at my fingertips, so I decided to write a tie-in application:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay29Com_1207D/image_2.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="179" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay29Com_1207D/image_thumb.png" width="258" align="right" border="0" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay29Com_1207D/image_4.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="455" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay29Com_1207D/image_thumb_1.png" width="293" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Community Megaphone Reader &lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Basically, this application connects to the Community Megaphone RSS feed and pulls
down event data. Then it takes your current GPS position and calculates your distance
from each event. Finally, it takes all the events and sorts then so you can find the
event that is the closest to you. This is a great application for the traveling .NET
geek. Where ever you are you can find great .NET events to attend.
&lt;/p&gt;
&lt;p&gt;
The UI is paying homage to Andrew’s Community Megaphone site. I tried to match the
basic colors to keep it familiar. The hyperlinks are active and will take you the
event’s page on Community Megaphone. The menu only has a few options: &lt;strong&gt;Refresh&lt;/strong&gt;, &lt;strong&gt;About&lt;/strong&gt;,
and &lt;strong&gt;Exit&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
An application like this is really exciting, because it is tying the world of mobile
together with the world wide web.
&lt;/p&gt;
&lt;p&gt;
These types of mashup applications will contitue to take of for years.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;LoadRss Method&lt;/strong&gt;
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 49.72%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; height: 210px; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; DataSet
LoadRss(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; requestUriString)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt; HttpWebRequest
feed = HttpWebRequest.Create(requestUriString) &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; HttpWebRequest;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 4:&lt;/span&gt; StreamReader
streamReader = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; StreamReader(feed.GetResponse().GetResponseStream());&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 5:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 6:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; rssXml
= streamReader.ReadToEnd();&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 7:&lt;/span&gt; rssXml
= rssXml.Replace(&lt;span style="color: #006080"&gt;@&amp;quot;&amp;lt;?xml version=&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;
encoding=&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;utf-8&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;?&amp;gt;&amp;quot;&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;string&lt;/span&gt;.Empty);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 8:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 9:&lt;/span&gt; StringReader
stringReader = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; StringReader(rssXml);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 10:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 11:&lt;/span&gt; DataSet
dataSet = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DataSet();&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 12:&lt;/span&gt; dataSet.ReadXml(stringReader);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 13:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 14:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; dataSet;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 15:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;GetEvents Method&lt;/strong&gt;
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; List&amp;lt;Item&amp;gt;
GetEvents(DataSet dataSet, GpsPosition gpsPosition)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt; List&amp;lt;Item&amp;gt;
items = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;Item&amp;gt;();&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 4:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (DataRow
dataRow &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; dataSet.Tables[&lt;span style="color: #006080"&gt;&amp;quot;item&amp;quot;&lt;/span&gt;].Rows)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 6:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 7:&lt;/span&gt; Item
item = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Item();&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 8:&lt;/span&gt; item.Title
= (&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;)dataRow[&lt;span style="color: #006080"&gt;&amp;quot;title&amp;quot;&lt;/span&gt;];&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 9:&lt;/span&gt; item.Description
= (&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;)dataRow[&lt;span style="color: #006080"&gt;&amp;quot;description&amp;quot;&lt;/span&gt;];&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 10:&lt;/span&gt; item.Link
= (&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;)dataRow[&lt;span style="color: #006080"&gt;&amp;quot;link&amp;quot;&lt;/span&gt;];&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 11:&lt;/span&gt; item.PublishDate
= DateTime.Parse((&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;)dataRow[&lt;span style="color: #006080"&gt;&amp;quot;pubDate&amp;quot;&lt;/span&gt;]);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 12:&lt;/span&gt; item.Latitude
= Double.Parse((&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;)dataRow[&lt;span style="color: #006080"&gt;&amp;quot;lat&amp;quot;&lt;/span&gt;]);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 13:&lt;/span&gt; item.Longitude
= Double.Parse((&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;)dataRow[&lt;span style="color: #006080"&gt;&amp;quot;long&amp;quot;&lt;/span&gt;]);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 14:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 15:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt;(gpsPosition.LatitudeValid
&amp;amp;&amp;amp; gpsPosition.LongitudeValid)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 16:&lt;/span&gt; item.Distance
= GeoCodeCalc.CalcDistance(gpsPosition.Latitude, gpsPosition.Longitude, item.Latitude,
item.Longitude);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 17:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 18:&lt;/span&gt; items.Add(item);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 19:&lt;/span&gt; }&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 20:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 21:&lt;/span&gt; items.Sort(&lt;span style="color: #0000ff"&gt;delegate&lt;/span&gt;(Item
item1, Item item2)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 22:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 23:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; item1.Distance.CompareTo(item2.Distance);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 24:&lt;/span&gt; });&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 25:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 26:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; items;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 27:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;Display Events Method&lt;/strong&gt;
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; DisplayEvents(List&amp;lt;Item&amp;gt;
events)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt; StringBuilder
stringBuilder = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; StringBuilder();&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 4:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (Item
item &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; events)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 6:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 7:&lt;/span&gt; stringBuilder.Append(&lt;span style="color: #006080"&gt;@&amp;quot;&amp;lt;span
style=&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;color: #FFFFFF;font-weight:bold;&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;&amp;gt;&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 8:&lt;/span&gt; stringBuilder.AppendFormat(&lt;span style="color: #006080"&gt;@&amp;quot;&amp;lt;a
href=&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;{0}&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;
style=&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;color: #DBB94F;&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;&amp;gt;{1}&amp;lt;/a&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;quot;&lt;/span&gt;,
item.Link, item.Title);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 9:&lt;/span&gt; stringBuilder.AppendFormat(&lt;span style="color: #006080"&gt;@&amp;quot;{0}&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;quot;&lt;/span&gt;,
item.Description);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 10:&lt;/span&gt; stringBuilder.AppendFormat(&lt;span style="color: #006080"&gt;@&amp;quot;&amp;lt;b&amp;gt;Distance:
&amp;lt;span style=&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;color: #DBB94F;&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;&amp;gt;{0}
miles&amp;lt;/span&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;quot;&lt;/span&gt;, item.Distance.ToString(&lt;span style="color: #006080"&gt;&amp;quot;0.00&amp;quot;&lt;/span&gt;));&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 11:&lt;/span&gt; &lt;span style="color: #008000"&gt;//
stringBuilder.AppendFormat(@&amp;quot;&amp;lt;b&amp;gt;{0}&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;quot;, item.PublishDate);&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 12:&lt;/span&gt; &lt;span style="color: #008000"&gt;//
stringBuilder.AppendFormat(@&amp;quot;{0}&amp;lt;br/&amp;gt;&amp;quot;, item.Latitude);&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 13:&lt;/span&gt; &lt;span style="color: #008000"&gt;//
stringBuilder.AppendFormat(@&amp;quot;{0}&amp;lt;br/&amp;gt;&amp;quot;, item.Longitude);&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 14:&lt;/span&gt; stringBuilder.AppendFormat(&lt;span style="color: #006080"&gt;@&amp;quot;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 15:&lt;/span&gt; stringBuilder.Append(&lt;span style="color: #006080"&gt;@&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 16:&lt;/span&gt; }&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 17:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 18:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; stringBuilder.ToString();&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 19:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Possibilities:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Andrew recently added iCalendar file support to Community Megaphone. This would be
a great feature to add to a Windows Mobile application, and it is totally doable.
The HTML could be a little more fancy maybe even use a few 16x16 fonts for a little
personality.
&lt;/p&gt;
&lt;p&gt;
Download executable: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/CommunityMegaphoneReader.CAB"&gt;communityMegaphoneReader.cab&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Download Source Code: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/CommunityMegaphoneReader.zip"&gt;communityMegaphoneReader.zip&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Want more? What else would you like to see? Time’s running out only one more day.
Be sure to get your ideas in soon!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=e9c5d22b-57e0-4dd1-b1df-7ae6fac7d385" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,e9c5d22b-57e0-4dd1-b1df-7ae6fac7d385.aspx</comments>
      <category>.Net Programming</category>
      <category>30 Day of .NET</category>
      <category>compact framework</category>
      <category>cool</category>
      <category>INETA</category>
      <category>pocket pc</category>
      <category>programming</category>
      <category>smartphone</category>
      <category>windows mobile</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=0efa1259-75a9-41f0-8fd4-15e4b73b1a96</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,0efa1259-75a9-41f0-8fd4-15e4b73b1a96.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,0efa1259-75a9-41f0-8fd4-15e4b73b1a96.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=0efa1259-75a9-41f0-8fd4-15e4b73b1a96</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <strong>Only 2 Days Left…</strong>
        </p>
        <p>
Today’s application is <strong>CallBlock</strong>. It is designed to watch incoming
calls, and check and see if they match any on the block phone numbers list. If they
do match then the phone is “blocked”.
</p>
        <p>
 
</p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay27Cal_B880/image_2.png">
            <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="455" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay27Cal_B880/image_thumb.png" width="293" align="left" border="0" />
          </a>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <strong>CallBlock</strong>
        </p>
        <p>
The first thing you should notice is the flashy logo at the top of the form. I create
this logo with an online 3D logo generator. The one simple touch adds a lot of professional
polish to the application. I really like red and white so I didn’t change the background
color this time. But I am starting to wish I had. It seems a little “blah” to me now.
</p>
        <p>
Next we have our phone number input text box. The user enters the phone number here,
and presses the <strong>Block</strong> menu item to add it to the block number list
below. On the main menu we also have options to <strong>Unblock</strong>, and <strong>Unblock
All</strong>. And we have our almost universal <strong>About</strong> and <strong>Exit</strong> menu
items.
</p>
        <p>
There are two main pieces to this application. One part is the State and Notification
Broker code to give us an event to catch incoming phone calls.
</p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
I actually got myself painted into a corner, I assumed you could just programmatically
ignore of phone call but it isn’t that simple. Fortunately, a good friend of mine, <a href="http://ilovevb.net/Web/blogs/vbmobile/archive/2008/02/15/0wn-ur-phone-taking-back-control-of-your-mobile-phone.aspx">Lou
Vega</a>, came up with a very slick workaround for this. And that is the second part
which is the <strong>keybd_event</strong> method that allows us to send keypresses
to the OS to <strong>Ignore</strong> the phone call.
</p>
        <p>
          <strong>CallBlock Core Code</strong>
        </p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 54.53%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 210px; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">const</span>
              <span style="color: #0000ff">int</span> KEYEVENTF_KEYDOWN
= 0x0;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span>
              <span style="color: #0000ff">const</span>
              <span style="color: #0000ff">int</span> KEYEVENTF_KEYUP
= 0x2;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span> [DllImport(<span style="color: #006080">"coredll.dll"</span>,
EntryPoint = <span style="color: #006080">"keybd_event"</span>, SetLastError
= <span style="color: #0000ff">true</span>)]</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 5:</span>
              <span style="color: #0000ff">internal</span>
              <span style="color: #0000ff">static</span>
              <span style="color: #0000ff">extern</span>
              <span style="color: #0000ff">void</span> keybd_event(<span style="color: #0000ff">byte</span> bVk, <span style="color: #0000ff">byte</span> bScan, <span style="color: #0000ff">int</span> dwFlags, <span style="color: #0000ff">int</span> dwExtraInfo);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 6:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 7:</span> SystemState
phoneIncomingCall = <span style="color: #0000ff">new</span> SystemState(SystemProperty.PhoneIncomingCall);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 8:</span>
              <span style="color: #0000ff">private</span>
              <span style="color: #0000ff">void</span> frmMain_Load(<span style="color: #0000ff">object</span> sender,
EventArgs e)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 9:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 10:</span> phoneIncomingCall.Changed
+= <span style="color: #0000ff">new</span> ChangeEventHandler(phoneIncomingCall_Changed);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 11:</span> }</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 12:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 13:</span>
              <span style="color: #0000ff">void</span> phoneIncomingCall_Changed(<span style="color: #0000ff">object</span> sender,
ChangeEventArgs args)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 14:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 15:</span>
              <span style="color: #0000ff">string</span> phoneNumber
= RemoveText(SystemState.PhoneIncomingCallerNumber);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 16:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 17:</span>
              <span style="color: #0000ff">if</span>(listBoxBlockedNumbers.Items.Contains(phoneNumber))</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 18:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 19:</span> keybd_event(115,
0, KEYEVENTF_KEYDOWN, 0);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 20:</span> keybd_event(115,
0, KEYEVENTF_KEYUP, 0);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 21:</span> }</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 22:</span> }</pre>
          </div>
        </div>
        <p>
 
</p>
        <p>
          <strong>Possibilities:</strong>
        </p>
        <p>
It would be easy to add support for blocking SMS text messages as well. We’ve done
all the code for this already in previous applications. Also the application could
really use a persistent data store to remember number to block in case the user closes
the application. It would be nice to allow user formatting of entered phone numbers
for increased readability.
</p>
        <p>
Download executable: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/CallBlock.CAB">callBlock.cab</a></p>
        <p>
Download Source Code: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/CallBlock.zip">callBlock.zip</a></p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
Want more? What else would you like to see? Time’s running out on submitting ideas.
Be sure to get yours in soon!
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=0efa1259-75a9-41f0-8fd4-15e4b73b1a96" />
      </body>
      <title>30 Days of .NET [Windows Mobile Applications] &amp;ndash; Day 28: CallBlocker</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,0efa1259-75a9-41f0-8fd4-15e4b73b1a96.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/06/28/30DaysOfNETWindowsMobileApplicationsNdashDay28CallBlocker.aspx</link>
      <pubDate>Sat, 28 Jun 2008 21:07:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Only 2 Days Left…&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Today’s application is &lt;strong&gt;CallBlock&lt;/strong&gt;. It is designed to watch incoming
calls, and check and see if they match any on the block phone numbers list. If they
do match then the phone is “blocked”.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay27Cal_B880/image_2.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="455" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay27Cal_B880/image_thumb.png" width="293" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;CallBlock&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The first thing you should notice is the flashy logo at the top of the form. I create
this logo with an online 3D logo generator. The one simple touch adds a lot of professional
polish to the application. I really like red and white so I didn’t change the background
color this time. But I am starting to wish I had. It seems a little “blah” to me now.
&lt;/p&gt;
&lt;p&gt;
Next we have our phone number input text box. The user enters the phone number here,
and presses the &lt;strong&gt;Block&lt;/strong&gt; menu item to add it to the block number list
below. On the main menu we also have options to &lt;strong&gt;Unblock&lt;/strong&gt;, and &lt;strong&gt;Unblock
All&lt;/strong&gt;. And we have our almost universal &lt;strong&gt;About&lt;/strong&gt; and &lt;strong&gt;Exit&lt;/strong&gt; menu
items.
&lt;/p&gt;
&lt;p&gt;
There are two main pieces to this application. One part is the State and Notification
Broker code to give us an event to catch incoming phone calls.
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
I actually got myself painted into a corner, I assumed you could just programmatically
ignore of phone call but it isn’t that simple. Fortunately, a good friend of mine, &lt;a href="http://ilovevb.net/Web/blogs/vbmobile/archive/2008/02/15/0wn-ur-phone-taking-back-control-of-your-mobile-phone.aspx"&gt;Lou
Vega&lt;/a&gt;, came up with a very slick workaround for this. And that is the second part
which is the &lt;strong&gt;keybd_event&lt;/strong&gt; method that allows us to send keypresses
to the OS to &lt;strong&gt;Ignore&lt;/strong&gt; the phone call.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;CallBlock Core Code&lt;/strong&gt;
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 54.53%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; height: 210px; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;const&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; KEYEVENTF_KEYDOWN
= 0x0;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;const&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; KEYEVENTF_KEYUP
= 0x2;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 4:&lt;/span&gt; [DllImport(&lt;span style="color: #006080"&gt;&amp;quot;coredll.dll&amp;quot;&lt;/span&gt;,
EntryPoint = &lt;span style="color: #006080"&gt;&amp;quot;keybd_event&amp;quot;&lt;/span&gt;, SetLastError
= &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;)]&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;internal&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;extern&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; keybd_event(&lt;span style="color: #0000ff"&gt;byte&lt;/span&gt; bVk, &lt;span style="color: #0000ff"&gt;byte&lt;/span&gt; bScan, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; dwFlags, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; dwExtraInfo);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 6:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 7:&lt;/span&gt; SystemState
phoneIncomingCall = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SystemState(SystemProperty.PhoneIncomingCall);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 8:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; frmMain_Load(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender,
EventArgs e)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 9:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 10:&lt;/span&gt; phoneIncomingCall.Changed
+= &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ChangeEventHandler(phoneIncomingCall_Changed);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 11:&lt;/span&gt; }&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 12:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 13:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; phoneIncomingCall_Changed(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender,
ChangeEventArgs args)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 14:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 15:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; phoneNumber
= RemoveText(SystemState.PhoneIncomingCallerNumber);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 16:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 17:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt;(listBoxBlockedNumbers.Items.Contains(phoneNumber))&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 18:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 19:&lt;/span&gt; keybd_event(115,
0, KEYEVENTF_KEYDOWN, 0);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 20:&lt;/span&gt; keybd_event(115,
0, KEYEVENTF_KEYUP, 0);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 21:&lt;/span&gt; }&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 22:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Possibilities:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
It would be easy to add support for blocking SMS text messages as well. We’ve done
all the code for this already in previous applications. Also the application could
really use a persistent data store to remember number to block in case the user closes
the application. It would be nice to allow user formatting of entered phone numbers
for increased readability.
&lt;/p&gt;
&lt;p&gt;
Download executable: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/CallBlock.CAB"&gt;callBlock.cab&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Download Source Code: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/CallBlock.zip"&gt;callBlock.zip&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Want more? What else would you like to see? Time’s running out on submitting ideas.
Be sure to get yours in soon!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=0efa1259-75a9-41f0-8fd4-15e4b73b1a96" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,0efa1259-75a9-41f0-8fd4-15e4b73b1a96.aspx</comments>
      <category>.Net Programming</category>
      <category>30 Day of .NET</category>
      <category>compact framework</category>
      <category>pocket pc</category>
      <category>programming</category>
      <category>smartphone</category>
      <category>windows mobile</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=347d750c-04c9-400c-a33d-67a6b61d3479</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,347d750c-04c9-400c-a33d-67a6b61d3479.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,347d750c-04c9-400c-a33d-67a6b61d3479.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=347d750c-04c9-400c-a33d-67a6b61d3479</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
So <a href="http://www.pagebrooks.com/">Page Brooks</a> was talking with me earlier
this week and he had a great idea for another Windows Mobile application. He wants
an application that will repeat alerts for missed phones and text messages. I have
to admit this is something I could use myself. So I figured I take a crack at it today,
since it would make for a fun, <strong>simple</strong>, Friday app.
</p>
        <p>
 
</p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay27Rep_146E5/image_2.png">
            <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="455" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay27Rep_146E5/image_thumb.png" width="293" align="left" border="0" />
          </a>
        </p>
        <p>
          <strong>Repeatr</strong>
        </p>
        <p>
I decided to change up the naming format and play of the popular Web 2.0 naming conventions
giving us the name: <strong>Repeatr</strong>. I have to admit, it is kind of catchy.
</p>
        <p>
I searched for “Web 2.0 Logo Creator” and pretty much went with the first one I saw.
This gave me a pretty slick logo in less than 5 minutes. I also decided to make the
background a “tooltip” yellow, which I think looks really good.
</p>
        <p>
Other than that everything is rather straight forward. We have checkboxes allowing
the user to choose what events we will monitor. And we have a menu with a couple options,
namely <strong>About</strong> and <strong>Exit</strong>. There is a “Clear Alerts”
menu item, as well, that allows users to acknowledge they have responded to the alert(s).
</p>
        <p>
The application allows user to select the number of minutes between alerts up to 60
minutes.
</p>
        <p>
Of course we are using the <a href="http://msdn.microsoft.com/en-us/library/aa455748.aspx">State
and Notification Broker</a> to make all this happen. Using it means we hardly have
to write any code ourselves!
</p>
        <p>
          <strong>State and Notification Broker setup code</strong>
        </p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 64.06%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 210px; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span> SystemState
phoneMissedCalls = <span style="color: #0000ff">new</span> SystemState(SystemProperty.PhoneMissedCalls);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span> SystemState
messagingSmsUnread = <span style="color: #0000ff">new</span> SystemState(SystemProperty.MessagingSmsUnread);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span> SystemState
messagingTotalEmailUnread = <span style="color: #0000ff">new</span> SystemState(SystemProperty.MessagingTotalEmailUnread);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span> SystemState
messagingVoiceMailTotalUnread = <span style="color: #0000ff">new</span> SystemState(SystemProperty.MessagingVoiceMailTotalUnread);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 5:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 6:</span>
              <span style="color: #0000ff">private</span>
              <span style="color: #0000ff">void</span> frmMain_Load(<span style="color: #0000ff">object</span> sender,
EventArgs e)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 7:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 8:</span> phoneMissedCalls.Changed
+= <span style="color: #0000ff">new</span> ChangeEventHandler(phoneMissedCalls_Changed);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 9:</span> messagingSmsUnread.Changed
+= <span style="color: #0000ff">new</span> ChangeEventHandler(messagingSmsUnread_Changed);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 10:</span> messagingTotalEmailUnread.Changed
+= <span style="color: #0000ff">new</span> ChangeEventHandler(messagingTotalEmailUnread_Changed);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 11:</span> messagingVoiceMailTotalUnread.Changed
+= <span style="color: #0000ff">new</span> ChangeEventHandler(messagingVoiceMailTotalUnread_Changed);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 12:</span> }</pre>
          </div>
        </div>
        <p>
 
</p>
        <p>
The way we alert a user to having missed a monitored event is by playing a sounds
which is easy to do.
</p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 85.59%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 196px; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span> [DllImport(<span style="color: #006080">"aygshell.dll"</span>)]</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span>
              <span style="color: #0000ff">static</span>
              <span style="color: #0000ff">extern</span>
              <span style="color: #0000ff">uint</span> SndPlaySync(<span style="color: #0000ff">string</span> pszSoundFile, <span style="color: #0000ff">uint</span> dwFlags);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span>
              <span style="color: #0000ff">void</span> PlaySound()</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 5:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 6:</span>
              <span style="color: #0000ff">string</span> path;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 7:</span> path
= Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 8:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 9:</span> SndPlaySync(Path.Combine(path, <span style="color: #006080">"alert.wma"</span>),
0);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 10:</span> }</pre>
          </div>
        </div>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
Other than a little plumbing to make everything work together that is basically the
entire app in a nutshell.
</p>
        <p>
          <strong>Possibilities:</strong>
        </p>
        <p>
This is a pretty spiffy application. But software can always be better. An option
to allow the phone to vibrate would be great. Another option to allow the user to
select the alert sound would be nice too.
</p>
        <p>
Download executable: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/Repeatr.CAB">repeatr.cab</a></p>
        <p>
Download Source Code: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/Repeatr.zip">repeatr.zip</a></p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
Want more? What else would you like to see? Time’s running out on submitting ideas.
Be sure to get yours in soon!
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=347d750c-04c9-400c-a33d-67a6b61d3479" />
      </body>
      <title>30 Days of .NET [Windows Mobile Applications] &amp;ndash; Day 27: Repeatr</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,347d750c-04c9-400c-a33d-67a6b61d3479.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/06/28/30DaysOfNETWindowsMobileApplicationsNdashDay27Repeatr.aspx</link>
      <pubDate>Sat, 28 Jun 2008 07:30:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
So &lt;a href="http://www.pagebrooks.com/"&gt;Page Brooks&lt;/a&gt; was talking with me earlier
this week and he had a great idea for another Windows Mobile application. He wants
an application that will repeat alerts for missed phones and text messages. I have
to admit this is something I could use myself. So I figured I take a crack at it today,
since it would make for a fun, &lt;strong&gt;simple&lt;/strong&gt;, Friday app.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay27Rep_146E5/image_2.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="455" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay27Rep_146E5/image_thumb.png" width="293" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Repeatr&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I decided to change up the naming format and play of the popular Web 2.0 naming conventions
giving us the name: &lt;strong&gt;Repeatr&lt;/strong&gt;. I have to admit, it is kind of catchy.
&lt;/p&gt;
&lt;p&gt;
I searched for “Web 2.0 Logo Creator” and pretty much went with the first one I saw.
This gave me a pretty slick logo in less than 5 minutes. I also decided to make the
background a “tooltip” yellow, which I think looks really good.
&lt;/p&gt;
&lt;p&gt;
Other than that everything is rather straight forward. We have checkboxes allowing
the user to choose what events we will monitor. And we have a menu with a couple options,
namely &lt;strong&gt;About&lt;/strong&gt; and &lt;strong&gt;Exit&lt;/strong&gt;. There is a “Clear Alerts”
menu item, as well, that allows users to acknowledge they have responded to the alert(s).
&lt;/p&gt;
&lt;p&gt;
The application allows user to select the number of minutes between alerts up to 60
minutes.
&lt;/p&gt;
&lt;p&gt;
Of course we are using the &lt;a href="http://msdn.microsoft.com/en-us/library/aa455748.aspx"&gt;State
and Notification Broker&lt;/a&gt; to make all this happen. Using it means we hardly have
to write any code ourselves!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;State and Notification Broker setup code&lt;/strong&gt;
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 64.06%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; height: 210px; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; SystemState
phoneMissedCalls = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SystemState(SystemProperty.PhoneMissedCalls);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt; SystemState
messagingSmsUnread = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SystemState(SystemProperty.MessagingSmsUnread);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt; SystemState
messagingTotalEmailUnread = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SystemState(SystemProperty.MessagingTotalEmailUnread);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 4:&lt;/span&gt; SystemState
messagingVoiceMailTotalUnread = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SystemState(SystemProperty.MessagingVoiceMailTotalUnread);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 5:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 6:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; frmMain_Load(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender,
EventArgs e)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 7:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 8:&lt;/span&gt; phoneMissedCalls.Changed
+= &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ChangeEventHandler(phoneMissedCalls_Changed);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 9:&lt;/span&gt; messagingSmsUnread.Changed
+= &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ChangeEventHandler(messagingSmsUnread_Changed);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 10:&lt;/span&gt; messagingTotalEmailUnread.Changed
+= &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ChangeEventHandler(messagingTotalEmailUnread_Changed);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 11:&lt;/span&gt; messagingVoiceMailTotalUnread.Changed
+= &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ChangeEventHandler(messagingVoiceMailTotalUnread_Changed);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 12:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
The way we alert a user to having missed a monitored event is by playing a sounds
which is easy to do.
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 85.59%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; height: 196px; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; [DllImport(&lt;span style="color: #006080"&gt;&amp;quot;aygshell.dll&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;extern&lt;/span&gt; &lt;span style="color: #0000ff"&gt;uint&lt;/span&gt; SndPlaySync(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; pszSoundFile, &lt;span style="color: #0000ff"&gt;uint&lt;/span&gt; dwFlags);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 4:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; PlaySound()&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 5:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 6:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; path;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 7:&lt;/span&gt; path
= Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 8:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 9:&lt;/span&gt; SndPlaySync(Path.Combine(path, &lt;span style="color: #006080"&gt;&amp;quot;alert.wma&amp;quot;&lt;/span&gt;),
0);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 10:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Other than a little plumbing to make everything work together that is basically the
entire app in a nutshell.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Possibilities:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
This is a pretty spiffy application. But software can always be better. An option
to allow the phone to vibrate would be great. Another option to allow the user to
select the alert sound would be nice too.
&lt;/p&gt;
&lt;p&gt;
Download executable: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/Repeatr.CAB"&gt;repeatr.cab&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Download Source Code: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/Repeatr.zip"&gt;repeatr.zip&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Want more? What else would you like to see? Time’s running out on submitting ideas.
Be sure to get yours in soon!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=347d750c-04c9-400c-a33d-67a6b61d3479" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,347d750c-04c9-400c-a33d-67a6b61d3479.aspx</comments>
      <category>.Net Programming</category>
      <category>30 Day of .NET</category>
      <category>compact framework</category>
      <category>pocket pc</category>
      <category>programming</category>
      <category>smartphone</category>
      <category>windows mobile</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=361d8b11-cd9e-44df-93e8-ee7361e675d4</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,361d8b11-cd9e-44df-93e8-ee7361e675d4.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,361d8b11-cd9e-44df-93e8-ee7361e675d4.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=361d8b11-cd9e-44df-93e8-ee7361e675d4</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <strong>4 Days left…</strong>
        </p>
        <p>
Today on twitter, <a href="http://twitter.com/glengordon">Glen Gordon</a> was telling <a href="http://twitter.com/CJCraft">me</a> that <a href="http://twitter.com/brendonschwartz">Brendon
Schwartz</a> had an idea for today’s application: 
</p>
        <blockquote>
          <p>
            <strong>
              <a href="http://twitter.com/glengordon">glengordon</a>
            </strong> @<a href="http://twitter.com/cjcraft">cjcraft</a> here's
an idea for a mobile app that @<a href="http://twitter.com/brendonschwartz">brendonschwartz</a> will
like - record $ spent during the day and where it was spent (with GPS) <a href="http://twitter.com/glengordon/statuses/844142603"><abbr>
about 13 hours
</abbr>
ago</a> from <a href="http://code.google.com/p/wittytwitter/">Witty</a><a href="http://twitter.com/CJCraft/statuses/842500577">in
reply to CJCraft</a></p>
        </blockquote>
        <p>
It’s a really good idea. Probably a better idea than we will be able to do it tonight,
but we are all about taking the first small steps to accomplishing great things.
</p>
        <p>
 
</p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay26Geo_14127/image_2.png">
            <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="455" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay26Geo_14127/image_thumb.png" width="293" align="left" border="0" />
          </a>
        </p>
        <blockquote>
          <p>
            <strong>GeoCash</strong>
          </p>
          <p>
I love the name, it is a play on <a href="http://en.wikipedia.org/wiki/Geocaching">GeoCaching</a>.
Somehow it adds a lot of “buzz” to the application already.
</p>
          <p>
The application is designed to be easy for the user to use and understand. The user
only needs to enter the amount they spent along with a note, and then simply press <strong>log</strong> and
it will be added to the GeoCash log.
</p>
          <p>
We are using our own <strong>NumericTextBox</strong> to be sure the user doesn’t enter
in any invalid amounts spent. We have another standard TextBox for the note input.
Below this we have the log information. This is done using a <strong>WebBrowser</strong> control,
and setting its <strong>DocumentText</strong> property.
</p>
          <p>
The main reason to use the WebBrowser control is to be able to do a little better
text formatting. This allowed us to easily markup our text in bold and color.
</p>
          <p>
 
</p>
          <p>
            <strong>HTML formatted output:</strong>
          </p>
          <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 65.04%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 180px; background-color: #f4f4f4">
            <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
                <span style="color: #606060"> 1:</span> sb.AppendFormat(<span style="color: #006080">@"&lt;b&gt;Date:&lt;/b&gt;
{0}"</span>, DateTime.Now).Append(<span style="color: #006080">"&lt;br/&gt;"</span>);</pre>
              <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
                <span style="color: #606060"> 2:</span> sb.AppendFormat(<span style="color: #006080">@"&lt;b&gt;Amount:&lt;/b&gt;
&lt;span style="</span><span style="color: #006080">"color:red"</span><span style="color: #006080">"&gt;{0:c}&lt;/span&gt;"</span>, <span style="color: #0000ff">decimal</span>.Parse(textBoxAmountSpent.Text)).Append(<span style="color: #006080">"&lt;br/&gt;"</span>);</pre>
              <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
                <span style="color: #606060"> 3:</span> sb.AppendFormat(<span style="color: #006080">@"&lt;b&gt;Note:&lt;/b&gt;
{0}"</span>, textBoxNote.Text).Append(<span style="color: #006080">"&lt;br/&gt;"</span>);</pre>
              <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
                <span style="color: #606060"> 4:</span> sb.AppendFormat(<span style="color: #006080">@"&lt;b&gt;Latitude:&lt;/b&gt;
{0}"</span>, position.Latitude).Append(<span style="color: #006080">"&lt;br/&gt;"</span>);</pre>
              <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
                <span style="color: #606060"> 5:</span> sb.AppendFormat(<span style="color: #006080">@"&lt;b&gt;Longitude:&lt;/b&gt;
{0}"</span>, position.Longitude).Append(<span style="color: #006080">"&lt;br/&gt;"</span>);</pre>
              <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
                <span style="color: #606060"> 6:</span> sb.Append(<span style="color: #006080">"&lt;br/&gt;"</span>);</pre>
              <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
                <span style="color: #606060"> 7:</span>  </pre>
              <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
                <span style="color: #606060"> 8:</span> documentText
+= sb.ToString();</pre>
              <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
                <span style="color: #606060"> 9:</span> webBrowser.DocumentText
= documentText;</pre>
            </div>
          </div>
        </blockquote>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
 
</p>
        <p>
          <strong>Possibilities:</strong>
        </p>
        <p>
I love this app. It has so many cool possibilities. You could easily save this information
to a text file or sent it as an email. I think this is perfect data to do a mashup
on for example create a heatmap etc for it so you can see the “<strong>dangerous</strong>”
side of town you need to avoid taking your money into from now on. <img alt="Open-mouthed" src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/teeth_smile.gif" /></p>
        <p>
Download executable: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/GeoCash.CAB">geoCash.cab</a></p>
        <p>
Download Source Code: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/GeoCash.zip">geoCash.zip</a></p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
Want more? What else would you like to see? Time’s running out on submitting ideas.
Be sure to get yours in soon!
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=361d8b11-cd9e-44df-93e8-ee7361e675d4" />
      </body>
      <title>30 Days of .NET [Windows Mobile Applications] &amp;ndash; Day 26: GeoCash</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,361d8b11-cd9e-44df-93e8-ee7361e675d4.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/06/27/30DaysOfNETWindowsMobileApplicationsNdashDay26GeoCash.aspx</link>
      <pubDate>Fri, 27 Jun 2008 06:59:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;4 Days left…&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Today on twitter, &lt;a href="http://twitter.com/glengordon"&gt;Glen Gordon&lt;/a&gt; was telling &lt;a href="http://twitter.com/CJCraft"&gt;me&lt;/a&gt; that &lt;a href="http://twitter.com/brendonschwartz"&gt;Brendon
Schwartz&lt;/a&gt; had an idea for today’s application: 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;&lt;a href="http://twitter.com/glengordon"&gt;glengordon&lt;/a&gt;&lt;/strong&gt; @&lt;a href="http://twitter.com/cjcraft"&gt;cjcraft&lt;/a&gt; here's
an idea for a mobile app that @&lt;a href="http://twitter.com/brendonschwartz"&gt;brendonschwartz&lt;/a&gt; will
like - record $ spent during the day and where it was spent (with GPS) &lt;a href="http://twitter.com/glengordon/statuses/844142603"&gt;
&lt;abbr&gt;
about 13 hours
&lt;/abbr&gt;
ago&lt;/a&gt; from &lt;a href="http://code.google.com/p/wittytwitter/"&gt;Witty&lt;/a&gt; &lt;a href="http://twitter.com/CJCraft/statuses/842500577"&gt;in
reply to CJCraft&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
It’s a really good idea. Probably a better idea than we will be able to do it tonight,
but we are all about taking the first small steps to accomplishing great things.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay26Geo_14127/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="455" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay26Geo_14127/image_thumb.png" width="293" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;GeoCash&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I love the name, it is a play on &lt;a href="http://en.wikipedia.org/wiki/Geocaching"&gt;GeoCaching&lt;/a&gt;.
Somehow it adds a lot of “buzz” to the application already.
&lt;/p&gt;
&lt;p&gt;
The application is designed to be easy for the user to use and understand. The user
only needs to enter the amount they spent along with a note, and then simply press &lt;strong&gt;log&lt;/strong&gt; and
it will be added to the GeoCash log.
&lt;/p&gt;
&lt;p&gt;
We are using our own &lt;strong&gt;NumericTextBox&lt;/strong&gt; to be sure the user doesn’t enter
in any invalid amounts spent. We have another standard TextBox for the note input.
Below this we have the log information. This is done using a &lt;strong&gt;WebBrowser&lt;/strong&gt; control,
and setting its &lt;strong&gt;DocumentText&lt;/strong&gt; property.
&lt;/p&gt;
&lt;p&gt;
The main reason to use the WebBrowser control is to be able to do a little better
text formatting. This allowed us to easily markup our text in bold and color.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;HTML formatted output:&lt;/strong&gt;
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 65.04%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; height: 180px; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; sb.AppendFormat(&lt;span style="color: #006080"&gt;@&amp;quot;&amp;lt;b&amp;gt;Date:&amp;lt;/b&amp;gt;
{0}&amp;quot;&lt;/span&gt;, DateTime.Now).Append(&lt;span style="color: #006080"&gt;&amp;quot;&amp;lt;br/&amp;gt;&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt; sb.AppendFormat(&lt;span style="color: #006080"&gt;@&amp;quot;&amp;lt;b&amp;gt;Amount:&amp;lt;/b&amp;gt;
&amp;lt;span style=&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;color:red&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;&amp;gt;{0:c}&amp;lt;/span&amp;gt;&amp;quot;&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;decimal&lt;/span&gt;.Parse(textBoxAmountSpent.Text)).Append(&lt;span style="color: #006080"&gt;&amp;quot;&amp;lt;br/&amp;gt;&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt; sb.AppendFormat(&lt;span style="color: #006080"&gt;@&amp;quot;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt;
{0}&amp;quot;&lt;/span&gt;, textBoxNote.Text).Append(&lt;span style="color: #006080"&gt;&amp;quot;&amp;lt;br/&amp;gt;&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 4:&lt;/span&gt; sb.AppendFormat(&lt;span style="color: #006080"&gt;@&amp;quot;&amp;lt;b&amp;gt;Latitude:&amp;lt;/b&amp;gt;
{0}&amp;quot;&lt;/span&gt;, position.Latitude).Append(&lt;span style="color: #006080"&gt;&amp;quot;&amp;lt;br/&amp;gt;&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 5:&lt;/span&gt; sb.AppendFormat(&lt;span style="color: #006080"&gt;@&amp;quot;&amp;lt;b&amp;gt;Longitude:&amp;lt;/b&amp;gt;
{0}&amp;quot;&lt;/span&gt;, position.Longitude).Append(&lt;span style="color: #006080"&gt;&amp;quot;&amp;lt;br/&amp;gt;&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 6:&lt;/span&gt; sb.Append(&lt;span style="color: #006080"&gt;&amp;quot;&amp;lt;br/&amp;gt;&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 7:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 8:&lt;/span&gt; documentText
+= sb.ToString();&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 9:&lt;/span&gt; webBrowser.DocumentText
= documentText;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Possibilities:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I love this app. It has so many cool possibilities. You could easily save this information
to a text file or sent it as an email. I think this is perfect data to do a mashup
on for example create a heatmap etc for it so you can see the “&lt;strong&gt;dangerous&lt;/strong&gt;”
side of town you need to avoid taking your money into from now on. &lt;img alt="Open-mouthed" src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/teeth_smile.gif" /&gt;
&lt;/p&gt;
&lt;p&gt;
Download executable: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/GeoCash.CAB"&gt;geoCash.cab&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Download Source Code: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/GeoCash.zip"&gt;geoCash.zip&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Want more? What else would you like to see? Time’s running out on submitting ideas.
Be sure to get yours in soon!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=361d8b11-cd9e-44df-93e8-ee7361e675d4" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,361d8b11-cd9e-44df-93e8-ee7361e675d4.aspx</comments>
      <category>.Net Programming</category>
      <category>30 Day of .NET</category>
      <category>compact framework</category>
      <category>pocket pc</category>
      <category>programming</category>
      <category>smartphone</category>
      <category>windows mobile</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=2f4580f1-d411-44cc-b76a-12c6a7a7141a</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,2f4580f1-d411-44cc-b76a-12c6a7a7141a.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,2f4580f1-d411-44cc-b76a-12c6a7a7141a.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=2f4580f1-d411-44cc-b76a-12c6a7a7141a</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <strong>5 Days Left…</strong>
        </p>
        <p>
So when you are talking Windows Mobile Applications you are usually talking about
a cell phone device. We have looked at text messages using SMS, but one thing we haven’t
look at so far is programmatically making phone calls. Today we will take a look at
creating our own phone dialer application. It’s easier than you think!
</p>
        <p>
 
</p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay24Mob_14659/image_2.png">
            <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="455" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay24Mob_14659/image_thumb.png" width="293" align="left" border="0" />
          </a>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <strong>SmartDial</strong>
        </p>
        <p>
I think the UI is pretty nice, not the best, but good overall. It is bright and clean.
I found a web site that allowed me to create buttons in a snap and used it for the
numbers. At the top of the screen, I added a label to display the number to dial.
The menu only has a few options: <strong>Dial</strong>, <strong>Menu</strong>, <strong>Clear</strong>, <strong>About</strong>,
and <strong>Exit</strong>.
</p>
        <p>
Since we only allow users to enter numbers using our custom buttons, we don’t have
to worry about anyone entering invalid characters. 
</p>
        <p>
So how much code did we as Windows Mobile application developers have to write to
actually dial a number? See for yourself.
</p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 48.63%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 100px; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">private</span>
              <span style="color: #0000ff">void</span> Dial()</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span>
              <span style="color: #0000ff">new</span> Phone().Talk(labelPhoneNumber.Text);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span> }</pre>
          </div>
        </div>
        <p>
          <strong>Possibilities:</strong>
        </p>
        <p>
I think this has the potential to be an absolutely great application. One thing I
think would be cool is if the application supported skinning. In a way it does, since
I decided to leave the image resources as external files to the executable. So a user
could edit any of the files themselves. Another great enhancement would be to have
mousedown images for each button to give a nice “animated” touch to the application.
What about quick soft sounds for when each button is pressed?
</p>
        <p>
Download executable: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/SmartDial.CAB">smartDial.cab</a></p>
        <p>
Download Source Code: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/SmartDial.zip">smartDial.zip</a></p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
Want more? What else would you like to see? Time’s running out on submitting ideas.
Be sure to get yours in soon!
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=2f4580f1-d411-44cc-b76a-12c6a7a7141a" />
      </body>
      <title>30 Days of .NET [Windows Mobile Applications] &amp;ndash; Day 25: SmartDial</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,2f4580f1-d411-44cc-b76a-12c6a7a7141a.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/06/26/30DaysOfNETWindowsMobileApplicationsNdashDay25SmartDial.aspx</link>
      <pubDate>Thu, 26 Jun 2008 04:12:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;5 Days Left…&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
So when you are talking Windows Mobile Applications you are usually talking about
a cell phone device. We have looked at text messages using SMS, but one thing we haven’t
look at so far is programmatically making phone calls. Today we will take a look at
creating our own phone dialer application. It’s easier than you think!
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay24Mob_14659/image_2.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="455" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay24Mob_14659/image_thumb.png" width="293" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;SmartDial&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I think the UI is pretty nice, not the best, but good overall. It is bright and clean.
I found a web site that allowed me to create buttons in a snap and used it for the
numbers. At the top of the screen, I added a label to display the number to dial.
The menu only has a few options: &lt;strong&gt;Dial&lt;/strong&gt;, &lt;strong&gt;Menu&lt;/strong&gt;, &lt;strong&gt;Clear&lt;/strong&gt;, &lt;strong&gt;About&lt;/strong&gt;,
and &lt;strong&gt;Exit&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
Since we only allow users to enter numbers using our custom buttons, we don’t have
to worry about anyone entering invalid characters. 
&lt;/p&gt;
&lt;p&gt;
So how much code did we as Windows Mobile application developers have to write to
actually dial a number? See for yourself.
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 48.63%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; height: 100px; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Dial()&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Phone().Talk(labelPhoneNumber.Text);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 4:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;Possibilities:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I think this has the potential to be an absolutely great application. One thing I
think would be cool is if the application supported skinning. In a way it does, since
I decided to leave the image resources as external files to the executable. So a user
could edit any of the files themselves. Another great enhancement would be to have
mousedown images for each button to give a nice “animated” touch to the application.
What about quick soft sounds for when each button is pressed?
&lt;/p&gt;
&lt;p&gt;
Download executable: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/SmartDial.CAB"&gt;smartDial.cab&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Download Source Code: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/SmartDial.zip"&gt;smartDial.zip&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Want more? What else would you like to see? Time’s running out on submitting ideas.
Be sure to get yours in soon!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=2f4580f1-d411-44cc-b76a-12c6a7a7141a" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,2f4580f1-d411-44cc-b76a-12c6a7a7141a.aspx</comments>
      <category>.Net Programming</category>
      <category>30 Day of .NET</category>
      <category>compact framework</category>
      <category>cool</category>
      <category>pocket pc</category>
      <category>programming</category>
      <category>smartphone</category>
      <category>windows mobile</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=f169d2c3-2bff-42fb-bc06-9ae52b335e4d</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,f169d2c3-2bff-42fb-bc06-9ae52b335e4d.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,f169d2c3-2bff-42fb-bc06-9ae52b335e4d.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f169d2c3-2bff-42fb-bc06-9ae52b335e4d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Today I am in Atlanta, GA with Brian Hitney and Glen Gordon. We are presenting <a href="http://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&amp;EventID=1032378497" target="_blank">Mobility
Roadshow: Programming for Windows Mobile</a>. We had a long drive last night, and
will have another long drive back to Florence, SC tonight. So I choose not bite off
anything too intense today.
</p>
        <p>
Many people today carry mini-flashlights on the end of their key chain. Apparently
there is a need for this type of device because many stores sell them near the cash
registers in the checkout lines. I wonder why these mini-flashlights are so popular
when almost everyone has a mobile phone today. Maybe it is because the phone’s back
light is not bright enough.
</p>
        <p>
Hmm, this got me thinking. Most Windows Mobile devices have large powerful screens,
maybe there is a way we could reuse our device as both a mobile phone and a mini-flashlight.
</p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay23Mob_A3E3/image_2.png">
            <img title="image" style="margin: 5px" height="454" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay23Mob_A3E3/image_thumb.png" width="293" align="left" border="0" />
          </a>
        </p>
        <p>
          <strong>
            <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay23Mob_A3E3/image_4.png">
              <img title="image" style="margin: 5px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay23Mob_A3E3/image_thumb_1.png" width="155" align="right" border="0" />
            </a>Mobile
Flashlight</strong>
        </p>
        <p>
The UI is simple but the task is simple. I considered using a watermark image for
the background or add a gradient to the background. With a goal of having as much
of the screen as bright as possible I think the simple solid color background was
the choice to make.
</p>
        <p>
We only have a few menu options: <strong>Burn</strong>, <strong>Menu</strong>, <strong>Settings</strong>, <strong>About</strong>,
and <strong>Exit</strong>. I decided to use the term “Burn” like you see on road sign
saying “Motorcycles must burn lights”. We only have a few screens: <strong>Main</strong>, <strong>Settings</strong>, <strong>About</strong>.
The settings screen you should see to the left, and the main screen should be to the
right of this text.
</p>
        <p>
On the about screen we let the user choose the color they would like the screen to
“burn” at. By default we have chosen white to maximize brightness.
</p>
        <p>
We used N<strong>umericUpDown</strong> controls to maximize usability, this allows
user to choose the soft input panel or the control directly to set the color amounts.
</p>
        <p>
          <strong>Save Color Values</strong>
        </p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 55.18%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 76px; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">int</span> red
= (<span style="color: #0000ff">int</span>) numericUpDownRed.Value;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span>
              <span style="color: #0000ff">int</span> green
= (<span style="color: #0000ff">int</span>) numericUpDownGreen.Value;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span>
              <span style="color: #0000ff">int</span> blue
= (<span style="color: #0000ff">int</span>) numericUpDownBlue.Value;</pre>
          </div>
        </div>
        <p>
 
</p>
        <p>
          <strong>Get Color Values</strong>
        </p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 83.08%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 84px; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span> numericUpDownRed.Value
= (<span style="color: #0000ff">int</span>) Global.Color.R;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span> numericUpDownGreen.Value
= (<span style="color: #0000ff">int</span>) Global.Color.G;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span> numericUpDownBlue.Value
= (<span style="color: #0000ff">int</span>) Global.Color.B;</pre>
          </div>
        </div>
        <p>
          <strong>Possibilities:</strong>
        </p>
        <p>
The biggest need this application has is a way for the user to save their color preference.
Right now if the application is closed the color will go back to the default color
of white. Another great feature would be to make the application to go full screen
and hide both the title bar and the menu. One last addition would be code to maximize
the screen brightness setting in Control Panel.
</p>
        <p>
Download executable: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileFlashLight.CAB" target="_blank">mobileFlashlight.cab</a></p>
        <p>
Download Source Code: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileFlashLight.zip" target="_blank">mobileFlashlight.zip</a></p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
Want more? What else would you like to see? Time’s running out on submitting ideas.
Be sure to get yours in soon!
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=f169d2c3-2bff-42fb-bc06-9ae52b335e4d" />
      </body>
      <title>30 Days of .NET [Windows Mobile Applications] &amp;ndash; Day 24: Mobile Flashlight</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,f169d2c3-2bff-42fb-bc06-9ae52b335e4d.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/06/24/30DaysOfNETWindowsMobileApplicationsNdashDay24MobileFlashlight.aspx</link>
      <pubDate>Tue, 24 Jun 2008 19:46:00 GMT</pubDate>
      <description>&lt;p&gt;
Today I am in Atlanta, GA with Brian Hitney and Glen Gordon. We are presenting &lt;a href="http://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&amp;amp;EventID=1032378497" target="_blank"&gt;Mobility
Roadshow: Programming for Windows Mobile&lt;/a&gt;. We had a long drive last night, and
will have another long drive back to Florence, SC tonight. So I choose not bite off
anything too intense today.
&lt;/p&gt;
&lt;p&gt;
Many people today carry mini-flashlights on the end of their key chain. Apparently
there is a need for this type of device because many stores sell them near the cash
registers in the checkout lines. I wonder why these mini-flashlights are so popular
when almost everyone has a mobile phone today. Maybe it is because the phone’s back
light is not bright enough.
&lt;/p&gt;
&lt;p&gt;
Hmm, this got me thinking. Most Windows Mobile devices have large powerful screens,
maybe there is a way we could reuse our device as both a mobile phone and a mini-flashlight.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay23Mob_A3E3/image_2.png"&gt;&lt;img title="image" style="margin: 5px" height="454" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay23Mob_A3E3/image_thumb.png" width="293" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay23Mob_A3E3/image_4.png"&gt;&lt;img title="image" style="margin: 5px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay23Mob_A3E3/image_thumb_1.png" width="155" align="right" border="0" /&gt;&lt;/a&gt;Mobile
Flashlight&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The UI is simple but the task is simple. I considered using a watermark image for
the background or add a gradient to the background. With a goal of having as much
of the screen as bright as possible I think the simple solid color background was
the choice to make.
&lt;/p&gt;
&lt;p&gt;
We only have a few menu options: &lt;strong&gt;Burn&lt;/strong&gt;, &lt;strong&gt;Menu&lt;/strong&gt;, &lt;strong&gt;Settings&lt;/strong&gt;, &lt;strong&gt;About&lt;/strong&gt;,
and &lt;strong&gt;Exit&lt;/strong&gt;. I decided to use the term “Burn” like you see on road sign
saying “Motorcycles must burn lights”. We only have a few screens: &lt;strong&gt;Main&lt;/strong&gt;, &lt;strong&gt;Settings&lt;/strong&gt;, &lt;strong&gt;About&lt;/strong&gt;.
The settings screen you should see to the left, and the main screen should be to the
right of this text.
&lt;/p&gt;
&lt;p&gt;
On the about screen we let the user choose the color they would like the screen to
“burn” at. By default we have chosen white to maximize brightness.
&lt;/p&gt;
&lt;p&gt;
We used N&lt;strong&gt;umericUpDown&lt;/strong&gt; controls to maximize usability, this allows
user to choose the soft input panel or the control directly to set the color amounts.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Save Color Values&lt;/strong&gt;
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 55.18%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; height: 76px; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; red
= (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;) numericUpDownRed.Value;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; green
= (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;) numericUpDownGreen.Value;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; blue
= (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;) numericUpDownBlue.Value;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Get Color Values&lt;/strong&gt;
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 83.08%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; height: 84px; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; numericUpDownRed.Value
= (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;) Global.Color.R;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt; numericUpDownGreen.Value
= (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;) Global.Color.G;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt; numericUpDownBlue.Value
= (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;) Global.Color.B;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;Possibilities:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The biggest need this application has is a way for the user to save their color preference.
Right now if the application is closed the color will go back to the default color
of white. Another great feature would be to make the application to go full screen
and hide both the title bar and the menu. One last addition would be code to maximize
the screen brightness setting in Control Panel.
&lt;/p&gt;
&lt;p&gt;
Download executable: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileFlashLight.CAB" target="_blank"&gt;mobileFlashlight.cab&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Download Source Code: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileFlashLight.zip" target="_blank"&gt;mobileFlashlight.zip&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Want more? What else would you like to see? Time’s running out on submitting ideas.
Be sure to get yours in soon!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=f169d2c3-2bff-42fb-bc06-9ae52b335e4d" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,f169d2c3-2bff-42fb-bc06-9ae52b335e4d.aspx</comments>
      <category>.Net Programming</category>
      <category>30 Day of .NET</category>
      <category>compact framework</category>
      <category>cool</category>
      <category>MVP</category>
      <category>pocket pc</category>
      <category>programming</category>
      <category>smartphone</category>
      <category>windows mobile</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=e7ae506d-27ad-4446-9ec2-98fd7eb1da67</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,e7ae506d-27ad-4446-9ec2-98fd7eb1da67.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,e7ae506d-27ad-4446-9ec2-98fd7eb1da67.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e7ae506d-27ad-4446-9ec2-98fd7eb1da67</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Information is power. And with the .NET Compact Framework we can have all the information
we want. Windows Mobile has many ways to get details about the device our application
is running on. Hands down my favorite is the State and Notification Broker. In a word
it <strong>ROCKS</strong>! You can use it to find out any number of things and you
can use it to notify us when information we care about change state. 
</p>
        <p>
There are pieces of information that are so important in their own right, they could
be used to create an application just to monitor and read that one detail. The first
one that comes to mind is battery state.
</p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay23Mob_F8E7/image_2.png">
            <img title="image" style="margin: 5px" height="454" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay23Mob_F8E7/image_thumb.png" width="293" align="left" border="0" />
          </a>
        </p>
        <p>
        </p>
        <p>
          <strong>MobileInfo</strong>
        </p>
        <p>
I thought of a few ways I could make this application flashy, but decided that might
get in the way of the facts. Sometimes a simple notepad like application is the most
beautiful application. <strong>Form and function were meant to be together, but sometimes
forms steals the show, and function is what everyone came to see.</strong></p>
        <p>
So instead we have a WebBrowser control with a simple text listing of the device’s
most important details. I decided to use a WebBrowser control in case I ever did want
to use more advanced text format.
</p>
        <p>
We stick to our guns about keeping control simple and intuitive. We have a great menu
with only a few options: <strong>Refresh</strong>, <strong>About</strong>, and <strong>Exit</strong>.
</p>
        <p>
          <strong>RefreshData Method</strong>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 59.17%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 190px; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">private</span>
              <span style="color: #0000ff">void</span> RefreshData()</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span> StringBuilder
sb = <span style="color: #0000ff">new</span> StringBuilder();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 5:</span> sb.Append(<span style="color: #006080">"&lt;b&gt;Active
Application:&lt;/b&gt;"</span>).Append(<span style="color: #006080">"&lt;br/&gt;"</span>);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 6:</span> sb.AppendFormat(<span style="color: #006080">"'{0}'"</span>,
SystemState.ActiveApplication).Append(<span style="color: #006080">"&lt;br/&gt;"</span>).Append(<span style="color: #006080">"&lt;br/&gt;"</span>).Append(<span style="color: #006080">"&lt;br/&gt;"</span>);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 7:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 8:</span> ...</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 9:</span> }</pre>
          </div>
        </div>
        <p>
          <strong>Possibilities:</strong>
        </p>
        <p>
You can never have too much of a good thing. We have twenty pieces of information
here for users to enjoy. How about a hundred? Or how about a quick and easy search
bar? And the UI needs to be simple but it could be better.
</p>
        <p>
Download executable: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileInfo.CAB" target="_blank">mobileInfo.cab</a></p>
        <p>
Download Source Code: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileInfo.zip" target="_blank">mobileInfo.zip</a></p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
Want more? What else would you like to see? Time’s running out on submitting ideas.
Be sure to get yours in soon!
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=e7ae506d-27ad-4446-9ec2-98fd7eb1da67" />
      </body>
      <title>30 Days of .NET [Windows Mobile Applications] &amp;ndash; Day 23: MobileInfo</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,e7ae506d-27ad-4446-9ec2-98fd7eb1da67.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/06/24/30DaysOfNETWindowsMobileApplicationsNdashDay23MobileInfo.aspx</link>
      <pubDate>Tue, 24 Jun 2008 07:11:00 GMT</pubDate>
      <description>&lt;p&gt;
Information is power. And with the .NET Compact Framework we can have all the information
we want. Windows Mobile has many ways to get details about the device our application
is running on. Hands down my favorite is the State and Notification Broker. In a word
it &lt;strong&gt;ROCKS&lt;/strong&gt;! You can use it to find out any number of things and you
can use it to notify us when information we care about change state. 
&lt;/p&gt;
&lt;p&gt;
There are pieces of information that are so important in their own right, they could
be used to create an application just to monitor and read that one detail. The first
one that comes to mind is battery state.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay23Mob_F8E7/image_2.png"&gt;&lt;img title="image" style="margin: 5px" height="454" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay23Mob_F8E7/image_thumb.png" width="293" align="left" border="0" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;MobileInfo&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I thought of a few ways I could make this application flashy, but decided that might
get in the way of the facts. Sometimes a simple notepad like application is the most
beautiful application. &lt;strong&gt;Form and function were meant to be together, but sometimes
forms steals the show, and function is what everyone came to see.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
So instead we have a WebBrowser control with a simple text listing of the device’s
most important details. I decided to use a WebBrowser control in case I ever did want
to use more advanced text format.
&lt;/p&gt;
&lt;p&gt;
We stick to our guns about keeping control simple and intuitive. We have a great menu
with only a few options: &lt;strong&gt;Refresh&lt;/strong&gt;, &lt;strong&gt;About&lt;/strong&gt;, and &lt;strong&gt;Exit&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;RefreshData Method&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 59.17%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; height: 190px; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; RefreshData()&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt; StringBuilder
sb = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; StringBuilder();&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 4:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 5:&lt;/span&gt; sb.Append(&lt;span style="color: #006080"&gt;&amp;quot;&amp;lt;b&amp;gt;Active
Application:&amp;lt;/b&amp;gt;&amp;quot;&lt;/span&gt;).Append(&lt;span style="color: #006080"&gt;&amp;quot;&amp;lt;br/&amp;gt;&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 6:&lt;/span&gt; sb.AppendFormat(&lt;span style="color: #006080"&gt;&amp;quot;'{0}'&amp;quot;&lt;/span&gt;,
SystemState.ActiveApplication).Append(&lt;span style="color: #006080"&gt;&amp;quot;&amp;lt;br/&amp;gt;&amp;quot;&lt;/span&gt;).Append(&lt;span style="color: #006080"&gt;&amp;quot;&amp;lt;br/&amp;gt;&amp;quot;&lt;/span&gt;).Append(&lt;span style="color: #006080"&gt;&amp;quot;&amp;lt;br/&amp;gt;&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 7:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 8:&lt;/span&gt; ...&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 9:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;Possibilities:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
You can never have too much of a good thing. We have twenty pieces of information
here for users to enjoy. How about a hundred? Or how about a quick and easy search
bar? And the UI needs to be simple but it could be better.
&lt;/p&gt;
&lt;p&gt;
Download executable: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileInfo.CAB" target="_blank"&gt;mobileInfo.cab&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Download Source Code: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileInfo.zip" target="_blank"&gt;mobileInfo.zip&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Want more? What else would you like to see? Time’s running out on submitting ideas.
Be sure to get yours in soon!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=e7ae506d-27ad-4446-9ec2-98fd7eb1da67" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,e7ae506d-27ad-4446-9ec2-98fd7eb1da67.aspx</comments>
      <category>.Net Programming</category>
      <category>30 Day of .NET</category>
      <category>compact framework</category>
      <category>cool</category>
      <category>MVP</category>
      <category>pocket pc</category>
      <category>programming</category>
      <category>smartphone</category>
      <category>windows mobile</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=3d678cf9-e0c9-4559-bcff-be0cbd2b2624</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,3d678cf9-e0c9-4559-bcff-be0cbd2b2624.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,3d678cf9-e0c9-4559-bcff-be0cbd2b2624.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=3d678cf9-e0c9-4559-bcff-be0cbd2b2624</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
Yeah, we have made it through week three of my 30 Days of .NET challenge. So far,
we have 22 applications for 22 days. Thanks for your support!
</p>
        <p>
If you missed the week one recap here it is: <a href="http://www.cjcraft.com/blog/2008/06/09/30DaysOfNETWindowsMobileApplicationsWeekOne.aspx">30
Days of .NET [Windows Mobile Applications] - Week One</a>.
</p>
        <p>
If you missed the week two recap here it is: <a href="http://www.cjcraft.com/blog/2008/06/16/30DaysOfNETWindowsMobileApplicationsWeekTwo.aspx">30
Days of .NET [Windows Mobile Applications] - Week Two</a>.
</p>
        <p>
          <strong>What’s your favorite?</strong>
        </p>
        <p>
          <strong>
          </strong>
        </p>
        <table cellspacing="0" cellpadding="2" width="496" border="0">
          <tbody>
            <tr>
              <td valign="top" width="170">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_2.png">
                  <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_thumb.png" width="155" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="108">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_4.png">
                  <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_thumb_1.png" width="155" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="108">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_6.png">
                  <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_thumb_2.png" width="155" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="108">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_8.png">
                  <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_thumb_3.png" width="155" align="left" border="0" />
                </a>
              </td>
            </tr>
            <tr>
              <td valign="top" width="174">
                <a href="http://www.cjcraft.com/blog/2008/06/16/30DaysOfNETWindowsMobileApplicationsDay15MobileSMSRemote.aspx">Mobile
SMS Remote</a>
              </td>
              <td valign="top" width="107">
                <a href="http://www.cjcraft.com/blog/2008/06/17/30DaysOfNETWindowsMobileApplicationsDay16SMSLogger.aspx">SMS
Logger</a>
              </td>
              <td valign="top" width="112">
                <a href="http://www.cjcraft.com/blog/2008/06/18/30DaysOfNETWindowsMobileApplicationsDay17LunchOMatic.aspx">Lunch-O-Matic</a>
              </td>
              <td valign="top" width="115">
                <a href="http://www.cjcraft.com/blog/2008/06/19/30DaysOfNETWindowsMobileApplicationsDay18MobileWeather.aspx">Mobile
Weather</a>
              </td>
            </tr>
          </tbody>
        </table>
        <p>
We get around, don’t we? SMS, RSS, GPS, Camera API, and more!
</p>
        <table cellspacing="0" cellpadding="2" width="597" border="0">
          <tbody>
            <tr>
              <td valign="top" width="175">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_10.png">
                  <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_thumb_4.png" width="155" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="140">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_12.png">
                  <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_thumb_5.png" width="155" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="140">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_14.png">
                  <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_thumb_6.png" width="155" align="left" border="0" />
                </a>
              </td>
              <td valign="top" width="140">
                <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_16.png">
                  <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_thumb_7.png" width="156" align="left" border="0" />
                </a>
              </td>
            </tr>
            <tr>
              <td valign="top" width="178">
                <a href="http://www.cjcraft.com/blog/2008/06/20/30DaysOfNETWindowsMobileApplicationsDay19MobileSpeedometer.aspx">Mobile
Speedometer</a>
              </td>
              <td valign="top" width="139">
                <a href="http://www.cjcraft.com/blog/2008/06/21/30DaysOfNETWindowsMobileApplicationsDay20MobileAltimeter.aspx">Mobile
Altimeter</a>
              </td>
              <td valign="top" width="140">
                <a href="http://www.cjcraft.com/blog/2008/06/22/30DaysOfNETWindowsMobileApplicationsDay21MobileSketcher.aspx">Mobile
Sketcher</a>
              </td>
              <td valign="top" width="140">
                <a href="http://www.cjcraft.com/blog/2008/06/22/30DaysOfNETWindowsMobileApplicationsDay22GPSClock.aspx">What
will be next?</a>
              </td>
            </tr>
          </tbody>
        </table>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <strong>
          </strong>
        </p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
Got an idea? Got some feedback? Share it? Thanks!
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=3d678cf9-e0c9-4559-bcff-be0cbd2b2624" />
      </body>
      <title>30 Days of .NET [Windows Mobile Applications] - Week Three</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,3d678cf9-e0c9-4559-bcff-be0cbd2b2624.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/06/22/30DaysOfNETWindowsMobileApplicationsWeekThree.aspx</link>
      <pubDate>Sun, 22 Jun 2008 23:31:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Yeah, we have made it through week three of my 30 Days of .NET challenge. So far,
we have 22 applications for 22 days. Thanks for your support!
&lt;/p&gt;
&lt;p&gt;
If you missed the week one recap here it is: &lt;a href="http://www.cjcraft.com/blog/2008/06/09/30DaysOfNETWindowsMobileApplicationsWeekOne.aspx"&gt;30
Days of .NET [Windows Mobile Applications] - Week One&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
If you missed the week two recap here it is: &lt;a href="http://www.cjcraft.com/blog/2008/06/16/30DaysOfNETWindowsMobileApplicationsWeekTwo.aspx"&gt;30
Days of .NET [Windows Mobile Applications] - Week Two&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;What’s your favorite?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="2" width="496" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top" width="170"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_thumb.png" width="155" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="108"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_4.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_thumb_1.png" width="155" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="108"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_6.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_thumb_2.png" width="155" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="108"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_8.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_thumb_3.png" width="155" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="174"&gt;
&lt;a href="http://www.cjcraft.com/blog/2008/06/16/30DaysOfNETWindowsMobileApplicationsDay15MobileSMSRemote.aspx"&gt;Mobile
SMS Remote&lt;/a&gt;&lt;/td&gt;
&lt;td valign="top" width="107"&gt;
&lt;a href="http://www.cjcraft.com/blog/2008/06/17/30DaysOfNETWindowsMobileApplicationsDay16SMSLogger.aspx"&gt;SMS
Logger&lt;/a&gt;&lt;/td&gt;
&lt;td valign="top" width="112"&gt;
&lt;a href="http://www.cjcraft.com/blog/2008/06/18/30DaysOfNETWindowsMobileApplicationsDay17LunchOMatic.aspx"&gt;Lunch-O-Matic&lt;/a&gt;&lt;/td&gt;
&lt;td valign="top" width="115"&gt;
&lt;a href="http://www.cjcraft.com/blog/2008/06/19/30DaysOfNETWindowsMobileApplicationsDay18MobileWeather.aspx"&gt;Mobile
Weather&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
We get around, don’t we? SMS, RSS, GPS, Camera API, and more!
&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="2" width="597" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top" width="175"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_10.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_thumb_4.png" width="155" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="140"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_12.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_thumb_5.png" width="155" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="140"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_14.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_thumb_6.png" width="155" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;td valign="top" width="140"&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_16.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsWeekThre_DA6F/image_thumb_7.png" width="156" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="178"&gt;
&lt;a href="http://www.cjcraft.com/blog/2008/06/20/30DaysOfNETWindowsMobileApplicationsDay19MobileSpeedometer.aspx"&gt;Mobile
Speedometer&lt;/a&gt;&lt;/td&gt;
&lt;td valign="top" width="139"&gt;
&lt;a href="http://www.cjcraft.com/blog/2008/06/21/30DaysOfNETWindowsMobileApplicationsDay20MobileAltimeter.aspx"&gt;Mobile
Altimeter&lt;/a&gt;&lt;/td&gt;
&lt;td valign="top" width="140"&gt;
&lt;a href="http://www.cjcraft.com/blog/2008/06/22/30DaysOfNETWindowsMobileApplicationsDay21MobileSketcher.aspx"&gt;Mobile
Sketcher&lt;/a&gt;&lt;/td&gt;
&lt;td valign="top" width="140"&gt;
&lt;a href="http://www.cjcraft.com/blog/2008/06/22/30DaysOfNETWindowsMobileApplicationsDay22GPSClock.aspx"&gt;What
will be next?&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Got an idea? Got some feedback? Share it? Thanks!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=3d678cf9-e0c9-4559-bcff-be0cbd2b2624" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,3d678cf9-e0c9-4559-bcff-be0cbd2b2624.aspx</comments>
      <category>.Net Programming</category>
      <category>30 Day of .NET</category>
      <category>compact framework</category>
      <category>cool</category>
      <category>pocket pc</category>
      <category>programming</category>
      <category>smartphone</category>
      <category>windows mobile</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=2cca3ac9-30b8-4ea3-8e91-6d2e93e5b002</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,2cca3ac9-30b8-4ea3-8e91-6d2e93e5b002.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,2cca3ac9-30b8-4ea3-8e91-6d2e93e5b002.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=2cca3ac9-30b8-4ea3-8e91-6d2e93e5b002</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
I couldn’t resist creating another GPS related mobile application. One of the neat
pieces of data you get from your GPS device is <strong>time</strong>. This is great.
It is like having one of the clocks that can update itself over the air by reading
data transmitted from various atomic clocks throughout the world. Many phones today
have the ability to update their time by connecting to the OEM’s time servers, but
not all. And there are still lots of Windows Mobile classic devices in the world that
do not have cellular capabilities.
</p>
        <p>
Vista has the ability to update its time by using a feature called <a href="http://windowshelp.microsoft.com/Windows/en-US/help/549bd2ed-8d98-4b4f-b600-b2fbfdef661f1033.mspx">Internet
Time</a>. Basically Vista connects to <a href="http://www.pool.ntp.org/">time.windows.com</a> and
reads a <a href="http://en.wikipedia.org/wiki/Network_Time_Protocol">Network Time
Protocol</a> server.
</p>
        <p>
 
</p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay22GPS_D65F/image_2.png">
            <img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="455" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay22GPS_D65F/image_thumb.png" width="293" align="left" border="0" />
          </a>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <strong>GPS Clock</strong>
        </p>
        <p>
Our user interface is simple and direct. We are using a nice graphic to adds some
visual zing to the application. At the top of the screen we show the user their <strong>current
device time</strong> and their <strong>current GPS time</strong>.
</p>
        <p>
This allows the user to tell at a glance if they need to update their device’s time
using the <strong>Update</strong> menu option.
</p>
        <p>
On the menu we have added some simple settings features: <strong>GPS Start</strong>, <strong>GPS
Stop</strong>, <strong>About</strong>, and <strong>Exit</strong>.
</p>
        <p>
This is one of those Web 2.0 ideas where an application does one thing but does it
very well. Sometimes these are the best apps. In this case, our application provides
a bride for GPS time data to become device time data.
</p>
        <p>
Somtimes that’s all it takes to make a user happy.
</p>
        <p>
          <strong>UpdateData Method:</strong>
        </p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 49.09%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 210px; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">void</span> UpdateData(<span style="color: #0000ff">object</span> sender,
System.EventArgs args)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span>
              <span style="color: #0000ff">if</span> (gps.Opened)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 5:</span>
              <span style="color: #0000ff">if</span> (position
!= <span style="color: #0000ff">null</span>)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 6:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 7:</span>
              <span style="color: #0000ff">if</span> (position.TimeValid)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 8:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 9:</span> gpsTime
= position.Time;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 10:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 11:</span> labelCurrentGpsDate.Text
= gpsTime.ToLongDateString();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 12:</span> labelCurrentGpsTime.Text
= gpsTime.ToLongTimeString();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 13:</span> }</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 14:</span> }</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 15:</span> }</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 16:</span> }</pre>
          </div>
        </div>
        <p>
 
</p>
        <p>
          <strong>UpdateTime Method:</strong>
        </p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 70.41%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 210px; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">private</span>
              <span style="color: #0000ff">struct</span> SYSTEMTIME</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span>
              <span style="color: #0000ff">public</span>
              <span style="color: #0000ff">short</span> Year;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span>
              <span style="color: #0000ff">public</span>
              <span style="color: #0000ff">short</span> Month;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 5:</span>
              <span style="color: #0000ff">public</span>
              <span style="color: #0000ff">short</span> DayOfWeek;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 6:</span>
              <span style="color: #0000ff">public</span>
              <span style="color: #0000ff">short</span> Day;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 7:</span>
              <span style="color: #0000ff">public</span>
              <span style="color: #0000ff">short</span> Hour;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 8:</span>
              <span style="color: #0000ff">public</span>
              <span style="color: #0000ff">short</span> Minute;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 9:</span>
              <span style="color: #0000ff">public</span>
              <span style="color: #0000ff">short</span> Second;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 10:</span>
              <span style="color: #0000ff">public</span>
              <span style="color: #0000ff">short</span> Milliseconds;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 11:</span> }</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 12:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 13:</span> [DllImport(<span style="color: #006080">"coredll.dll"</span>)]</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 14:</span>
              <span style="color: #0000ff">private</span>
              <span style="color: #0000ff">static</span>
              <span style="color: #0000ff">extern</span>
              <span style="color: #0000ff">bool</span> SetSystemTime(<span style="color: #0000ff">ref</span> SYSTEMTIME
time);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 15:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 16:</span>
              <span style="color: #0000ff">private</span>
              <span style="color: #0000ff">void</span> UpdateTime()</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 17:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 18:</span> DateTime
idag = gpsTime.ToUniversalTime();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 19:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 20:</span> SYSTEMTIME
s = <span style="color: #0000ff">new</span> SYSTEMTIME();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 21:</span> s.Year
= (<span style="color: #0000ff">short</span>) idag.Year;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 22:</span> s.Month
= (<span style="color: #0000ff">short</span>) idag.Month;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 23:</span> s.DayOfWeek
= (<span style="color: #0000ff">short</span>) idag.DayOfWeek;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 24:</span> s.Day
= (<span style="color: #0000ff">short</span>) idag.Day;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 25:</span> s.Hour
= (<span style="color: #0000ff">short</span>) idag.Hour;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 26:</span> s.Minute
= (<span style="color: #0000ff">short</span>) idag.Minute;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 27:</span> s.Second
= (<span style="color: #0000ff">short</span>) idag.Second;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 28:</span> s.Milliseconds
= (<span style="color: #0000ff">short</span>) idag.Millisecond;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 29:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 30:</span> SetSystemTime(<span style="color: #0000ff">ref</span> s);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 31:</span> }</pre>
          </div>
        </div>
        <p>
          <strong>Possibilities:</strong>
        </p>
        <p>
How about changing the color of the date and time if they are more than five minutes
off? Simple feature to add but really helps the user. And that’s what matters.
</p>
        <p>
Download executable: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/GpsClock.CAB">gpsClock.cab</a></p>
        <p>
Download Source Code: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/GPSClock.zip">gpsClock.zip</a></p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
Want more? What else would you like to see? Time’s running out on submitting ideas.
Be sure to get yours in soon!
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=2cca3ac9-30b8-4ea3-8e91-6d2e93e5b002" />
      </body>
      <title>30 Days of .NET [Windows Mobile Applications] - Day 22: GPS Clock</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,2cca3ac9-30b8-4ea3-8e91-6d2e93e5b002.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/06/22/30DaysOfNETWindowsMobileApplicationsDay22GPSClock.aspx</link>
      <pubDate>Sun, 22 Jun 2008 23:16:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
I couldn’t resist creating another GPS related mobile application. One of the neat
pieces of data you get from your GPS device is &lt;strong&gt;time&lt;/strong&gt;. This is great.
It is like having one of the clocks that can update itself over the air by reading
data transmitted from various atomic clocks throughout the world. Many phones today
have the ability to update their time by connecting to the OEM’s time servers, but
not all. And there are still lots of Windows Mobile classic devices in the world that
do not have cellular capabilities.
&lt;/p&gt;
&lt;p&gt;
Vista has the ability to update its time by using a feature called &lt;a href="http://windowshelp.microsoft.com/Windows/en-US/help/549bd2ed-8d98-4b4f-b600-b2fbfdef661f1033.mspx"&gt;Internet
Time&lt;/a&gt;. Basically Vista connects to &lt;a href="http://www.pool.ntp.org/"&gt;time.windows.com&lt;/a&gt; and
reads a &lt;a href="http://en.wikipedia.org/wiki/Network_Time_Protocol"&gt;Network Time
Protocol&lt;/a&gt; server.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay22GPS_D65F/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="455" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay22GPS_D65F/image_thumb.png" width="293" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;GPS Clock&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Our user interface is simple and direct. We are using a nice graphic to adds some
visual zing to the application. At the top of the screen we show the user their &lt;strong&gt;current
device time&lt;/strong&gt; and their &lt;strong&gt;current GPS time&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
This allows the user to tell at a glance if they need to update their device’s time
using the &lt;strong&gt;Update&lt;/strong&gt; menu option.
&lt;/p&gt;
&lt;p&gt;
On the menu we have added some simple settings features: &lt;strong&gt;GPS Start&lt;/strong&gt;, &lt;strong&gt;GPS
Stop&lt;/strong&gt;, &lt;strong&gt;About&lt;/strong&gt;, and &lt;strong&gt;Exit&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
This is one of those Web 2.0 ideas where an application does one thing but does it
very well. Sometimes these are the best apps. In this case, our application provides
a bride for GPS time data to become device time data.
&lt;/p&gt;
&lt;p&gt;
Somtimes that’s all it takes to make a user happy.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;UpdateData Method:&lt;/strong&gt;
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 49.09%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; height: 210px; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; UpdateData(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender,
System.EventArgs args)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (gps.Opened)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 4:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (position
!= &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 6:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 7:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (position.TimeValid)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 8:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 9:&lt;/span&gt; gpsTime
= position.Time;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 10:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 11:&lt;/span&gt; labelCurrentGpsDate.Text
= gpsTime.ToLongDateString();&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 12:&lt;/span&gt; labelCurrentGpsTime.Text
= gpsTime.ToLongTimeString();&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 13:&lt;/span&gt; }&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 14:&lt;/span&gt; }&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 15:&lt;/span&gt; }&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 16:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;UpdateTime Method:&lt;/strong&gt;
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 70.41%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; height: 210px; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;struct&lt;/span&gt; SYSTEMTIME&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;short&lt;/span&gt; Year;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 4:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;short&lt;/span&gt; Month;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;short&lt;/span&gt; DayOfWeek;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 6:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;short&lt;/span&gt; Day;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 7:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;short&lt;/span&gt; Hour;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 8:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;short&lt;/span&gt; Minute;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 9:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;short&lt;/span&gt; Second;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 10:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;short&lt;/span&gt; Milliseconds;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 11:&lt;/span&gt; }&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 12:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 13:&lt;/span&gt; [DllImport(&lt;span style="color: #006080"&gt;&amp;quot;coredll.dll&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 14:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;extern&lt;/span&gt; &lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; SetSystemTime(&lt;span style="color: #0000ff"&gt;ref&lt;/span&gt; SYSTEMTIME
time);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 15:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 16:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; UpdateTime()&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 17:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 18:&lt;/span&gt; DateTime
idag = gpsTime.ToUniversalTime();&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 19:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 20:&lt;/span&gt; SYSTEMTIME
s = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SYSTEMTIME();&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 21:&lt;/span&gt; s.Year
= (&lt;span style="color: #0000ff"&gt;short&lt;/span&gt;) idag.Year;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 22:&lt;/span&gt; s.Month
= (&lt;span style="color: #0000ff"&gt;short&lt;/span&gt;) idag.Month;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 23:&lt;/span&gt; s.DayOfWeek
= (&lt;span style="color: #0000ff"&gt;short&lt;/span&gt;) idag.DayOfWeek;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 24:&lt;/span&gt; s.Day
= (&lt;span style="color: #0000ff"&gt;short&lt;/span&gt;) idag.Day;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 25:&lt;/span&gt; s.Hour
= (&lt;span style="color: #0000ff"&gt;short&lt;/span&gt;) idag.Hour;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 26:&lt;/span&gt; s.Minute
= (&lt;span style="color: #0000ff"&gt;short&lt;/span&gt;) idag.Minute;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 27:&lt;/span&gt; s.Second
= (&lt;span style="color: #0000ff"&gt;short&lt;/span&gt;) idag.Second;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 28:&lt;/span&gt; s.Milliseconds
= (&lt;span style="color: #0000ff"&gt;short&lt;/span&gt;) idag.Millisecond;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 29:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 30:&lt;/span&gt; SetSystemTime(&lt;span style="color: #0000ff"&gt;ref&lt;/span&gt; s);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 31:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;Possibilities:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
How about changing the color of the date and time if they are more than five minutes
off? Simple feature to add but really helps the user. And that’s what matters.
&lt;/p&gt;
&lt;p&gt;
Download executable: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/GpsClock.CAB"&gt;gpsClock.cab&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Download Source Code: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/GPSClock.zip"&gt;gpsClock.zip&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Want more? What else would you like to see? Time’s running out on submitting ideas.
Be sure to get yours in soon!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=2cca3ac9-30b8-4ea3-8e91-6d2e93e5b002" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,2cca3ac9-30b8-4ea3-8e91-6d2e93e5b002.aspx</comments>
      <category>.Net Programming</category>
      <category>30 Day of .NET</category>
      <category>compact framework</category>
      <category>cool</category>
      <category>MVP</category>
      <category>pocket pc</category>
      <category>programming</category>
      <category>smartphone</category>
      <category>windows mobile</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=f10f3e92-b864-46b6-846f-997895ed7ef8</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,f10f3e92-b864-46b6-846f-997895ed7ef8.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,f10f3e92-b864-46b6-846f-997895ed7ef8.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f10f3e92-b864-46b6-846f-997895ed7ef8</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
        </p>
        <p>
The main goal of 30 Days of .NET was to create a series of applications, any of which,
a reader could take and use as a springboard to creating their first application.
Well that, and to have some fun along the way and get more people excited about mobile
development. A secondary goal of mine has been to show off various capabilities of
mobile devices like GPS, Bluetooth, and multimedia features. One feature we haven’t
covered so far is using a built-in camera.
</p>
        <p>
Today we will mark that item off our list…
</p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay21Mob_105D8/image_4.png">
            <img title="image" style="margin: 5px" height="455" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay21Mob_105D8/image_thumb_1.png" width="293" align="left" border="0" />
          </a>
        </p>
        <p>
          <strong>Mobile Sketcher</strong>
        </p>
        <p>
The goal is to create a basic drawing application, but add a mobile twist to it. On
the menu, I have added a menu item for selecting a picture using the select picture
dialog. The nice thing about the select picture dialog is it allows you to use your
camera to take a picture and then select it as your picture.
</p>
        <p>
In a way this application is a lot like the mobile signature capture application we
did a while back, but there are some important differences: picture selection support,
camera support, save file dialog support, and more. The business case for this application
is something like the following: an insurance agent arrives on the scene of an automotive
accident, she takes a picture using Mobile Sketcher and then adds notes and sketches
to the picture for claims processing.
</p>
        <p>
So users can select a picture from their device or take a picture and use it for their
background. And then they can draw and edit the picture using Mobile Sketcher. At
the bottom of the screen we allow user to select different colors for the pen’s ink:
red, orange, yellow, green, blue, brown, white, and black. Well okay, white is really
a light gray since white on white is hard to see.
</p>
        <p>
          <strong>SelectPicture Method:</strong>
        </p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 69.07%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 196px; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">private</span>
              <span style="color: #0000ff">void</span> SelectPicture()</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span> SelectPictureDialog
selectPictureDialog = <span style="color: #0000ff">new</span> SelectPictureDialog();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span> DialogResult
dialogResult = selectPictureDialog.ShowDialog();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 5:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 6:</span>
              <span style="color: #0000ff">if</span> (dialogResult
!= DialogResult.OK)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 7:</span>
              <span style="color: #0000ff">return</span>;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 8:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 9:</span> pictureBox.Image
= <span style="color: #0000ff">new</span> Bitmap(selectPictureDialog.FileName);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 10:</span> }</pre>
          </div>
        </div>
        <p>
          <strong>Possibilities:</strong>
        </p>
        <p>
There is lots of room for improvement with this application. Just think of all the
features most drawing programs have and there’s your list for improvements.
</p>
        <p>
Download executable: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileSketcher.CAB" target="_blank">mobileSketcher.cab</a></p>
        <p>
Download Source Code: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileSketcher.zip" target="_blank">mobileSketcher.zip</a></p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
Want more? What else would you like to see? The managed API for using a Window Mobile
camera is a great feature that is very powerful and very easy. Use it in your next
mobile application or your first.
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=f10f3e92-b864-46b6-846f-997895ed7ef8" />
      </body>
      <title>30 Days of .NET [Windows Mobile Applications] - Day 21: Mobile Sketcher</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,f10f3e92-b864-46b6-846f-997895ed7ef8.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/06/22/30DaysOfNETWindowsMobileApplicationsDay21MobileSketcher.aspx</link>
      <pubDate>Sun, 22 Jun 2008 06:17:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
The main goal of 30 Days of .NET was to create a series of applications, any of which,
a reader could take and use as a springboard to creating their first application.
Well that, and to have some fun along the way and get more people excited about mobile
development. A secondary goal of mine has been to show off various capabilities of
mobile devices like GPS, Bluetooth, and multimedia features. One feature we haven’t
covered so far is using a built-in camera.
&lt;/p&gt;
&lt;p&gt;
Today we will mark that item off our list…
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay21Mob_105D8/image_4.png"&gt;&lt;img title="image" style="margin: 5px" height="455" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay21Mob_105D8/image_thumb_1.png" width="293" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Mobile Sketcher&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The goal is to create a basic drawing application, but add a mobile twist to it. On
the menu, I have added a menu item for selecting a picture using the select picture
dialog. The nice thing about the select picture dialog is it allows you to use your
camera to take a picture and then select it as your picture.
&lt;/p&gt;
&lt;p&gt;
In a way this application is a lot like the mobile signature capture application we
did a while back, but there are some important differences: picture selection support,
camera support, save file dialog support, and more. The business case for this application
is something like the following: an insurance agent arrives on the scene of an automotive
accident, she takes a picture using Mobile Sketcher and then adds notes and sketches
to the picture for claims processing.
&lt;/p&gt;
&lt;p&gt;
So users can select a picture from their device or take a picture and use it for their
background. And then they can draw and edit the picture using Mobile Sketcher. At
the bottom of the screen we allow user to select different colors for the pen’s ink:
red, orange, yellow, green, blue, brown, white, and black. Well okay, white is really
a light gray since white on white is hard to see.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;SelectPicture Method:&lt;/strong&gt;
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 69.07%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; height: 196px; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; SelectPicture()&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt; SelectPictureDialog
selectPictureDialog = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SelectPictureDialog();&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 4:&lt;/span&gt; DialogResult
dialogResult = selectPictureDialog.ShowDialog();&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 5:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 6:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (dialogResult
!= DialogResult.OK)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 7:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;return&lt;/span&gt;;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 8:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 9:&lt;/span&gt; pictureBox.Image
= &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Bitmap(selectPictureDialog.FileName);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 10:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;Possibilities:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
There is lots of room for improvement with this application. Just think of all the
features most drawing programs have and there’s your list for improvements.
&lt;/p&gt;
&lt;p&gt;
Download executable: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileSketcher.CAB" target="_blank"&gt;mobileSketcher.cab&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Download Source Code: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileSketcher.zip" target="_blank"&gt;mobileSketcher.zip&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Want more? What else would you like to see? The managed API for using a Window Mobile
camera is a great feature that is very powerful and very easy. Use it in your next
mobile application or your first.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=f10f3e92-b864-46b6-846f-997895ed7ef8" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,f10f3e92-b864-46b6-846f-997895ed7ef8.aspx</comments>
      <category>.Net Programming</category>
      <category>30 Day of .NET</category>
      <category>compact framework</category>
      <category>cool</category>
      <category>MVP</category>
      <category>pocket pc</category>
      <category>programming</category>
      <category>smartphone</category>
      <category>windows mobile</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=5cd6f7c8-e248-465f-a3aa-af962e36e7f5</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,5cd6f7c8-e248-465f-a3aa-af962e36e7f5.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,5cd6f7c8-e248-465f-a3aa-af962e36e7f5.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5cd6f7c8-e248-465f-a3aa-af962e36e7f5</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
Yesterday, I had a really hard time between choosing to do a <a href="http://www.cjcraft.com/blog/2008/06/20/30DaysOfNETWindowsMobileApplicationsDay19MobileSpeedometer.aspx" target="_blank">Mobile
Speedometer</a> or a Mobile Altimeter. But another day gives us another opportunity,
and today we shall create the Mobile Altimeter.
</p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay20Mob_14531/image_2.png">
            <img title="image" style="margin: 5px" height="455" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay20Mob_14531/image_thumb.png" width="293" align="left" border="0" />
          </a>
        </p>
        <p>
        </p>
        <p>
          <strong>Mobile Altimeter</strong>
        </p>
        <p>
This will make the third application in the 30 Days of .NET series that has had targeted
GPS capabilities. We have created a <a href="http://www.cjcraft.com/blog/ct.ashx?id=403185cf-00fd-4b77-9f04-4d1bd660089e&amp;url=http%3a%2f%2fwww.cjcraft.com%2fblog%2f2008%2f06%2f04%2f30DaysOfNETWindowsMobileApplicationsDay03GPSCompass.aspx" target="_blank">compass</a>,
a <a href="http://www.cjcraft.com/blog/2008/06/20/30DaysOfNETWindowsMobileApplicationsDay19MobileSpeedometer.aspx" target="_blank">speedometer</a>,
and now a altimeter. And there are still dozens of applications we could create with
the GPS capabilities of Windows Mobile.
</p>
        <p>
This time I decided to a little more with the UI. We have a background that symbolizes
“altitude” which is appealing to end users. Plus it gives the program a lot of style
and class. On the left side of the screen if you look carefully, you will notice we
have an attitude ruler, which has a marker that rises one pixel for every foot higher
the device travels up to 180 feet.
</p>
        <p>
This simple feature really takes our application up to the next level. :D (Yeah, I
know: I’m terrible.)
</p>
        <p>
At the bottom of the screen we are allowing the user to read all the main stats off
the GPS so the application is even more useful. We show altitude in a large bold font
in the middle of the screen for impact.
</p>
        <p>
The main event: <strong>UpdateData</strong></p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 63.38%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 210px; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">void</span> UpdateData(<span style="color: #0000ff">object</span> sender,
System.EventArgs args)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span>
              <span style="color: #0000ff">if</span> (gps.Opened)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 5:</span>
              <span style="color: #0000ff">if</span> (position
!= <span style="color: #0000ff">null</span>)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 6:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 7:</span>
              <span style="color: #0000ff">if</span> (position.SeaLevelAltitudeValid)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 8:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 9:</span> labelAltitude.Text
= position.SeaLevelAltitude.ToString(<span style="color: #006080">"0.00ft"</span>);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 10:</span>
              <span style="color: #0000ff">if</span> (position.SeaLevelAltitude
&gt;= 0 &amp;&amp; position.SeaLevelAltitude &lt;= 180)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 11:</span> pictureBoxArrow.Top
= 173 - (<span style="color: #0000ff">int</span>) position.SeaLevelAltitude;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 12:</span>
              <span style="color: #0000ff">else</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 13:</span> pictureBoxArrow.Top
= 173;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 14:</span> }</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 15:</span> }</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 16:</span> }</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 17:</span> }</pre>
          </div>
        </div>
        <p>
          <strong>Possibilities:</strong>
        </p>
        <p>
I think a more realistic UI would be a great improvement. And the ability to switch
from miles to kilometers would be good too. If the odometer would track miles traveled
that would be an awesome enhancement.
</p>
        <p>
Download executable: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileAltimeter.CAB" target="_blank">mobileAltimeter.cab</a></p>
        <p>
Download Source Code: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileAltimeter.zip" target="_blank">mobileAltimeter.zip</a></p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
Want more? What else would you like to see? There’s been a lot of demand for GPS related
applications. Does that help?
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=5cd6f7c8-e248-465f-a3aa-af962e36e7f5" />
      </body>
      <title>30 Days of .NET [Windows Mobile Applications] - Day 20: Mobile Altimeter</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,5cd6f7c8-e248-465f-a3aa-af962e36e7f5.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/06/21/30DaysOfNETWindowsMobileApplicationsDay20MobileAltimeter.aspx</link>
      <pubDate>Sat, 21 Jun 2008 07:07:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Yesterday, I had a really hard time between choosing to do a &lt;a href="http://www.cjcraft.com/blog/2008/06/20/30DaysOfNETWindowsMobileApplicationsDay19MobileSpeedometer.aspx" target="_blank"&gt;Mobile
Speedometer&lt;/a&gt; or a Mobile Altimeter. But another day gives us another opportunity,
and today we shall create the Mobile Altimeter.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay20Mob_14531/image_2.png"&gt;&lt;img title="image" style="margin: 5px" height="455" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay20Mob_14531/image_thumb.png" width="293" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Mobile Altimeter&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
This will make the third application in the 30 Days of .NET series that has had targeted
GPS capabilities. We have created a &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=403185cf-00fd-4b77-9f04-4d1bd660089e&amp;amp;url=http%3a%2f%2fwww.cjcraft.com%2fblog%2f2008%2f06%2f04%2f30DaysOfNETWindowsMobileApplicationsDay03GPSCompass.aspx" target="_blank"&gt;compass&lt;/a&gt;,
a &lt;a href="http://www.cjcraft.com/blog/2008/06/20/30DaysOfNETWindowsMobileApplicationsDay19MobileSpeedometer.aspx" target="_blank"&gt;speedometer&lt;/a&gt;,
and now a altimeter. And there are still dozens of applications we could create with
the GPS capabilities of Windows Mobile.
&lt;/p&gt;
&lt;p&gt;
This time I decided to a little more with the UI. We have a background that symbolizes
“altitude” which is appealing to end users. Plus it gives the program a lot of style
and class. On the left side of the screen if you look carefully, you will notice we
have an attitude ruler, which has a marker that rises one pixel for every foot higher
the device travels up to 180 feet.
&lt;/p&gt;
&lt;p&gt;
This simple feature really takes our application up to the next level. :D (Yeah, I
know: I’m terrible.)
&lt;/p&gt;
&lt;p&gt;
At the bottom of the screen we are allowing the user to read all the main stats off
the GPS so the application is even more useful. We show altitude in a large bold font
in the middle of the screen for impact.
&lt;/p&gt;
&lt;p&gt;
The main event: &lt;strong&gt;UpdateData&lt;/strong&gt;
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 63.38%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; height: 210px; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; UpdateData(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender,
System.EventArgs args)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (gps.Opened)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 4:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (position
!= &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 6:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 7:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (position.SeaLevelAltitudeValid)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 8:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 9:&lt;/span&gt; labelAltitude.Text
= position.SeaLevelAltitude.ToString(&lt;span style="color: #006080"&gt;&amp;quot;0.00ft&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 10:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (position.SeaLevelAltitude
&amp;gt;= 0 &amp;amp;&amp;amp; position.SeaLevelAltitude &amp;lt;= 180)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 11:&lt;/span&gt; pictureBoxArrow.Top
= 173 - (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;) position.SeaLevelAltitude;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 12:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 13:&lt;/span&gt; pictureBoxArrow.Top
= 173;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 14:&lt;/span&gt; }&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 15:&lt;/span&gt; }&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 16:&lt;/span&gt; }&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 17:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;Possibilities:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I think a more realistic UI would be a great improvement. And the ability to switch
from miles to kilometers would be good too. If the odometer would track miles traveled
that would be an awesome enhancement.
&lt;/p&gt;
&lt;p&gt;
Download executable: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileAltimeter.CAB" target="_blank"&gt;mobileAltimeter.cab&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Download Source Code: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileAltimeter.zip" target="_blank"&gt;mobileAltimeter.zip&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Want more? What else would you like to see? There’s been a lot of demand for GPS related
applications. Does that help?
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=5cd6f7c8-e248-465f-a3aa-af962e36e7f5" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,5cd6f7c8-e248-465f-a3aa-af962e36e7f5.aspx</comments>
      <category>.Net Programming</category>
      <category>30 Day of .NET</category>
      <category>compact framework</category>
      <category>cool</category>
      <category>pocket pc</category>
      <category>programming</category>
      <category>smartphone</category>
      <category>windows mobile</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=123d7055-26d6-4697-85ad-423a477e870b</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,123d7055-26d6-4697-85ad-423a477e870b.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,123d7055-26d6-4697-85ad-423a477e870b.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=123d7055-26d6-4697-85ad-423a477e870b</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
After the last GPS related application, <a href="http://www.cjcraft.com/blog/2008/06/04/30DaysOfNETWindowsMobileApplicationsDay03GPSCompass.aspx" target="_blank">GPS
Compass</a>, I’ve been wanting to do another GPS focused application. This time I
figured we’d get in the driver’s seat with our friend: <strong><font color="#ff8000">SPEED</font></strong>.
</p>
        <p>
Gentlemen, start your engines…
</p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay19Mob_1315E/image_2.png">
            <img title="image" style="margin: 5px" height="455" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay19Mob_1315E/image_thumb.png" width="293" align="left" border="0" />
          </a>
        </p>
        <p>
          <strong>Mobile Speedometer</strong>
        </p>
        <p align="left">
The application is built off of  <a href="http://www.cjcraft.com/blog/ct.ashx?id=ec8761dd-a8df-40b2-a1b7-4d38600a658d&amp;url=http%3a%2f%2fwww.microsoft.com%2fdownloads%2fdetails.aspx%3ffamilyid%3d06111A3A-A651-4745-88EF-3D48091A390B" target="_blank">Windows
Mobile 6 SDK</a> included a <a href="http://www.cjcraft.com/blog/ct.ashx?id=ec8761dd-a8df-40b2-a1b7-4d38600a658d&amp;url=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fbb158699.aspx" target="_blank">GPS
Application</a> in the samples folder, <strong>C:\Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CS\GPS</strong>.
</p>
        <p align="left">
This uses the <a href="http://www.cjcraft.com/blog/ct.ashx?id=ec8761dd-a8df-40b2-a1b7-4d38600a658d&amp;url=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fms850332.aspx">GPS
Intermediate Driver</a>. If you are writing a location aware application for Windows
Mobile this is definitely the way to go. ;)
</p>
        <p align="left">
The main UI is located at the top of the screen. We have a simple speedometer graphic
in the background to add some flair to the application. On top of this we overlay
the current speed based off of information returned from the GPS device. We can also
use <a href="http://www.cjcraft.com/blog/ct.ashx?id=ec8761dd-a8df-40b2-a1b7-4d38600a658d&amp;url=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fbb158722.aspx" target="_blank">Fake
GPS</a> to simulate a GPS device.
</p>
        <p align="left">
Below this we have a readout of various GPS statistics that are updated continuously.
</p>
        <p align="left">
One thing to note is Speed may be return in knots which you will likely want to convert
to either miles or kilometers.
</p>
        <p align="left">
 
</p>
        <p align="left">
 
</p>
        <p align="left">
 
</p>
        <p align="left">
 
</p>
        <p align="left">
We just need to create a method something like UpdateData below.
</p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 57.64%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 210px; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">void</span> UpdateData(<span style="color: #0000ff">object</span> sender,
System.EventArgs args)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span>
              <span style="color: #0000ff">if</span> (gps.Opened)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 5:</span>
              <span style="color: #0000ff">if</span> (position
!= <span style="color: #0000ff">null</span>)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 6:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 7:</span>
              <span style="color: #0000ff">if</span> (position.SpeedValid)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 8:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 9:</span> labelSpeed.Text
= (position.Speed/1.15077945).ToString(<span style="color: #006080">"0.00"</span>);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 10:</span> }</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 11:</span> }</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 12:</span> }</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 13:</span> }</pre>
          </div>
        </div>
        <p>
          <strong>Possibilities:</strong>
        </p>
        <p>
I think a more realistic UI would be a great improvement. And the ability to switch
from miles to kilometers would be good too. If the odometer would track miles traveled
that would be an awesome enhancement.
</p>
        <p>
Download executable: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileSpeedometer.CAB" target="_blank">mobileSpeedometer.cab</a></p>
        <p>
Download Source Code: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileSpeedometer.zip" target="_blank">mobileSpeedometer.zip</a></p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
Want more? What else would you like to see?
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=123d7055-26d6-4697-85ad-423a477e870b" />
      </body>
      <title>30 Days of .NET [Windows Mobile Applications] - Day 19: Mobile Speedometer</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,123d7055-26d6-4697-85ad-423a477e870b.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/06/20/30DaysOfNETWindowsMobileApplicationsDay19MobileSpeedometer.aspx</link>
      <pubDate>Fri, 20 Jun 2008 05:53:00 GMT</pubDate>
      <description>&lt;p&gt;
After the last GPS related application, &lt;a href="http://www.cjcraft.com/blog/2008/06/04/30DaysOfNETWindowsMobileApplicationsDay03GPSCompass.aspx" target="_blank"&gt;GPS
Compass&lt;/a&gt;, I’ve been wanting to do another GPS focused application. This time I
figured we’d get in the driver’s seat with our friend: &lt;strong&gt;&lt;font color="#ff8000"&gt;SPEED&lt;/font&gt;&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
Gentlemen, start your engines…
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay19Mob_1315E/image_2.png"&gt;&lt;img title="image" style="margin: 5px" height="455" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay19Mob_1315E/image_thumb.png" width="293" align="left" border="0" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Mobile Speedometer&lt;/strong&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
The application is built off of&amp;#160; &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=ec8761dd-a8df-40b2-a1b7-4d38600a658d&amp;amp;url=http%3a%2f%2fwww.microsoft.com%2fdownloads%2fdetails.aspx%3ffamilyid%3d06111A3A-A651-4745-88EF-3D48091A390B" target="_blank"&gt;Windows
Mobile 6 SDK&lt;/a&gt; included a &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=ec8761dd-a8df-40b2-a1b7-4d38600a658d&amp;amp;url=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fbb158699.aspx" target="_blank"&gt;GPS
Application&lt;/a&gt; in the samples folder, &lt;strong&gt;C:\Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CS\GPS&lt;/strong&gt;.
&lt;/p&gt;
&lt;p align="left"&gt;
This uses the &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=ec8761dd-a8df-40b2-a1b7-4d38600a658d&amp;amp;url=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fms850332.aspx"&gt;GPS
Intermediate Driver&lt;/a&gt;. If you are writing a location aware application for Windows
Mobile this is definitely the way to go. ;)
&lt;/p&gt;
&lt;p align="left"&gt;
The main UI is located at the top of the screen. We have a simple speedometer graphic
in the background to add some flair to the application. On top of this we overlay
the current speed based off of information returned from the GPS device. We can also
use &lt;a href="http://www.cjcraft.com/blog/ct.ashx?id=ec8761dd-a8df-40b2-a1b7-4d38600a658d&amp;amp;url=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fbb158722.aspx" target="_blank"&gt;Fake
GPS&lt;/a&gt; to simulate a GPS device.
&lt;/p&gt;
&lt;p align="left"&gt;
Below this we have a readout of various GPS statistics that are updated continuously.
&lt;/p&gt;
&lt;p align="left"&gt;
One thing to note is Speed may be return in knots which you will likely want to convert
to either miles or kilometers.
&lt;/p&gt;
&lt;p align="left"&gt;
&amp;#160;
&lt;/p&gt;
&lt;p align="left"&gt;
&amp;#160;
&lt;/p&gt;
&lt;p align="left"&gt;
&amp;#160;
&lt;/p&gt;
&lt;p align="left"&gt;
&amp;#160;
&lt;/p&gt;
&lt;p align="left"&gt;
We just need to create a method something like UpdateData below.
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 57.64%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; height: 210px; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; UpdateData(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender,
System.EventArgs args)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (gps.Opened)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 4:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (position
!= &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 6:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 7:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (position.SpeedValid)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 8:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 9:&lt;/span&gt; labelSpeed.Text
= (position.Speed/1.15077945).ToString(&lt;span style="color: #006080"&gt;&amp;quot;0.00&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 10:&lt;/span&gt; }&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 11:&lt;/span&gt; }&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 12:&lt;/span&gt; }&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 13:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;Possibilities:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I think a more realistic UI would be a great improvement. And the ability to switch
from miles to kilometers would be good too. If the odometer would track miles traveled
that would be an awesome enhancement.
&lt;/p&gt;
&lt;p&gt;
Download executable: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileSpeedometer.CAB" target="_blank"&gt;mobileSpeedometer.cab&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Download Source Code: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileSpeedometer.zip" target="_blank"&gt;mobileSpeedometer.zip&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Want more? What else would you like to see?
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=123d7055-26d6-4697-85ad-423a477e870b" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,123d7055-26d6-4697-85ad-423a477e870b.aspx</comments>
      <category>.Net Programming</category>
      <category>30 Day of .NET</category>
      <category>compact framework</category>
      <category>cool</category>
      <category>MVP</category>
      <category>PDANUG</category>
      <category>pocket pc</category>
      <category>programming</category>
      <category>windows mobile</category>
    </item>
    <item>
      <trackback:ping>http://www.cjcraft.com/blog/Trackback.aspx?guid=e3af435b-e033-472b-8fde-da0ebe4a2894</trackback:ping>
      <pingback:server>http://www.cjcraft.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.cjcraft.com/blog/PermaLink,guid,e3af435b-e033-472b-8fde-da0ebe4a2894.aspx</pingback:target>
      <dc:creator>Chris Craft</dc:creator>
      <wfw:comment>http://www.cjcraft.com/blog/CommentView,guid,e3af435b-e033-472b-8fde-da0ebe4a2894.aspx</wfw:comment>
      <wfw:commentRss>http://www.cjcraft.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e3af435b-e033-472b-8fde-da0ebe4a2894</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
How'd we make it this far without a weather application? I must admit its hard to
buy anything these days that doesn’t have a weather feature built in. But does everyone
understand the basic of writing such an application? That’s what we will explore today.
</p>
        <p>
 
</p>
        <p>
          <a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay18Mob_14390/image_2.png">
            <img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="455" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay18Mob_14390/image_thumb.png" width="293" align="left" border="0" />
          </a>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <strong>Mobile Weather</strong>
        </p>
        <p>
UI is a little plain. I really think a weather application needs to have a top notch
exciting UI, but we’ll keep it simple this time. We have an input section at the top
that takes the user’s ZIP Code, and we have an output section at the bottom.
</p>
        <p>
In the output section we have some basic factoids like current conditions and temperature.
We also have a forecast for the next day showing date, description, with high and
low temperature. And finally we have a graphic to add a little something to an otherwise
drab application.
</p>
        <p>
How did we mine this information. Basically I connected to a public weather RSS feed
that takes zip code as an URL parameter, using an <strong>HttpWebRespone</strong> object.
I then parsed out the data I need using regular expressions.
</p>
        <p>
There are other ways of doing this type of thing, but I thought this would allow us
to use a lot of neat Window Mobile technologies we haven’t explorer before.
</p>
        <p>
          <strong>Our friend the HttpWebResponse:</strong>
        </p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 58.03%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 210px; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">private</span>
              <span style="color: #0000ff">void</span> RefreshData()</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span>
              <span style="color: #0000ff">string</span> lcUrl
= <span style="color: #006080">"http://weather.yahooapis.com/forecastrss?p="</span> +
textBoxZipCode.Text.TrimEnd();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 5:</span>
              <span style="color: #008000">//
*** Establish the request </span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 6:</span> HttpWebRequest
loHttp = (HttpWebRequest)WebRequest.Create(lcUrl);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 7:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 8:</span>
              <span style="color: #008000">//
*** Set properties</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 9:</span> loHttp.Timeout
= 10000; <span style="color: #008000">// 10 secs</span></pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 10:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 11:</span>
              <span style="color: #008000">//
*** Retrieve request info headers</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 12:</span> HttpWebResponse
loWebResponse = (HttpWebResponse)loHttp.GetResponse();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 13:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 14:</span> Encoding
enc = Encoding.GetEncoding(1252); <span style="color: #008000">// Windows default
Code Page</span></pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 15:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 16:</span> StreamReader
loResponseStream = <span style="color: #0000ff">new</span> StreamReader(loWebResponse.GetResponseStream(),
enc);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 17:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 18:</span>
              <span style="color: #0000ff">string</span> lcHtml
= loResponseStream.ReadToEnd();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 19:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 20:</span> RefreshScreen(lcHtml);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 21:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 22:</span> loWebResponse.Close();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 23:</span> loResponseStream.Close();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 24:</span> }</pre>
          </div>
        </div>
        <p>
 
</p>
        <p>
          <strong>Last but not least the Regex object:</strong>
        </p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">string</span> conditionsEx
= <span style="color: #006080">@"&lt;yweather:condition text="</span><span style="color: #006080">"(?&lt;desc&gt;[^@]+)"</span><span style="color: #006080">"
code="</span><span style="color: #006080">"(?&lt;code&gt;[^@]+)"</span><span style="color: #006080">"
temp="</span><span style="color: #006080">"(?&lt;temp&gt;[^@]+)"</span><span style="color: #006080">"
date="</span><span style="color: #006080">"(?&lt;junk&gt;[^@]+)"</span><span style="color: #006080">"
"</span>;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span> Regex
regEx = <span style="color: #0000ff">new</span> Regex(conditionsEx);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 5:</span> Match
m = regEx.Match(input);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 6:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 7:</span>
              <span style="color: #0000ff">if</span>(m.Success)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 8:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 9:</span> desc
= m.Groups[<span style="color: #006080">"desc"</span>].Value;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 10:</span> temp
= m.Groups[<span style="color: #006080">"temp"</span>].Value;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 11:</span> }</pre>
          </div>
        </div>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <strong>Possibilities:</strong>
        </p>
        <p>
The UI needs more polish, but it is useable. There is even more data in this RSS feed
than I’m exposing so that is another way to expand on this project and make something
awesome.
</p>
        <p>
Download executable: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileWeather.CAB">mobileWeather.cab</a></p>
        <p>
Download Source Code: <a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileWeather.zip">mobileWeather.zip</a></p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <strong>Feedback:</strong>
        </p>
        <p>
How could we make this application even better? Share your ideas with the community.
</p>
        <img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=e3af435b-e033-472b-8fde-da0ebe4a2894" />
      </body>
      <title>30 Days of .NET [Windows Mobile Applications] - Day 18: Mobile Weather</title>
      <guid isPermaLink="false">http://www.cjcraft.com/blog/PermaLink,guid,e3af435b-e033-472b-8fde-da0ebe4a2894.aspx</guid>
      <link>http://www.cjcraft.com/blog/2008/06/19/30DaysOfNETWindowsMobileApplicationsDay18MobileWeather.aspx</link>
      <pubDate>Thu, 19 Jun 2008 06:59:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
How'd we make it this far without a weather application? I must admit its hard to
buy anything these days that doesn’t have a weather feature built in. But does everyone
understand the basic of writing such an application? That’s what we will explore today.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay18Mob_14390/image_2.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" height="455" alt="image" src="http://www.cjcraft.com/blog/content/binary/WindowsLiveWriter/30D.NETWindowsMobileApplicationsDay18Mob_14390/image_thumb.png" width="293" align="left" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Mobile Weather&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
UI is a little plain. I really think a weather application needs to have a top notch
exciting UI, but we’ll keep it simple this time. We have an input section at the top
that takes the user’s ZIP Code, and we have an output section at the bottom.
&lt;/p&gt;
&lt;p&gt;
In the output section we have some basic factoids like current conditions and temperature.
We also have a forecast for the next day showing date, description, with high and
low temperature. And finally we have a graphic to add a little something to an otherwise
drab application.
&lt;/p&gt;
&lt;p&gt;
How did we mine this information. Basically I connected to a public weather RSS feed
that takes zip code as an URL parameter, using an &lt;strong&gt;HttpWebRespone&lt;/strong&gt; object.
I then parsed out the data I need using regular expressions.
&lt;/p&gt;
&lt;p&gt;
There are other ways of doing this type of thing, but I thought this would allow us
to use a lot of neat Window Mobile technologies we haven’t explorer before.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Our friend the HttpWebResponse:&lt;/strong&gt;
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 58.03%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; height: 210px; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; RefreshData()&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; lcUrl
= &lt;span style="color: #006080"&gt;&amp;quot;http://weather.yahooapis.com/forecastrss?p=&amp;quot;&lt;/span&gt; +
textBoxZipCode.Text.TrimEnd();&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 4:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 5:&lt;/span&gt; &lt;span style="color: #008000"&gt;//
*** Establish the request &lt;/span&gt;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 6:&lt;/span&gt; HttpWebRequest
loHttp = (HttpWebRequest)WebRequest.Create(lcUrl);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 7:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 8:&lt;/span&gt; &lt;span style="color: #008000"&gt;//
*** Set properties&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 9:&lt;/span&gt; loHttp.Timeout
= 10000; &lt;span style="color: #008000"&gt;// 10 secs&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 10:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 11:&lt;/span&gt; &lt;span style="color: #008000"&gt;//
*** Retrieve request info headers&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 12:&lt;/span&gt; HttpWebResponse
loWebResponse = (HttpWebResponse)loHttp.GetResponse();&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 13:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 14:&lt;/span&gt; Encoding
enc = Encoding.GetEncoding(1252); &lt;span style="color: #008000"&gt;// Windows default
Code Page&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 15:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 16:&lt;/span&gt; StreamReader
loResponseStream = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; StreamReader(loWebResponse.GetResponseStream(),
enc);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 17:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 18:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; lcHtml
= loResponseStream.ReadToEnd();&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 19:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 20:&lt;/span&gt; RefreshScreen(lcHtml);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 21:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 22:&lt;/span&gt; loWebResponse.Close();&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 23:&lt;/span&gt; loResponseStream.Close();&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 24:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Last but not least the Regex object:&lt;/strong&gt;
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; conditionsEx
= &lt;span style="color: #006080"&gt;@&amp;quot;&amp;lt;yweather:condition text=&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;(?&amp;lt;desc&amp;gt;[^@]+)&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;
code=&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;(?&amp;lt;code&amp;gt;[^@]+)&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;
temp=&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;(?&amp;lt;temp&amp;gt;[^@]+)&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;
date=&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;(?&amp;lt;junk&amp;gt;[^@]+)&amp;quot;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;quot;
&amp;quot;&lt;/span&gt;;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt; Regex
regEx = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Regex(conditionsEx);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 4:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 5:&lt;/span&gt; Match
m = regEx.Match(input);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 6:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 7:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt;(m.Success)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 8:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 9:&lt;/span&gt; desc
= m.Groups[&lt;span style="color: #006080"&gt;&amp;quot;desc&amp;quot;&lt;/span&gt;].Value;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 10:&lt;/span&gt; temp
= m.Groups[&lt;span style="color: #006080"&gt;&amp;quot;temp&amp;quot;&lt;/span&gt;].Value;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 11:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Possibilities:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The UI needs more polish, but it is useable. There is even more data in this RSS feed
than I’m exposing so that is another way to expand on this project and make something
awesome.
&lt;/p&gt;
&lt;p&gt;
Download executable: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileWeather.CAB"&gt;mobileWeather.cab&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Download Source Code: &lt;a href="http://cid-0779b8ef58de4561.skydrive.live.com/self.aspx/Public/MobileWeather.zip"&gt;mobileWeather.zip&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
How could we make this application even better? Share your ideas with the community.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.cjcraft.com/blog/aggbug.ashx?id=e3af435b-e033-472b-8fde-da0ebe4a2894" /&gt;</description>
      <comments>http://www.cjcraft.com/blog/CommentView,guid,e3af435b-e033-472b-8fde-da0ebe4a2894.aspx</comments>
      <category>.Net Programming</category>
      <category>30 Day of .NET</category>
      <category>compact framework</category>
      <category>cool</category>
      <category>MVP</category>
      <category>pocket pc</category>
      <category>programming</category>
      <category>smartphone</category>
      <category>windows mobile</category>
    </item>
  </channel>
</rss>