<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Mark Arteaga</title>
    <link>http://blog.markarteaga.com/</link>
    <description>exploring the mobile world...</description>
    <copyright>Mark Arteaga</copyright>
    <lastBuildDate>Fri, 30 Mar 2012 20:52:06 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.7174.0</generator>
    <managingEditor>info@markarteaga.com</managingEditor>
    <webMaster>info@markarteaga.com</webMaster>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/MarkArteaga" /><feedburner:info uri="markarteaga" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FMarkArteaga" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FMarkArteaga" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FMarkArteaga" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/MarkArteaga" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FMarkArteaga" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FMarkArteaga" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FMarkArteaga" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item>
      <trackback:ping>http://blog.markarteaga.com/Trackback.aspx?guid=81469725-d23b-47e2-8872-ba2a296c91ca</trackback:ping>
      <pingback:server>http://blog.markarteaga.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.markarteaga.com/PermaLink,guid,81469725-d23b-47e2-8872-ba2a296c91ca.aspx</pingback:target>
      <dc:creator>Mark Arteaga</dc:creator>
      <wfw:comment>http://blog.markarteaga.com/CommentView,guid,81469725-d23b-47e2-8872-ba2a296c91ca.aspx</wfw:comment>
      <wfw:commentRss>http://blog.markarteaga.com/SyndicationService.asmx/GetEntryCommentsRss?guid=81469725-d23b-47e2-8872-ba2a296c91ca</wfw:commentRss>
      
      <title>Windows Phone End User Quick Tips</title>
      <guid isPermaLink="false">http://blog.markarteaga.com/PermaLink,guid,81469725-d23b-47e2-8872-ba2a296c91ca.aspx</guid>
      <link>http://feedproxy.google.com/~r/MarkArteaga/~3/CjVZal_f4IM/WindowsPhoneEndUserQuickTips.aspx</link>
      <pubDate>Fri, 30 Mar 2012 20:52:06 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://mo.morsi.org/blog/files/quick-tips.jpg" width="240" height="173"&gt;&lt;/img&gt;Many&#xD;
people using Windows Phone or new to it that I meet don’t know some of the ‘hidden&#xD;
features’ of Windows Phone that make the phone easier to use.  Now I’m talking&#xD;
about completely non-technical people who have decided to get a Windows Phone and&#xD;
I’m sure most regulars readers already know these tips.&#xD;
&lt;/p&gt;&#xD;
        &lt;h3&gt;Switching Apps (Multitasking)&#xD;
&lt;/h3&gt;&#xD;
        &lt;p&gt;&#xD;
First switching apps, not many know that you can easily switch between apps using&#xD;
how to easily switch between applications on the phone.  I tend to see people&#xD;
hit the back button over and over to get back to the app they were at or hit the start&#xD;
button to get to the start page.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;u&gt;Quick Tip #1:&lt;/u&gt;&#xD;
          &lt;/strong&gt; Hold down the back button and you will get a&#xD;
list of all apps that are currently running.  Scroll through the apps you want,&#xD;
click it and it will come back! If you are coming from iPhone world, it’s like double&#xD;
clicking on the main button to get a list of running apps but I find the Windows Phone&#xD;
experience much better. Check out the &lt;a href="http://www.microsoft.com/windowsphone/en-us/howto/wp7/basics/switch-between-apps.aspx" target="_blank"&gt;Windows&#xD;
Phone How-To on Switching apps&lt;/a&gt;. Here is a picture of what to expect:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://www.technobuffalo.com/wp-content/uploads/2012/03/261753-microsoft-windows-phone-7-mango-multitasking.jpeg" width="164" height="240"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;h3&gt;Use Your Voice to Do Things&#xD;
&lt;/h3&gt;&#xD;
        &lt;p&gt;&#xD;
Not many people know that Windows Phone has voice recognition similar to Siri on iPhone,&#xD;
and it’s been there since the beginning!  Now it’s not exactly like Siri, but&#xD;
you can call people, launch apps, send text messages or search using Bing.  The&#xD;
Microsoft TellMe product is not only used in Windows Phone but is also used on XBox,&#xD;
Cars and PCs.  This is a great video on the future of the TellMe technology:&#xD;
&lt;/p&gt;&#xD;
        &lt;p align="center"&gt;&#xD;
          &lt;iframe height="288" src="http://www.microsoft.com:80/presspass/silverlightApps/videoplayer3/standalone.aspx?contentID=zig080911&amp;amp;src=/presspass/presskits/speech/channel.xml" frameborder="0" width="512" scrolling="no"&gt;&#xD;
          &lt;/iframe&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;u&gt;Quick Tip #2&lt;/u&gt;&#xD;
          &lt;/strong&gt;: Hold down the Start button and an app will popup&#xD;
which says ‘Listening’, just speak what you want and hit ‘go’.   Head to&#xD;
the &lt;a href="http://www.microsoft.com/en-us/Tellme/consumers/default.aspx?tab=phone#tab=phone" target="_blank"&gt;TellMe&#xD;
product&lt;/a&gt; page for more details and the &lt;a href="http://www.microsoft.com/windowsphone/en-us/howto/wp7/basics/use-speech-on-my-phone.aspx" target="_blank"&gt;Use&#xD;
Speech on my Phone&lt;/a&gt; how to.&#xD;
&lt;/p&gt;&#xD;
        &lt;h3&gt;iCloud for Windows Phone&#xD;
&lt;/h3&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-Quick-Tip-non-developer_DE03/image_4.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 20px 11px 13px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-Quick-Tip-non-developer_DE03/image_thumb_1.png" width="95" height="109"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;One&#xD;
of the biggest things that Apple released recently is iCloud with one feature of syncing&#xD;
your pictures to their cloud services.  Well there really isn’t iCloud for Windows&#xD;
Phone but Windows Phone has always had this feature and I’ve been using it for almost&#xD;
years!  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Unfortunately, Microsoft doesn’t do the best job of letting this feature known. &#xD;
Once you setup your phone you can have your pictures automatically sync to your Windows&#xD;
Live SkyDrive account and can see all your pictures that you have taken on your phone&#xD;
in your browser.  This way you also have some piece of mind that if you ever&#xD;
lost your phone, you will still have your pictures.  Head over to &lt;a href="https://www.windowsphone.com/en-US/my" target="_blank"&gt;My&#xD;
Phone&lt;/a&gt; so you can see the location of your phone, images, office documents etc&#xD;
that is associated with your Live Id.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;u&gt;Quick Tip #3 &lt;/u&gt;&#xD;
          &lt;/strong&gt;Setup your Windows Phone to automatically upload&#xD;
your pictures to SkyDrive.  See the &lt;a href="http://www.microsoft.com/windowsphone/en-US/howto/wp7/pictures/upload-pictures-to-the-web.aspx" target="_blank"&gt;Share&#xD;
Picture How To for Windows Phone&lt;/a&gt; on how to set this up.  And don’t worry,&#xD;
the picture that you sync will be kept private and not shared with everyone unless&#xD;
you want it to be.  Don’t forget to setup Facebook sharing if you are an avid&#xD;
FB user.&#xD;
&lt;/p&gt;&#xD;
        &lt;h3&gt;Local Scout for Canadians&#xD;
&lt;/h3&gt;&#xD;
        &lt;p&gt;&#xD;
Now this is strictly for my Canadian readers.  One of my favorite features on&#xD;
Windows Phone is Local Scout.  Local Scout will basically find local restaurants, &#xD;
shops and things to do depending on your current location.  For more information&#xD;
on how to use it see the &lt;a href="http://www.microsoft.com/windowsphone/en-us/howto/wp7/web/local-scout.aspx" target="_blank"&gt;Local&#xD;
Scout help&lt;/a&gt;.  Unfortunately if you buy your phone in Canada, this will be&#xD;
disabled because your region will be set to Canada.  See the &lt;a href="http://www.microsoft.com/windowsphone/en-us/howto/wp7/basics/feature-and-service-availability.aspx" target="_blank"&gt;Windows&#xD;
Phone Feature &amp;amp; Service Availability&lt;/a&gt; section to see what is missing because&#xD;
of your region and what is fully supported in your region.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;u&gt;Quick Tip #4&lt;/u&gt;&#xD;
          &lt;/strong&gt; Setup your phone to be able to use Local Scout. &#xD;
This will allow you to see the button on Bing search app and does make finding things&#xD;
around you a bit easier.  To enable this do the following which will also enable&#xD;
Bing Vision.&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
Go to the Settings for your phone&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Under System, scroll down until you find Region + Languages and tap it&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Scroll to the bottom of this screen until you find Browser &amp;amp; search language&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Change this setting to English (United States)&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Tap the back arrow key&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Hit the search button and Local Scout and Bing Vision should be enabled&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;h3&gt;More Help &amp;amp; Tips&#xD;
&lt;/h3&gt;&#xD;
        &lt;p&gt;&#xD;
For more help and tips head over to &lt;a href="http://www.WindowsPhone.com"&gt;www.WindowsPhone.com&lt;/a&gt; under&#xD;
the &lt;a href="http://www.microsoft.com/windowsphone/en-US/features/default.aspx" target="_blank"&gt;Discover&lt;/a&gt; and &lt;a href="http://www.microsoft.com/windowsphone/en-US/howto/wp7/default.aspx" target="_blank"&gt;How-To&lt;/a&gt; and &lt;a href="http://www.microsoft.com/windowsphone/en-us/howto/wp7/videos.aspx" target="_blank"&gt;Video&lt;/a&gt; sections&#xD;
for all the tips you need to get the most out of your Windows Phone.  Hopefully&#xD;
this will help end user fully enjoy their Windows Phone and ping me on &lt;a href="http://twitter.com/markarteaga" target="_blank"&gt;twitter&lt;/a&gt; if&#xD;
you have your own tips!&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.markarteaga.com/aggbug.ashx?id=81469725-d23b-47e2-8872-ba2a296c91ca"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=CjVZal_f4IM:FKmGljShjkI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=CjVZal_f4IM:FKmGljShjkI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=CjVZal_f4IM:FKmGljShjkI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=CjVZal_f4IM:FKmGljShjkI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=CjVZal_f4IM:FKmGljShjkI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=CjVZal_f4IM:FKmGljShjkI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=CjVZal_f4IM:FKmGljShjkI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=CjVZal_f4IM:FKmGljShjkI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=CjVZal_f4IM:FKmGljShjkI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=CjVZal_f4IM:FKmGljShjkI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkArteaga/~4/CjVZal_f4IM" height="1" width="1"/&gt;</description>
      <comments>http://blog.markarteaga.com/CommentView,guid,81469725-d23b-47e2-8872-ba2a296c91ca.aspx</comments>
      <category>Quick Tips</category>
      <category>Windows Phone</category>
    <feedburner:origLink>http://blog.markarteaga.com/WindowsPhoneEndUserQuickTips.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.markarteaga.com/Trackback.aspx?guid=2d0aca32-e59e-4b5f-aeda-dfc2afa0b77f</trackback:ping>
      <pingback:server>http://blog.markarteaga.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.markarteaga.com/PermaLink,guid,2d0aca32-e59e-4b5f-aeda-dfc2afa0b77f.aspx</pingback:target>
      <dc:creator>Mark Arteaga</dc:creator>
      <wfw:comment>http://blog.markarteaga.com/CommentView,guid,2d0aca32-e59e-4b5f-aeda-dfc2afa0b77f.aspx</wfw:comment>
      <wfw:commentRss>http://blog.markarteaga.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2d0aca32-e59e-4b5f-aeda-dfc2afa0b77f</wfw:commentRss>
      
      <title>Getting Started With Windows Phone Development</title>
      <guid isPermaLink="false">http://blog.markarteaga.com/PermaLink,guid,2d0aca32-e59e-4b5f-aeda-dfc2afa0b77f.aspx</guid>
      <link>http://feedproxy.google.com/~r/MarkArteaga/~3/iq_kbCY9cZY/GettingStartedWithWindowsPhoneDevelopment.aspx</link>
      <pubDate>Fri, 30 Mar 2012 18:08:40 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Going to a lot of local events I always get asked “what do I have to do to get started&#xD;
to create an app on Windows Phone?”  I noticed I have never put together a getting&#xD;
started article so here it goes.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Basically, the only URL I give everyone is &lt;a href="http://create.msdn.com" target="_blank"&gt;create.msdn.com&lt;/a&gt; which&#xD;
is &lt;a href="http://create.msdn.com" target="_blank"&gt;App Hub.&lt;/a&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://create.msdn.com" target="_blank"&gt;&#xD;
            &lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://public.create.msdn.com/assets/images/global/shell_default/cco_shell_default_header_xna_logo_print.png"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Here developers will find everything they need to get started including tools and&#xD;
registration process to publish your apps.  The biggest shock to most people&#xD;
are that all tools are free so it costs you nothing to get started and the only cost&#xD;
is when you are ready to submit your application for certification into the Windows&#xD;
Phone Marketplace.  The cost is $100/yr for an AppHub membership similar to the&#xD;
Apple AppStore pricing.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
There are also some targeted Microsoft programs that devs can take advantage of not&#xD;
just for Windows Phone but for all MSFT based software.&#xD;
&lt;/p&gt;&#xD;
        &lt;h2&gt;&#xD;
          &lt;u&gt;&#xD;
            &lt;font style="font-weight: bold"&gt;Windows Phone Dev For Students&lt;/font&gt;&#xD;
          &lt;/u&gt;&#xD;
        &lt;/h2&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="margin: 9px 25px 10px; display: inline; float: right" alt="DreamSpark" align="right" src="https://www.dreamspark.com/App_Themes/Default/Images/Dreamsparklogo.png"&gt;&lt;/img&gt;If&#xD;
you are a student you definitely want to look at the &lt;a href="https://www.dreamspark.com" target="_blank"&gt;Microsoft&#xD;
DreamSpark&lt;/a&gt; program.  It gives you access to all the Microsoft developer tools&#xD;
for free!  When you develop your Windows Phone App and are ready to publish,&#xD;
you can also get a complimentary AppHub account saving you $100/yr.&#xD;
&lt;/p&gt;&#xD;
        &lt;h2&gt;&#xD;
          &lt;font style="font-weight: bold"&gt;&#xD;
            &lt;u&gt;Windows Phone Dev For Startups&lt;/u&gt;&#xD;
          &lt;/font&gt;&#xD;
        &lt;/h2&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="margin: 0px 22px 0px 0px; display: inline; float: left" align="left" src="http://www.microsoft.eu/Portals/0/img/MicrosoftEurope/BizSpark-logo_2%20(1).jpg" width="240" height="83"&gt;&lt;/img&gt;If&#xD;
you are a startup using Microsoft technologies and concerned about license costs,&#xD;
check out &lt;a href="http://www.microsoft.com/bizspark" target="_blank"&gt;BizSpark&lt;/a&gt;. &#xD;
BizSpark allows you to get all the Microsoft software for free for 3 years including &lt;a href="http://www.microsoft.com/bizspark/Azure/Default.aspx?WT.mc_id=azure_offer" target="_blank"&gt;Windows&#xD;
Azure&lt;/a&gt; for three years which is an awesome deal.  If you are on MSFT technologies&#xD;
you definitely want to look at this but unfortunately you don’t get a free AppHub&#xD;
account like students.  Even if you are running things such as &lt;a href="http://nodejs.org/" target="_blank"&gt;node.js&lt;/a&gt; or &lt;a href="http://www.mongodb.org/" target="_blank"&gt;mongoDB&lt;/a&gt; still&#xD;
take a look at this, because you can run these OSS on Azure and it will be free with&#xD;
no servers to install or manage like Amazon AWS.&#xD;
&lt;/p&gt;&#xD;
        &lt;h2&gt;&#xD;
          &lt;font style="font-weight: bold"&gt;&#xD;
            &lt;u&gt;Windows Phone Dev Quick Links&lt;/u&gt;&#xD;
          &lt;/font&gt;&#xD;
        &lt;/h2&gt;&#xD;
        &lt;p&gt;&#xD;
For those wanting quick links here is a summary of what I think is important but there&#xD;
is a boat load of information out there, you just have to search.&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://create.msdn.com" target="_blank"&gt;AppHub&lt;/a&gt; – going to &lt;a href="http://create.msdn.com" target="_blank"&gt;create.msdn.com&lt;/a&gt; is&#xD;
your central place for everything Windows Phone and XNA development.  &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://it here http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=27570" target="_blank"&gt;Visual&#xD;
Studio Express for Windows Phone&lt;/a&gt; – this is your main tool to create Windows Phone&#xD;
apps.  You can download &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://msdn.microsoft.com/library/ff402535(v=VS.92).aspx" target="_blank"&gt;Documentation&lt;/a&gt; –&#xD;
all documentation can be found on MSDN.  This is everything needed when you run&#xD;
into API problems or not sure how something works.  Explore it because there&#xD;
is a lot of information here. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Sample Code – Sample code is everywhere just Google it!  Here is a list of were&#xD;
you can possible find some more &#xD;
&lt;ol&gt;&lt;li&gt;&lt;a href="https://github.com/search?utf8=%E2%9C%93&amp;amp;q=windows+phone&amp;amp;type=Everything&amp;amp;repo=&amp;amp;langOverride=&amp;amp;start_value=1" target="_blank"&gt;GitHub&lt;/a&gt; –&#xD;
Just search for Windows Phone and you’ll find a lot of source code &#xD;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/" target="_blank"&gt;CodePlex&lt;/a&gt; – There is lots of&#xD;
code here but seems most (including MSFT) are dumping this in preference for GitHub &#xD;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://create.msdn.com/en-US/education/catalog/" target="_blank"&gt;AppHub Education&lt;/a&gt; –&#xD;
(Told you there is a lot here &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/71266005bb7c_BB46/wlEmoticon-smile_2.png"&gt;&lt;/img&gt;)&#xD;
The education section has a boat load of samples that you can use to get things going. &#xD;
&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Getting Help – there is a large community developing and always helping with Windows&#xD;
Phone development and usually helping with any dev challenges you may have. &#xD;
Here is a list &#xD;
&lt;ol&gt;&lt;li&gt;&lt;a href="https://twitter.com/#!/wp7dev" target="_blank"&gt;Twitter&lt;/a&gt; – The Windows&#xD;
Phone dev team is on twitter and lists all the MVPs that are on twitter.  Everyone&#xD;
listed there is always willing to help with issues so if you are on twitter leverage&#xD;
it &#xD;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://create.msdn.com/en-us/community/community_resources" target="_blank"&gt;App&#xD;
Hub Community&lt;/a&gt;- Like I said, AppHub is your main source, use it leverage it and&#xD;
build your apps! &#xD;
&lt;/li&gt;&lt;li&gt;&#xD;
Blogs – Here is a list I took straight from AppHub site of both Microsoft employees&#xD;
and MVPs from around the world  &#xD;
&lt;ol&gt;&lt;li&gt;&#xD;
MSFT &#xD;
&lt;ul style="display: block" id="qsnv4ul"&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/astebner/" target="_blank"&gt;Aaron Strebner&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://chriskoenig.net/" target="_blank"&gt;Chris Koenig&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/delay/" target="_blank"&gt;David Anson&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://davebost.com/" target="_blank"&gt;Dave Bost&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/devdave/" target="_blank"&gt;Dave Relyea&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://wp.lyalin.com/" target="_blank"&gt;Dmitri Lyalin's Windows Phone Application&#xD;
Center&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/jaimer/" target="_blank"&gt;Jaime Rodriguez&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7.aspx" target="_blank"&gt;Jeff&#xD;
Blankenburg's "31 Days of Windows Phone"&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/priozersk/" target="_blank"&gt;Alex Yakhnin&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.jeff.wilcox.name/blog/" target="_blank"&gt;Jeff Wilcox&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/mikeormond/" target="_blank"&gt;Mike Ormond&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/mikeormond/archive/2010/07/09/mike-s-mega-list-of-windows-phone-7-resources.aspx" target="_blank"&gt;Mike&#xD;
Ormond's Mega List of Windows Phone Resources&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://theoneswiththelight.com/" target="_blank"&gt;Nick Gravelyn&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/ptorr/" target="_blank"&gt;Peter Torr&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.robtiffany.com/" target="_blank"&gt;Rob Tiffany&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://shawnoster.com/blog/" target="_blank"&gt;Shawn Oster&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&#xD;
MVPs &#xD;
&lt;ul style="display: none" id="qsnv2ul"&gt;&lt;li&gt;&lt;a href="http://mobileworld.appamundi.com/blogs/andywigley" target="_blank"&gt;Andy Wigley&#xD;
(MVP, United Kingdom)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.atleyhunter.com" target="_blank"&gt;Atley Hunter (MVP, Canada)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.catalinzima.com/" target="_blank"&gt;Catalin's XNA and HLSL Blog&lt;/a&gt;(MVP) &#xD;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://xna-uk.net/blogs/randomchaos/" target="_blank"&gt;Charles Humphrey&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.charlespetzold.com/blog/blog.xml" target="_blank"&gt;Charles Petzold&#xD;
(MVP, USA)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://dennisdel.com" target="_blank"&gt;Den Delimarsky (MVP, USA)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ska-studios.com/" target="_blank"&gt;James Silva&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.gamedevblog.com/" target="_blank"&gt;Jamie Fristrom&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.j2i.net" target="_blank"&gt;Joel Ivory Johnson (MVP, USA)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://dotnetbyexample.blogspot.com" target="_blank"&gt;Joost van Schaik (MVP,&#xD;
Netherlands)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.markermetro.com/blog" target="_blank"&gt;Keith Patton (MVP, New Zealand)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://kelly.whitepdx.com/" target="_blank"&gt;Kelly White (MVP, USA)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.WPMind.com" target="_blank"&gt;Kenn Zhang (MVP, China)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.dotnetfordevices.com." target="_blank"&gt;Maarten Struys (MVP, Netherlands)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://maciejgrabek.com" target="_blank"&gt;Maciej Grabek (MVP, Poland)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.markarteaga.com" target="_blank"&gt;Mark Arteaga (MVP, Canada)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.matthidinger.com" target="_blank"&gt;Matt Hidinger (MVP, USA)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.qmatteoq.com" target="_blank"&gt;Matteo Pagani (MVP, Italy)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.michelelocuratolo.com" target="_blank"&gt;Michele Locuratolo (MVP,&#xD;
Italy)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://nicksnettravels.builttoroam.com " target="_blank"&gt;Nick Randolph (MVP,&#xD;
Austalia)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.NikitaPolyakov.com" target="_blank"&gt;Nikita Polyakov (MVP, USA)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://patrickgetzmann.wordpress.com/" target="_blank"&gt;Patrick Getzmann (MVP,&#xD;
Germany)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://mobileworld.appamundi.com/blogs/peterfoot/default.aspx" target="_blank"&gt;Peter&#xD;
Foot (MVP, United Kingdom)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://winphonedev.de" target="_blank"&gt;Peter Nowak (MVP, Germany)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://legalizeadulthood.wordpress.com/" target="_blank"&gt;Richard Thomson&lt;/a&gt;(MVP) &#xD;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.robmiles.com/" target="_blank"&gt;Rob Miles (WPD MVP, United Kingdom)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.rodolphomarques.com" target="_blank"&gt;Rodolpho Marques do Carmo&#xD;
(MVP, Brasil)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.rudyhuyn.com" target="_blank"&gt;Rudy Huyn (MVP, France)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeppc.com/blogs" target="_blank"&gt;Stephane Sibue (MVP, France)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.windowsphonebrasil.net" target="_blank"&gt;Thiago Jose Monaco (MVP,&#xD;
Brazil)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://weimenglee.blogspot.com" target="_blank"&gt;Wei-Men Lee (MVP, Singapore)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p&gt;&#xD;
So hopefully this helps you in your quest to develop for Windows Phone!  If you&#xD;
are reading this and I have missed something please post it to the comments section&#xD;
or feel free to contact me here or via twitter &lt;a href="http://twitter.com/MarkArteaga"&gt;@MarkArteaga&lt;/a&gt;!&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.markarteaga.com/aggbug.ashx?id=2d0aca32-e59e-4b5f-aeda-dfc2afa0b77f"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=iq_kbCY9cZY:XBlZ6F2Gzeg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=iq_kbCY9cZY:XBlZ6F2Gzeg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=iq_kbCY9cZY:XBlZ6F2Gzeg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=iq_kbCY9cZY:XBlZ6F2Gzeg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=iq_kbCY9cZY:XBlZ6F2Gzeg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=iq_kbCY9cZY:XBlZ6F2Gzeg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=iq_kbCY9cZY:XBlZ6F2Gzeg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=iq_kbCY9cZY:XBlZ6F2Gzeg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=iq_kbCY9cZY:XBlZ6F2Gzeg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=iq_kbCY9cZY:XBlZ6F2Gzeg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkArteaga/~4/iq_kbCY9cZY" height="1" width="1"/&gt;</description>
      <comments>http://blog.markarteaga.com/CommentView,guid,2d0aca32-e59e-4b5f-aeda-dfc2afa0b77f.aspx</comments>
      <category>Windows Phone</category>
    <feedburner:origLink>http://blog.markarteaga.com/GettingStartedWithWindowsPhoneDevelopment.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.markarteaga.com/Trackback.aspx?guid=af666d2f-5fb2-43fc-b6cc-cf3b22ce6009</trackback:ping>
      <pingback:server>http://blog.markarteaga.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.markarteaga.com/PermaLink,guid,af666d2f-5fb2-43fc-b6cc-cf3b22ce6009.aspx</pingback:target>
      <dc:creator>Mark Arteaga</dc:creator>
      <wfw:comment>http://blog.markarteaga.com/CommentView,guid,af666d2f-5fb2-43fc-b6cc-cf3b22ce6009.aspx</wfw:comment>
      <wfw:commentRss>http://blog.markarteaga.com/SyndicationService.asmx/GetEntryCommentsRss?guid=af666d2f-5fb2-43fc-b6cc-cf3b22ce6009</wfw:commentRss>
      <slash:comments>2</slash:comments>
      
      <title>Market Numbers in the Mobile Industry</title>
      <guid isPermaLink="false">http://blog.markarteaga.com/PermaLink,guid,af666d2f-5fb2-43fc-b6cc-cf3b22ce6009.aspx</guid>
      <link>http://feedproxy.google.com/~r/MarkArteaga/~3/fNv_OG1Cb5Q/MarketNumbersInTheMobileIndustry.aspx</link>
      <pubDate>Fri, 28 Oct 2011 07:05:00 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
The other day at &lt;a href="http://www.webnotwar.ca/get-ready-for-devcamp-in-your-city/" target="_blank"&gt;Web&#xD;
Not War DevCamp&lt;/a&gt; I did a TED Style talk on “State of Mobile &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Numbers-in-the-Mobile-Space_D508/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 10px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Numbers-in-the-Mobile-Space_D508/image_thumb.png" width="240" height="186"&gt;&lt;/img&gt;&lt;/a&gt;Industry&#xD;
for Developers” and talked about some of the market share numbers and what tools are&#xD;
available for users not just on Windows Phone but on all platforms. These numbers&#xD;
are also for smartphones and feature phones (or non-smartphones) combined.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Now I’m just going to talk about the numbers, as I think they are pretty interesting.&#xD;
But numbers are what they are and numbers can be skewed in any way. Bad numbers can&#xD;
be ‘tweaked’ to look good, and good numbers can be skewed to look bad. Although the&#xD;
only time you would want to do that is when you are comparing yourself against your&#xD;
competition and they have good numbers &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Numbers-in-the-Mobile-Space_D508/wlEmoticon-winkingsmile_2.png"&gt;&lt;/img&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
All the numbers I got from the latest &lt;a href="http://www.comscore.com/Press_Events/Press_Releases/2011/10/comScore_Reports_August_2011_U.S._Mobile_Subscriber_Market_Share" target="_blank"&gt;comScore&#xD;
Mobilens report for August 2011&lt;/a&gt; released in October 2011. Note, that these numbers&#xD;
are only for US and are not reflect worldwide market share. These reports are free&#xD;
and I recommend you keep an eye out for them when they come out if you are in the&#xD;
mobile space.&#xD;
&lt;/p&gt;&#xD;
        &lt;h1&gt;&#xD;
          &lt;font style="font-weight: bold"&gt;&#xD;
            &lt;u&gt;The Hardware Numbers&lt;/u&gt;&#xD;
          &lt;/font&gt;&#xD;
        &lt;/h1&gt;&#xD;
        &lt;p&gt;&#xD;
So up first up is Original Equipment Manufacturers (OEM for short) market share numbers.&#xD;
What is an OEM? An OEM is a company that produces or manufactures physical phone hardware. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
So who is the leader of end of August 2011 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Numbers-in-the-Mobile-Space_D508/image_10.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Numbers-in-the-Mobile-Space_D508/image_thumb_4.png" width="178" height="59"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
And here are the numbers&lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Numbers-in-the-Mobile-Space_D508/image_6.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Numbers-in-the-Mobile-Space_D508/image_thumb_2.png" width="510" height="275"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
As you can see from the list above, Samsung is up on top and gained 0.5% share of&#xD;
the market in three months, with LG and Motorola rounding out the top three. If you&#xD;
are surprised that Apple is #4 remember that this is hardware not the Platform/Operating&#xD;
System (we get into that below) but Apple did gain 1.1% points in the three months&#xD;
while Motorola lost 1.1% in share. RIM also lost 1.0% and unfortunately&lt;sup&gt;1&lt;/sup&gt; I&#xD;
only expect them to lose more as these numbers are before their &lt;a href="http://mashable.com/2011/10/12/blackberry-outages-email-backup/" target="_blank"&gt;October&#xD;
2011 email outage&lt;/a&gt; and the &lt;a href="http://techcrunch.com/2011/10/26/rim-gets-sued-agai/" target="_blank"&gt;recent&#xD;
class action law suit against RIM&lt;/a&gt; because of the issues.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
What am I expecting? Apple will go up next month because of the launch of the iPhone&#xD;
4s but the rankings will essentially stay the same. I don’t expect Samsung to lose&#xD;
the top spot for a very long time. Very few people know that they actually manufacture&#xD;
some hardware for some of the companies on the list, so even if the go down, they&#xD;
still generate revenue.&#xD;
&lt;/p&gt;&#xD;
        &lt;h1&gt;&#xD;
          &lt;font style="font-weight: bold"&gt;&#xD;
            &lt;u&gt;The Software Numbers&lt;/u&gt;&#xD;
          &lt;/font&gt;&#xD;
        &lt;/h1&gt;&#xD;
        &lt;p&gt;&#xD;
In my opinion, hardware is just a paperweight without the right software on it, and&#xD;
that is what this next list of companies are on the list for, their software. Now&#xD;
don’t get me wrong, you still need some nice sexy hardware to appeal to the consumer,&#xD;
but the hardware won’t do anything without software &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Numbers-in-the-Mobile-Space_D508/wlEmoticon-smile_2.png"&gt;&lt;/img&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
So who is on top here?&#xD;
&lt;/p&gt;&#xD;
        &lt;p align="center"&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Numbers-in-the-Mobile-Space_D508/image_12.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Numbers-in-the-Mobile-Space_D508/image_thumb_5.png" width="151" height="63"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Numbers-in-the-Mobile-Space_D508/image_14.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Numbers-in-the-Mobile-Space_D508/image_thumb_6.png" width="176" height="132"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
And here are the numbers showing the top 5.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Numbers-in-the-Mobile-Space_D508/image_17.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Numbers-in-the-Mobile-Space_D508/image_thumb_7.png" width="509" height="274"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Google is on top with 43.7% market share and they are just killing the competition&#xD;
and I think there are a couple of reasons. First, it’s ‘somewhat’ open source so companies&#xD;
are allowed to take the software modify it, customize it and change the experience&#xD;
to something unique for their device. In my opinion, this could lead to fragmentation&#xD;
of the software and challenging to provide an update path for end users. Now carriers&#xD;
love this because to get the latest and greatest features you have to buy a new phone.&#xD;
Google has noticed this and is taking steps to contain this but it’s already happening.&#xD;
Carriers also love Android because there is less of a ‘fee’ associated with it to&#xD;
sell the device in retail stores which means more profit for them. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
So what about the rest? Well it’s not surprising that Apple is in the number two spot&#xD;
in the US and gained 0.7% share at 27.3%. RIM rounds out the top three but they lost&#xD;
a huge 5% down to 19.7%. Probably to everyone’s surprise in the number 4 spot is Microsoft’s&#xD;
Windows Phone at 5.7% down 0.1%. Rounding out the top 5 is Symbian at 1.8% down 0.3%&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
What am I expecting here? I think Google will gain 1 or 2 points and continue their&#xD;
market domination for the next little while. Unfortunately, patent infringement troubles&#xD;
with Oracle dealing with Java and Android will cause some issues and depending on&#xD;
the turnout, could possibly stop Android devices from being sold. There is also all&#xD;
the &lt;a href="http://www.pcmag.com/article2/0,2817,2395173,00.asp#fbid=ZvgWyljaaWk" target="_blank"&gt;licensing&#xD;
deals Microsoft is making with hardware manufacturers like HTC that leverage Android&lt;/a&gt; which&#xD;
may affect future growth. I expect Apple will also go up a few points as well as Microsoft.&#xD;
RIM and Symbian, I expect them to continue their downward spiral in the next report&#xD;
but the rankings overall should stay the same.&#xD;
&lt;/p&gt;&#xD;
        &lt;h1&gt;&#xD;
          &lt;font style="font-weight: bold"&gt;&#xD;
            &lt;u&gt;Conclusion&lt;/u&gt;&#xD;
          &lt;/font&gt;&#xD;
        &lt;/h1&gt;&#xD;
        &lt;p&gt;&#xD;
Remember, numbers are numbers but if you are building mobile apps you should pay attention&#xD;
to them and see which way the consumers are going and if you should abandon or start&#xD;
adopting certain platforms. Also remember that these numbers are only US but I think&#xD;
including the rest of the world would produce different results.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Do you keep up with the numbers? Agree or disagree with what I’m saying? Let me know!&#xD;
Feel free to contact me here or via twitter &lt;a href="http://twitter.com/MarkArteaga"&gt;@MarkArteaga&lt;/a&gt;!&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;font size="1"&gt;&#xD;
            &lt;sup&gt;1&lt;/sup&gt;I say unfortunate because RIM is a great Canadian success&#xD;
story and sad to see them go down they way they are.&lt;/font&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.markarteaga.com/aggbug.ashx?id=af666d2f-5fb2-43fc-b6cc-cf3b22ce6009"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=fNv_OG1Cb5Q:B4H8saVx5po:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=fNv_OG1Cb5Q:B4H8saVx5po:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=fNv_OG1Cb5Q:B4H8saVx5po:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=fNv_OG1Cb5Q:B4H8saVx5po:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=fNv_OG1Cb5Q:B4H8saVx5po:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=fNv_OG1Cb5Q:B4H8saVx5po:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=fNv_OG1Cb5Q:B4H8saVx5po:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=fNv_OG1Cb5Q:B4H8saVx5po:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=fNv_OG1Cb5Q:B4H8saVx5po:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=fNv_OG1Cb5Q:B4H8saVx5po:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkArteaga/~4/fNv_OG1Cb5Q" height="1" width="1"/&gt;</description>
      <comments>http://blog.markarteaga.com/CommentView,guid,af666d2f-5fb2-43fc-b6cc-cf3b22ce6009.aspx</comments>
      <category>General</category>
      <category>Market Share</category>
    <feedburner:origLink>http://blog.markarteaga.com/MarketNumbersInTheMobileIndustry.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.markarteaga.com/Trackback.aspx?guid=dc075127-5a66-4d7a-b3cb-5aee37b95d53</trackback:ping>
      <pingback:server>http://blog.markarteaga.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.markarteaga.com/PermaLink,guid,dc075127-5a66-4d7a-b3cb-5aee37b95d53.aspx</pingback:target>
      <dc:creator>Mark Arteaga</dc:creator>
      <wfw:comment>http://blog.markarteaga.com/CommentView,guid,dc075127-5a66-4d7a-b3cb-5aee37b95d53.aspx</wfw:comment>
      <wfw:commentRss>http://blog.markarteaga.com/SyndicationService.asmx/GetEntryCommentsRss?guid=dc075127-5a66-4d7a-b3cb-5aee37b95d53</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <title>The Share Icon on Windows Phone</title>
      <guid isPermaLink="false">http://blog.markarteaga.com/PermaLink,guid,dc075127-5a66-4d7a-b3cb-5aee37b95d53.aspx</guid>
      <link>http://feedproxy.google.com/~r/MarkArteaga/~3/KNZQIZweZ48/TheShareIconOnWindowsPhone.aspx</link>
      <pubDate>Thu, 27 Oct 2011 17:28:00 GMT</pubDate>
      <description>&lt;p&gt;
I recently wrote about &lt;a href="http://blog.markarteaga.com/theshareicon.aspx" target="_blank"&gt;the
different ‘share icons’ that are being used on various mobile platform&lt;/a&gt; but one
that really stands out (and not in a good way) is the Windows Phone icon. The Windows
Phone icon looks like this
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/The-Share-Icon-on-Windows-Phone_15C5/appbar.share.rest_5.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="appbar.share.rest" border="0" alt="appbar.share.rest" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/The-Share-Icon-on-Windows-Phone_15C5/appbar.share.rest_thumb_1.png" width="48" height="48" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
A gift or present image. Now I guess it could mean ‘share’ or ‘give something to someone’
and in our case would mean ‘giving them a link to some content’ but using a ‘gift’
as a share icon didn’t make sense to me but because I believe in using what is provided
in the platform, I went with the standard icon, until now.
&lt;/p&gt;
&lt;p&gt;
With &lt;a href="http://msdn.microsoft.com/en-us/windows/home/" target="_blank"&gt;Windows
8 developer preview&lt;/a&gt; recently being available for download, I of course installed
it and played with it. I did notice they did have the functionality to share things
but they did not use the standard share icon (the gift) as in Windows Phone. Considering
Windows Phone uses the &lt;a href="http://blog.markarteaga.com/WindowsPhone7DesignAndMetro.aspx" target="_blank"&gt;Metro
Design Language&lt;/a&gt; and Windows 8 also uses the Metro Design Language, I found it
strange that a new icon was used.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/The-Share-Icon-on-Windows-Phone_15C5/image_thumb107_thumb%5B3%5D_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image_thumb107_thumb[3]" border="0" alt="image_thumb107_thumb[3]" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/The-Share-Icon-on-Windows-Phone_15C5/image_thumb107_thumb%5B3%5D_thumb.png" width="240" height="193" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This icon is the &lt;a href="http://www.shareaholic.com/openshareicon" target="_blank"&gt;Open
Share Icon&lt;/a&gt; by &lt;a href="http://www.shareaholic.com" target="_blank"&gt;Shareaholic&lt;/a&gt; or
at least looks very similar to it.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/The-Share-Icon-on-Windows-Phone_15C5/Share1_thumb%5B4%5D_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="Share1_thumb[4]" border="0" alt="Share1_thumb[4]" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/The-Share-Icon-on-Windows-Phone_15C5/Share1_thumb%5B4%5D_thumb.png" width="48" height="48" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
So what is a developer to do again? Well, since I did not like the ‘gift’ share icon
I decided to start using this icon in our Windows Phone apps instead of the ‘gift’
icon. Yes, this does go against my previous advice of being consistent on the platform
but rules are meant to be broken! I’m pretty confident that changing the ‘share icon’
on Windows Phone will not cause any confusion with users but I’ll have to wait and
see. I’m also assuming since Windows 8 uses Metro and Windows Phone uses Metro, I
think they will align everything properly in terms of the &lt;a href="http://blog.markarteaga.com/WindowsPhone7DesignAndMetro.aspx" target="_blank"&gt;Metro
Design Language&lt;/a&gt; (let’s hope they also bring the OSes together since Win8 will
support ARM!)
&lt;/p&gt;
&lt;p&gt;
Now if you want to use this icon you can download it at the &lt;a href="http://www.shareaholic.com/openshareicon" target="_blank"&gt;Open
Share Icon&lt;/a&gt; website. If you want to include it in your &lt;a href="http://blog.markarteaga.com/content/binary/OpenShareIcon.png" target="_blank"&gt;Windows
Phone app, here is a share icon you can use&lt;/a&gt; in the Application Bar. If you read
my article on ‘&lt;a href="http://blog.markarteaga.com/QuickTipThemeAwareIcons.aspx" target="_blank"&gt;Theme
Aware Icons’&lt;/a&gt; you can also use this piece of XAML within a page which essentially
renders a Path
&lt;/p&gt;
&lt;pre style="width: 97.61%; height: 141px" class="code"&gt;&lt;span style="color: blue"&gt;&lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Path &lt;/span&gt;&lt;span style="color: red"&gt;Data&lt;/span&gt;&lt;span style="color: blue"&gt;="M23.8306,18.3706C21.1596,18.3706,18.9946,20.5296,18.9946,23.1906C18.9946,25.8526,21.1596,28.0126,23.8306,28.0126C26.5006,28.0126,&lt;br /&gt;
28.6666,25.8526,28.6666,23.1906C28.6666,20.5296,26.5006,18.3706,23.8306,18.3706 M34.0216,23.5926L34.0276,23.5936C33.0816,23.5936,32.3126,&lt;br /&gt;
24.2496,32.0976,25.0006C32.0856,25.0556,32.0736,25.1096,32.0606,25.1626C32.0566,25.1776,32.0546,25.1916,32.0526,25.2066L32.0506,&lt;br /&gt;
25.1986C31.1486,28.8886,27.8106,31.6266,23.8306,31.6266C22.1136,31.6266,20.5166,31.1176,19.1826,30.2406C18.8596,30.0216,18.4696,29.8926,&lt;br /&gt;
18.0486,29.8926C16.9356,29.8926,16.0346,30.7916,16.0346,31.9026C16.0346,32.5976,16.3896,33.2126,16.9306,33.5726L16.9296,33.5726C18.9066,&lt;br /&gt;
34.8826,21.2786,35.6446,23.8306,35.6446C29.1686,35.6446,33.7236,32.3066,35.5116,27.6106L40.7556,27.6106L40.7556,23.5926z
M23.8306,&lt;br /&gt;
14.7536C25.5816,14.7536,27.2096,15.2846,28.5596,16.1936L28.5606,16.1916C28.8806,16.4046,29.2646,16.5286,29.6786,16.5286C30.7906,16.5286,&lt;br /&gt;
31.6926,15.6286,31.6926,14.5196C31.6926,13.7886,31.2996,13.1486,30.7156,12.7976C28.7406,11.4956,26.3746,10.7366,23.8306,10.7366C18.4916,&lt;br /&gt;
10.7366,13.9376,14.0756,12.1486,18.7706L6.9056,18.7706L6.9056,22.7896L13.6686,22.7896C14.5856,22.7736,15.3316,22.1426,15.5566,21.4136C15.5736,&lt;br /&gt;
21.3356,15.5916,21.2576,15.6096,21.1806C15.6106,21.1796,15.6106,21.1786,15.6106,21.1776C16.5166,17.4906,19.8526,14.7536,23.8306,14.7536" 
&lt;br /&gt;
&lt;/span&gt;&lt;span style="color: red"&gt;Fill&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;PhoneForegroundBrush&lt;/span&gt;&lt;span style="color: blue"&gt;}" &lt;/span&gt;&lt;span style="color: red"&gt;Height&lt;/span&gt;&lt;span style="color: blue"&gt;="24.908" &lt;/span&gt;&lt;span style="color: red"&gt;Stretch&lt;/span&gt;&lt;span style="color: blue"&gt;="Fill" &lt;/span&gt;&lt;span style="color: red"&gt;Width&lt;/span&gt;&lt;span style="color: blue"&gt;="33.85" &lt;/span&gt;&lt;span style="color: red"&gt;UseLayoutRounding&lt;/span&gt;&lt;span style="color: blue"&gt;&lt;&lt;/span&gt;="False"&gt; &lt;span style="color: #a31515"&gt;Path.Clip&lt;/span&gt;&lt;span style="color: blue"&gt;&lt;&lt;/span&gt;&gt; &lt;span style="color: #a31515"&gt;RectangleGeometry &lt;/span&gt;&lt;span style="color: red"&gt;RadiusY&lt;/span&gt;&lt;span style="color: blue"&gt;="0" &lt;/span&gt;&lt;span style="color: red"&gt;RadiusX&lt;/span&gt;&lt;span style="color: blue"&gt;="0" &lt;/span&gt;&lt;span style="color: red"&gt;Rect&lt;/span&gt;&lt;span style="color: blue"&gt;&lt;&lt;/span&gt;="0,-1,48,48"&gt; &lt;span style="color: #a31515"&gt;RectangleGeometry.Transform&lt;/span&gt;&lt;span style="color: blue"&gt;&lt;&lt;/span&gt;&gt; &lt;span style="color: #a31515"&gt;MatrixTransform &lt;/span&gt;&lt;span style="color: red"&gt;Matrix&lt;/span&gt;&lt;span style="color: blue"&gt;&lt;/span&gt;="1,0,0,1,-6.90560007095337,-10.7365999221802"/&gt; &lt;span style="color: #a31515"&gt;RectangleGeometry.Transform&lt;/span&gt;&lt;span style="color: blue"&gt;&lt;/span&gt;&gt; &lt;span style="color: #a31515"&gt;RectangleGeometry&lt;/span&gt;&lt;span style="color: blue"&gt;&lt;/span&gt;&gt; &lt;span style="color: #a31515"&gt;Path.Clip&lt;/span&gt;&lt;span style="color: blue"&gt;&lt;/span&gt;&gt; &lt;span style="color: #a31515"&gt;Path&lt;/span&gt;&lt;span style="color: blue"&gt;&gt; &lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;
So what do you think, is it a good idea to deviate from the standard platform share
icon? Share your thoughts via comments here or via twitter &lt;a href="http://twitter.com/MarkArteaga"&gt;@MarkArteaga&lt;/a&gt;!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.markarteaga.com/aggbug.ashx?id=dc075127-5a66-4d7a-b3cb-5aee37b95d53" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=KNZQIZweZ48:M9jT4szS4ug:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=KNZQIZweZ48:M9jT4szS4ug:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=KNZQIZweZ48:M9jT4szS4ug:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=KNZQIZweZ48:M9jT4szS4ug:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=KNZQIZweZ48:M9jT4szS4ug:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=KNZQIZweZ48:M9jT4szS4ug:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=KNZQIZweZ48:M9jT4szS4ug:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=KNZQIZweZ48:M9jT4szS4ug:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=KNZQIZweZ48:M9jT4szS4ug:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=KNZQIZweZ48:M9jT4szS4ug:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkArteaga/~4/KNZQIZweZ48" height="1" width="1"/&gt;</description>
      <comments>http://blog.markarteaga.com/CommentView,guid,dc075127-5a66-4d7a-b3cb-5aee37b95d53.aspx</comments>
      <category>UI</category>
      <category>UX</category>
      <category>Windows Phone</category>
    <feedburner:origLink>http://blog.markarteaga.com/TheShareIconOnWindowsPhone.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.markarteaga.com/Trackback.aspx?guid=b1cb65d3-0164-40a3-92ef-1a26eacf0af4</trackback:ping>
      <pingback:server>http://blog.markarteaga.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.markarteaga.com/PermaLink,guid,b1cb65d3-0164-40a3-92ef-1a26eacf0af4.aspx</pingback:target>
      <dc:creator>Mark Arteaga</dc:creator>
      <wfw:comment>http://blog.markarteaga.com/CommentView,guid,b1cb65d3-0164-40a3-92ef-1a26eacf0af4.aspx</wfw:comment>
      <wfw:commentRss>http://blog.markarteaga.com/SyndicationService.asmx/GetEntryCommentsRss?guid=b1cb65d3-0164-40a3-92ef-1a26eacf0af4</wfw:commentRss>
      
      <title>The Share Icon</title>
      <guid isPermaLink="false">http://blog.markarteaga.com/PermaLink,guid,b1cb65d3-0164-40a3-92ef-1a26eacf0af4.aspx</guid>
      <link>http://feedproxy.google.com/~r/MarkArteaga/~3/eI95xYwdDj8/TheShareIcon.aspx</link>
      <pubDate>Thu, 27 Oct 2011 17:25:00 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
I have been working on a couple of mobile projects on different platforms that deal&#xD;
with sharing content with social networks.  Unfortunately every platform has&#xD;
a different icon and there are two standard ones that are used on the web.  Here&#xD;
is a list of all the icons I feel are standard out there both on the web and on mobile&#xD;
platforms&#xD;
&lt;/p&gt;&#xD;
        &lt;table border="0" cellspacing="0" cellpadding="2" width="100%"&gt;&#xD;
          &lt;tbody&gt;&#xD;
            &lt;tr&gt;&#xD;
              &lt;td valign="top"&gt;&#xD;
                &lt;strong&gt;&#xD;
                  &lt;u&gt;Platform&lt;/u&gt;&#xD;
                &lt;/strong&gt;&#xD;
              &lt;/td&gt;&#xD;
              &lt;td valign="top"&gt;&#xD;
                &lt;strong&gt;&#xD;
                  &lt;u&gt;Icon&lt;/u&gt;&#xD;
                &lt;/strong&gt;&#xD;
              &lt;/td&gt;&#xD;
              &lt;td valign="top"&gt;&#xD;
                &lt;strong&gt;&#xD;
                  &lt;u&gt;Description&lt;/u&gt;&#xD;
                &lt;/strong&gt;&#xD;
              &lt;/td&gt;&#xD;
            &lt;/tr&gt;&#xD;
            &lt;tr&gt;&#xD;
              &lt;td valign="top"&gt;&#xD;
Web&lt;/td&gt;&#xD;
              &lt;td valign="top"&gt;&#xD;
                &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/The-Share-Icon_CD80/Share_ShareIconProject_7.png"&gt;&#xD;
                  &lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Share_ShareIconProject" border="0" alt="Share_ShareIconProject" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/The-Share-Icon_CD80/Share_ShareIconProject_thumb_2.png" width="47" height="47"&gt;&lt;/img&gt;&#xD;
                &lt;/a&gt;&#xD;
              &lt;/td&gt;&#xD;
              &lt;td valign="top"&gt;&#xD;
                &lt;a href="http://shareicons.com/" target="_blank"&gt;Share Icon Project&lt;/a&gt; which seems&#xD;
to be the one most everyone uses.  I’m sure most are already familiar with this&#xD;
icon and is pretty standard.&lt;/td&gt;&#xD;
            &lt;/tr&gt;&#xD;
            &lt;tr&gt;&#xD;
              &lt;td valign="top"&gt;&#xD;
Web&lt;/td&gt;&#xD;
              &lt;td valign="top"&gt;&#xD;
                &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/The-Share-Icon_CD80/Share1_2.png"&gt;&#xD;
                  &lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="Share1" border="0" alt="Share1" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/The-Share-Icon_CD80/Share1_thumb.png" width="48" height="48"&gt;&lt;/img&gt;&#xD;
                &lt;/a&gt;&#xD;
              &lt;/td&gt;&#xD;
              &lt;td valign="top"&gt;&#xD;
Share icon which was created by &lt;a href="http://www.shareaholic.com" target="_blank"&gt;Shareaholic&lt;/a&gt; which&#xD;
is called the &lt;a href="http://www.shareaholic.com/openshareicon" target="_blank"&gt;Open&#xD;
Share Icon&lt;/a&gt;.  I was not very familiar with this icon until I noticed it on&#xD;
Windows 8.&lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/The-Share-Icon_CD80/image_thumb107_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb107" border="0" alt="image_thumb107" align="left" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/The-Share-Icon_CD80/image_thumb107_thumb.png" width="240" height="193"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/td&gt;&#xD;
            &lt;/tr&gt;&#xD;
            &lt;tr&gt;&#xD;
              &lt;td valign="top"&gt;&#xD;
iPhone&lt;/td&gt;&#xD;
              &lt;td valign="top"&gt;&#xD;
                &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/The-Share-Icon_CD80/Share_ShareIconProject_4.png"&gt;&#xD;
                  &lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="Share_ShareIconProject" border="0" alt="Share_ShareIconProject" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/The-Share-Icon_CD80/Share_ShareIconProject_thumb_1.png" width="47" height="47"&gt;&lt;/img&gt;&#xD;
                &lt;/a&gt;&#xD;
              &lt;/td&gt;&#xD;
              &lt;td valign="top"&gt;&#xD;
On the iOS platform (iPhone and iPad) seems developers have gravitated towards the &lt;a href="http://shareicons.com/" target="_blank"&gt;Share&#xD;
Icon Project&lt;/a&gt; icon. &#xD;
&lt;/td&gt;&#xD;
            &lt;/tr&gt;&#xD;
            &lt;tr&gt;&#xD;
              &lt;td valign="top"&gt;&#xD;
Android&lt;/td&gt;&#xD;
              &lt;td valign="top"&gt;&#xD;
                &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/The-Share-Icon_CD80/Android_2.png"&gt;&#xD;
                  &lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="Android" border="0" alt="Android" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/The-Share-Icon_CD80/Android_thumb.png" width="48" height="48"&gt;&lt;/img&gt;&#xD;
                &lt;/a&gt;&#xD;
                &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/The-Share-Icon_CD80/Share_ShareIconProject_10.png"&gt;&#xD;
                  &lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Share_ShareIconProject" border="0" alt="Share_ShareIconProject" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/The-Share-Icon_CD80/Share_ShareIconProject_thumb_3.png" width="47" height="47"&gt;&lt;/img&gt;&#xD;
                &lt;/a&gt;&#xD;
              &lt;/td&gt;&#xD;
              &lt;td valign="top"&gt;&#xD;
On Android, seems there is a mix of icons used and uses both the &lt;a href="http://shareicons.com/" target="_blank"&gt;Share&#xD;
Icon Project&lt;/a&gt; icon and it’s own icon with a ‘circle with two arrows pointing up’.  &#xD;
&lt;/td&gt;&#xD;
            &lt;/tr&gt;&#xD;
            &lt;tr&gt;&#xD;
              &lt;td valign="top"&gt;&#xD;
Windows Phone&lt;/td&gt;&#xD;
              &lt;td valign="top"&gt;&#xD;
                &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/The-Share-Icon_CD80/appbar.share.rest_thumb%5B2%5D_2.png"&gt;&#xD;
                  &lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="appbar.share.rest_thumb[2]" border="0" alt="appbar.share.rest_thumb[2]" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/The-Share-Icon_CD80/appbar.share.rest_thumb%5B2%5D_thumb.png" width="48" height="48"&gt;&lt;/img&gt;&#xD;
                &lt;/a&gt;&#xD;
              &lt;/td&gt;&#xD;
              &lt;td valign="top"&gt;&#xD;
On Windows Phone, well they don’t use any of the ‘standard’ icons and went their own&#xD;
way also.  This never really made sense to me as to why they did this but it&#xD;
is what it is.&lt;/td&gt;&#xD;
            &lt;/tr&gt;&#xD;
            &lt;tr&gt;&#xD;
              &lt;td valign="top"&gt;&#xD;
 &lt;/td&gt;&#xD;
              &lt;td valign="top"&gt;&#xD;
 &lt;/td&gt;&#xD;
              &lt;td valign="top"&gt;&#xD;
 &lt;/td&gt;&#xD;
            &lt;/tr&gt;&#xD;
          &lt;/tbody&gt;&#xD;
        &lt;/table&gt;&#xD;
        &lt;p&gt;&#xD;
 &#xD;
&lt;/p&gt;&#xD;
        &lt;h1&gt;&#xD;
          &lt;font style="font-weight: bold"&gt;&#xD;
            &lt;u&gt;So what is a developer to do?&lt;/u&gt;&#xD;
          &lt;/font&gt;&#xD;
        &lt;/h1&gt;&#xD;
        &lt;p&gt;&#xD;
Well here is my advice, use whatever is standard on the platform, that is what most&#xD;
users will be familiar with and comfortable using.  I think you want to keep&#xD;
users comfortable with your application and not deviate from the norm on the platform. &#xD;
You want to keep that user experience consistent and make your application feel as&#xD;
though it’s a part of the platform and not something that has just been shoved into&#xD;
the platform from a port.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
What do you think?  Agree? Disagree? Let me know! Feel free to contact me here&#xD;
or via twitter &lt;a href="http://twitter.com/MarkArteaga"&gt;@MarkArteaga&lt;/a&gt;!&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.markarteaga.com/aggbug.ashx?id=b1cb65d3-0164-40a3-92ef-1a26eacf0af4"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=eI95xYwdDj8:3q0_lTDdtkE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=eI95xYwdDj8:3q0_lTDdtkE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=eI95xYwdDj8:3q0_lTDdtkE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=eI95xYwdDj8:3q0_lTDdtkE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=eI95xYwdDj8:3q0_lTDdtkE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=eI95xYwdDj8:3q0_lTDdtkE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=eI95xYwdDj8:3q0_lTDdtkE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=eI95xYwdDj8:3q0_lTDdtkE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=eI95xYwdDj8:3q0_lTDdtkE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=eI95xYwdDj8:3q0_lTDdtkE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkArteaga/~4/eI95xYwdDj8" height="1" width="1"/&gt;</description>
      <comments>http://blog.markarteaga.com/CommentView,guid,b1cb65d3-0164-40a3-92ef-1a26eacf0af4.aspx</comments>
      <category>General</category>
      <category>UX</category>
    <feedburner:origLink>http://blog.markarteaga.com/TheShareIcon.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.markarteaga.com/Trackback.aspx?guid=f9bf0825-3394-4dbf-a2e1-166abfa41862</trackback:ping>
      <pingback:server>http://blog.markarteaga.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.markarteaga.com/PermaLink,guid,f9bf0825-3394-4dbf-a2e1-166abfa41862.aspx</pingback:target>
      <dc:creator>Mark Arteaga</dc:creator>
      <wfw:comment>http://blog.markarteaga.com/CommentView,guid,f9bf0825-3394-4dbf-a2e1-166abfa41862.aspx</wfw:comment>
      <wfw:commentRss>http://blog.markarteaga.com/SyndicationService.asmx/GetEntryCommentsRss?guid=f9bf0825-3394-4dbf-a2e1-166abfa41862</wfw:commentRss>
      <slash:comments>3</slash:comments>
      
      <title>Windows Phone and Database Support Part 2</title>
      <guid isPermaLink="false">http://blog.markarteaga.com/PermaLink,guid,f9bf0825-3394-4dbf-a2e1-166abfa41862.aspx</guid>
      <link>http://feedproxy.google.com/~r/MarkArteaga/~3/4YcXxMMyi3U/WindowsPhoneAndDatabaseSupportPart2.aspx</link>
      <pubDate>Mon, 24 Oct 2011 17:30:00 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Back in June, I did a few blog posts on &lt;a href="http://blog.markarteaga.com/SummaryOfWindowsPhoneMangoPosts.aspx" target="_blank"&gt;Windows&#xD;
Phone 7.1 SDK and some new features&lt;/a&gt; for developers.   I also did one&#xD;
specifically on &lt;a href="http://blog.markarteaga.com/WindowsPhoneAndDatabaseSupport.aspx" target="_blank"&gt;Windows&#xD;
Phone and database support&lt;/a&gt; as this was a huge pain point for developers including&#xD;
myself.  Well with Windows Phone 7.5, things are a lot better.  I’ll quickly&#xD;
go through how to get a database up and running, access the data and update the data.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
For this sample, we’ll be creating a quick application to track kilometers for a car.&#xD;
We are basically going to have a Car class, and a car will have a collection of Kilometer&#xD;
Entry Items. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;u&gt;Creating our Model&lt;/u&gt;&#xD;
          &lt;/strong&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Creating your via code is a manual process, unlike the desktop devs, we don’t have&#xD;
a designer, although I would imagine you could generate the code with the desktop&#xD;
tools and then modify the generated code.  I’ll take the long way as you have&#xD;
more control and see what is going on and so you learn more IMO. First we have to&#xD;
create our model and will essentially look like this (&lt;strong&gt;NOTE: This is not an&#xD;
extensive Kilometer tracking application, just a sample, feel free to extend, make&#xD;
better and sell on marketplace&lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/SQL-Server-Compact-and-Windows-Phone-7_3839/wlEmoticon-smile_2.png"&gt;&lt;/img&gt;)&lt;/strong&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/SQL-Server-Compact-and-Windows-Phone-7_3839/image_4.png"&gt;&#xD;
            &lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/SQL-Server-Compact-and-Windows-Phone-7_3839/image_thumb_1.png" width="640" height="268"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Because we are using LINQ to SQL we will be creating ‘mostly’ some plain old CLR objects&#xD;
(POCOs) and decorating our class and properties with some attributes.  Specifically&#xD;
we will be using the &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.linq.mapping.tableattribute.aspx" target="_blank"&gt;System.Data.Linq.Mapping.TableAttribute&lt;/a&gt; for&#xD;
our class which will represent our tables and &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.linq.mapping.columnattribute.aspx" target="_blank"&gt;System.Data.Linq.Mapping.ColumnAttribute&lt;/a&gt; for&#xD;
our properties which will represent our table columns.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Since a Car will have a collection of KilometerItems we will also have to use &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.linq.mapping.associationattribute.aspx" target="_blank"&gt;System.Data.Linq.AssociationAttribute&lt;/a&gt; which&#xD;
will allow us to associate a collection of records to a Car record.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
As for the POCOs, you will noticed I said ‘mostly’ POCO.  The reason for this&#xD;
is because of our Association requires a little bit of code to make LINQ to SQL work. &#xD;
We’ll start with the Car class&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;[&lt;span style="color: #2b91af"&gt;Table&lt;/span&gt;] &lt;span style="color: blue"&gt;public&#xD;
class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Car &lt;/span&gt;{ &lt;span style="color: blue"&gt;private &lt;/span&gt;&lt;span style="color: #2b91af"&gt;EntitySet&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;KilometerItem&lt;/span&gt;&amp;gt;&#xD;
m_KilometerItems; &lt;span style="color: blue"&gt;public &lt;/span&gt;Car() { &lt;span style="color: blue"&gt;this&lt;/span&gt;.m_KilometerItems&#xD;
= &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;EntitySet&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;KilometerItem&lt;/span&gt;&amp;gt;(&#xD;
((item) =&amp;gt; item.Car = &lt;span style="color: blue"&gt;this&lt;/span&gt;), ((item) =&amp;gt; item.Car&#xD;
= &lt;span style="color: blue"&gt;null&lt;/span&gt;)); } [&lt;span style="color: #2b91af"&gt;Column&lt;/span&gt;(IsPrimaryKey&#xD;
= &lt;span style="color: blue"&gt;true&lt;/span&gt;, IsDbGenerated = &lt;span style="color: blue"&gt;true&lt;/span&gt;,&#xD;
DbType = &lt;span style="color: #a31515"&gt;"INT NOT NULL Identity"&lt;/span&gt;, CanBeNull&#xD;
= &lt;span style="color: blue"&gt;false&lt;/span&gt;, AutoSync = &lt;span style="color: #2b91af"&gt;AutoSync&lt;/span&gt;.OnInsert)] &lt;span style="color: blue"&gt;public&#xD;
int &lt;/span&gt;Id { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;;&#xD;
} [&lt;span style="color: #2b91af"&gt;Column&lt;/span&gt;] &lt;span style="color: blue"&gt;public int &lt;/span&gt;CurrentKilometers&#xD;
{ &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; } [&lt;span style="color: #2b91af"&gt;Column&lt;/span&gt;] &lt;span style="color: blue"&gt;public&#xD;
string &lt;/span&gt;DisplayName { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;;&#xD;
} [&lt;span style="color: #2b91af"&gt;Association&lt;/span&gt;(Name = &lt;span style="color: #a31515"&gt;"FK_Car_KMItems"&lt;/span&gt;,&#xD;
Storage = &lt;span style="color: #a31515"&gt;"m_KilometerItems"&lt;/span&gt;, ThisKey&#xD;
= &lt;span style="color: #a31515"&gt;"Id"&lt;/span&gt;, OtherKey = &lt;span style="color: #a31515"&gt;"CarId"&lt;/span&gt;)] &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;EntitySet&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;KilometerItem&lt;/span&gt;&amp;gt;&#xD;
KilometerItems { &lt;span style="color: blue"&gt;get &lt;/span&gt;{ &lt;span style="color: blue"&gt;return &lt;/span&gt;m_KilometerItems;&#xD;
} } }&lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
Few things to notice&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;EntitySet&lt;/strong&gt; – we have a an EntitySet&amp;lt;KilometerItem&amp;gt; which holds&#xD;
a reference to our collection of KilometerItems for the associated car &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Constructor&lt;/strong&gt; – when a KilometerItem is added or removed, we want to&#xD;
set or remove the reference to the Car object, so we pass in a Delegate to the EntitySet.Removed&#xD;
and EntitySet.Added parameters. &#xD;
&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p&gt;&#xD;
Now here is our KilometerItem class &#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;[&lt;span style="color: #2b91af"&gt;Table&lt;/span&gt;] &lt;span style="color: blue"&gt;public&#xD;
class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;KilometerItem &lt;/span&gt;{ [&lt;span style="color: #2b91af"&gt;Column&lt;/span&gt;(IsPrimaryKey&#xD;
= &lt;span style="color: blue"&gt;true&lt;/span&gt;, IsDbGenerated = &lt;span style="color: blue"&gt;true&lt;/span&gt;,&#xD;
DbType = &lt;span style="color: #a31515"&gt;"INT NOT NULL Identity"&lt;/span&gt;, CanBeNull&#xD;
= &lt;span style="color: blue"&gt;false&lt;/span&gt;, AutoSync = &lt;span style="color: #2b91af"&gt;AutoSync&lt;/span&gt;.OnInsert)] &lt;span style="color: blue"&gt;public&#xD;
int &lt;/span&gt;Id { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;;&#xD;
} [&lt;span style="color: #2b91af"&gt;Column&lt;/span&gt;(CanBeNull=&lt;span style="color: blue"&gt;false&lt;/span&gt;)] &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DateTime &lt;/span&gt;Date&#xD;
{ &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; } [&lt;span style="color: #2b91af"&gt;Column&lt;/span&gt;] &lt;span style="color: blue"&gt;public&#xD;
int &lt;/span&gt;StartKilometers { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;;&#xD;
} [&lt;span style="color: #2b91af"&gt;Column&lt;/span&gt;] &lt;span style="color: blue"&gt;public int &lt;/span&gt;EndKilometers&#xD;
{ &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; } [&lt;span style="color: #2b91af"&gt;Column&lt;/span&gt;] &lt;span style="color: blue"&gt;public&#xD;
int &lt;/span&gt;TotalKilometersForEntry { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;;&#xD;
} [&lt;span style="color: #2b91af"&gt;Column&lt;/span&gt;] &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;TripType &lt;/span&gt;TripType&#xD;
{ &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; } [&lt;span style="color: #2b91af"&gt;Column&lt;/span&gt;(CanBeNull&#xD;
= &lt;span style="color: blue"&gt;false&lt;/span&gt;)] &lt;span style="color: blue"&gt;public string &lt;/span&gt;DisplayName&#xD;
{ &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; } [&lt;span style="color: #2b91af"&gt;Column&lt;/span&gt;(DbType&#xD;
= &lt;span style="color: #a31515"&gt;"Int"&lt;/span&gt;)] &lt;span style="color: blue"&gt;public&#xD;
int&lt;/span&gt;? CarId { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;;&#xD;
} &lt;span style="color: blue"&gt;private &lt;/span&gt;&lt;span style="color: #2b91af"&gt;EntityRef&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;Car&lt;/span&gt;&amp;gt;&#xD;
m_CarRef = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;EntityRef&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;Car&lt;/span&gt;&amp;gt;();&#xD;
[&lt;span style="color: #2b91af"&gt;Association&lt;/span&gt;(Name = &lt;span style="color: #a31515"&gt;"FK_Car_KMItems"&lt;/span&gt;,&#xD;
Storage = &lt;span style="color: #a31515"&gt;"m_CarRef"&lt;/span&gt;, ThisKey = &lt;span style="color: #a31515"&gt;"CarId"&lt;/span&gt;,&#xD;
OtherKey = &lt;span style="color: #a31515"&gt;"Id"&lt;/span&gt;, IsForeignKey = &lt;span style="color: blue"&gt;true&lt;/span&gt;)] &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Car &lt;/span&gt;Car&#xD;
{ &lt;span style="color: blue"&gt;get &lt;/span&gt;{ &lt;span style="color: blue"&gt;return this&lt;/span&gt;.m_CarRef.Entity;&#xD;
} &lt;span style="color: blue"&gt;set &lt;/span&gt;{ &lt;span style="color: blue"&gt;var &lt;/span&gt;previousRef&#xD;
= &lt;span style="color: blue"&gt;this&lt;/span&gt;.m_CarRef.Entity; &lt;span style="color: blue"&gt;if &lt;/span&gt;(previousRef&#xD;
!= &lt;span style="color: blue"&gt;value &lt;/span&gt;|| !&lt;span style="color: blue"&gt;this&lt;/span&gt;.m_CarRef.HasLoadedOrAssignedValue)&#xD;
{ &lt;span style="color: blue"&gt;if &lt;/span&gt;(previousRef != &lt;span style="color: blue"&gt;null&lt;/span&gt;) &lt;span style="color: blue"&gt;this&lt;/span&gt;.m_CarRef.Entity&#xD;
= &lt;span style="color: blue"&gt;null&lt;/span&gt;; &lt;span style="color: blue"&gt;this&lt;/span&gt;.m_CarRef.Entity&#xD;
= &lt;span style="color: blue"&gt;value&lt;/span&gt;; &lt;span style="color: blue"&gt;if &lt;/span&gt;(&lt;span style="color: blue"&gt;value &lt;/span&gt;!= &lt;span style="color: blue"&gt;null&lt;/span&gt;) &lt;span style="color: blue"&gt;this&lt;/span&gt;.CarId&#xD;
= &lt;span style="color: blue"&gt;value&lt;/span&gt;.Id; &lt;span style="color: blue"&gt;else this&lt;/span&gt;.CarId&#xD;
= &lt;span style="color: blue"&gt;default&lt;/span&gt;(&lt;span style="color: blue"&gt;int&lt;/span&gt;?);&#xD;
} } } }&lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
The main thing here is the Car property.  If you remember from the Car class,&#xD;
we set this KilometerItem.Car property when an item is added or removed from the Car.KilometerItems&#xD;
EntitySet.  This allows us to have a reference to the Car object that ‘owns’&#xD;
this KilometerItem.  Other than that it’s a standard POCO with a bunch of attributes.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
In both classes you will also want to notice the Id Property.  You will require&#xD;
this because we are making a 1 to many association from Car to KilometerItem. &#xD;
You will notice our Column attribute also specifies some parameters to auto generated&#xD;
the property, that it’s a primary key etc.&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;[&lt;span style="color: #2b91af"&gt;Column&lt;/span&gt;(IsPrimaryKey = &lt;span style="color: blue"&gt;true&lt;/span&gt;,&#xD;
IsDbGenerated = &lt;span style="color: blue"&gt;true&lt;/span&gt;, DbType = &lt;span style="color: #a31515"&gt;"INT&#xD;
NOT NULL Identity"&lt;/span&gt;, CanBeNull = &lt;span style="color: blue"&gt;false&lt;/span&gt;,&#xD;
AutoSync = &lt;span style="color: #2b91af"&gt;AutoSync&lt;/span&gt;.OnInsert)]&lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
 &#xD;
&lt;/p&gt;&#xD;
        &lt;h1&gt;&#xD;
          &lt;font style="font-weight: bold"&gt;&#xD;
            &lt;u&gt;Creating the Database&lt;/u&gt;&#xD;
          &lt;/font&gt;&#xD;
        &lt;/h1&gt;&#xD;
        &lt;p&gt;&#xD;
There are two ways to create the database, either via code or you can embed a database&#xD;
prepopulated with data in your application. To Create a database manually do the following&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
In Visual Studio, open Server Explorer &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Click on the Add Connection button &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/SQL-Server-Compact-and-Windows-Phone-7_3839/image_6.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/SQL-Server-Compact-and-Windows-Phone-7_3839/image_thumb_2.png" width="30" height="33"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
You’ll be presented with a dialog, should be self explanatory from there &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/SQL-Server-Compact-and-Windows-Phone-7_3839/wlEmoticon-smile_2.png"&gt;&lt;/img&gt;&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p&gt;&#xD;
I don’t think you learn much from Wizards, so we’ll create one using code.  First&#xD;
thing we have to create is a class that inherits from &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.linq.datacontext.aspx" target="_blank"&gt;System.Data.Linq.DataContext&lt;/a&gt;. &#xD;
Here is our CarTrackerContext class&#xD;
&lt;/p&gt;&#xD;
        &lt;pre style="width: 95.29%; height: 328px" class="code"&gt;&#xD;
          &lt;span style="color: blue"&gt;public&#xD;
class &lt;/span&gt;&#xD;
          &lt;span style="color: #2b91af"&gt;CarTrackerContext &lt;/span&gt;: &lt;span style="color: #2b91af"&gt;DataContext &lt;/span&gt;{ &lt;span style="color: blue"&gt;private&#xD;
static string &lt;/span&gt;CONNECTION_STRING = &lt;span style="color: #a31515"&gt;"Data Source=isostore:/CarTracker.sdf"&lt;/span&gt;; &lt;span style="color: blue"&gt;public &lt;/span&gt;CarTrackerContext()&#xD;
: &lt;span style="color: blue"&gt;base&lt;/span&gt;(CONNECTION_STRING) { } &lt;span style="color: gray"&gt;///&#xD;
&amp;lt;summary&amp;gt; /// &lt;/span&gt;&lt;span style="color: green"&gt;Represents the car table &lt;/span&gt;&lt;span style="color: gray"&gt;///&#xD;
&amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Table&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;Car&lt;/span&gt;&amp;gt;&#xD;
CarTable; &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Table&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;KilometerItem&lt;/span&gt;&amp;gt;&#xD;
KilometerItems; &lt;span style="color: blue"&gt;public void &lt;/span&gt;Initialize() { &lt;span style="color: blue"&gt;if &lt;/span&gt;(!&lt;span style="color: blue"&gt;this&lt;/span&gt;.DatabaseExists()) &lt;span style="color: blue"&gt;this&lt;/span&gt;.CreateDatabase();&#xD;
} }&lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
Couple things to cover&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
Connection strings: to get all the details on &lt;a href="http://msdn.microsoft.com/en-us/library/hh202861(VS.92).aspx" target="_blank"&gt;Connection&#xD;
String and Local Database on Windows Phone see MSDN&lt;/a&gt;.  But one key thing to&#xD;
notice is isostore which is unique to Windows Phone &#xD;
&lt;ul&gt;&lt;li&gt;&#xD;
isostore: this essentially means your database was created in code, is read/write&#xD;
and located in isolated storage for your app &#xD;
&lt;/li&gt;&lt;li&gt;&#xD;
appdata: this essentially means your database was included in your application, is&#xD;
in the installation folder and is read only.  You can copy this file into Isolated&#xD;
Storage to make it read/write. &#xD;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Initialize – we call this so we can check to see if the database exists and if it&#xD;
does not create it.  &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Updating Database – I don’t go through this as it’s another post on it’s own. &#xD;
Read this on &lt;a href="http://msdn.microsoft.com/en-us/library/hh394022(VS.92).aspx" target="_blank"&gt;MSDN&#xD;
on updating a local database on Windows Phone&lt;/a&gt;, it’s a must read! &#xD;
&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
And that is essentially it!  The DataContext class will take care of a lot of&#xD;
the heavy lifting to create the database and make lookups into tables using LINQ to&#xD;
SQL work.&#xD;
&lt;/p&gt;&#xD;
        &lt;h1&gt;&#xD;
          &lt;font style="font-weight: bold"&gt;&#xD;
            &lt;u&gt;Hooking It All Up&lt;/u&gt;&#xD;
          &lt;/font&gt;&#xD;
        &lt;/h1&gt;&#xD;
        &lt;p&gt;&#xD;
Usually you would want some sort of MVVM pattern to make things all connect. &#xD;
But again this is a sample and not best practices, so although your code will work,&#xD;
it’s really not a best practice so be warned.  I’m also not going through every&#xD;
details such as creating a new page etc as I’m assuming you already know how to do&#xD;
that.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
First thing we do is create our DataContext CarTrackerContext.  You can add the&#xD;
following code to your App.Xaml.cs&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;&#xD;
          &lt;span style="color: blue"&gt;private static &lt;/span&gt;&#xD;
          &lt;span style="color: #2b91af"&gt;CarTrackerContext &lt;/span&gt;m_context; &lt;span style="color: blue"&gt;public&#xD;
static &lt;/span&gt;&lt;span style="color: #2b91af"&gt;CarTrackerContext &lt;/span&gt;Context { &lt;span style="color: blue"&gt;get &lt;/span&gt;{ &lt;span style="color: blue"&gt;if &lt;/span&gt;(m_context&#xD;
== &lt;span style="color: blue"&gt;null&lt;/span&gt;) { m_context = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;CarTrackerContext&lt;/span&gt;();&#xD;
m_context.Initialize(); } &lt;span style="color: blue"&gt;return &lt;/span&gt;m_context; } }&lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
Next, we need to bind the collection of cars to a list in the MainPage.xaml. &#xD;
Our page will look like the following&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/SQL-Server-Compact-and-Windows-Phone-7_3839/image_8.png"&gt;&#xD;
            &lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/SQL-Server-Compact-and-Windows-Phone-7_3839/image_thumb_3.png" width="289" height="480"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
To bind the list, we will have to create an observable collection so the list can&#xD;
automatically update when something is added.  MainPage.xaml will have to implement&#xD;
INotifyPropertyChanged as follows&#xD;
&lt;/p&gt;&#xD;
        &lt;pre style="width: 95%; height: 45px" class="code"&gt;&#xD;
          &lt;span style="color: blue"&gt;public&#xD;
partial class &lt;/span&gt;&#xD;
          &lt;span style="color: #2b91af"&gt;MainPage &lt;/span&gt;: &lt;span style="color: #2b91af"&gt;PhoneApplicationPage&lt;/span&gt;, &lt;span style="color: #2b91af"&gt;INotifyPropertyChanged &lt;/span&gt;&lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
In your MainPage.Xaml, the ListBox should have the ItemSource property set as follows&#xD;
(again see source for a complete set)&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;&#xD;
          &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&#xD;
          &lt;span style="color: #a31515"&gt;ListBox &lt;/span&gt;&#xD;
          &lt;span style="color: red"&gt;ItemsSource&lt;/span&gt;&#xD;
          &lt;span style="color: blue"&gt;="{&lt;/span&gt;&#xD;
          &lt;span style="color: #a31515"&gt;Binding &lt;/span&gt;&#xD;
          &lt;span style="color: red"&gt;CarItems&lt;/span&gt;&#xD;
          &lt;span style="color: blue"&gt;}" &lt;/span&gt;&#xD;
        &lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
In your MainPage constructor add the following which will set the DataContext for&#xD;
your page&#xD;
&lt;/p&gt;&#xD;
        &lt;pre style="width: 95.75%; height: 53px" class="code"&gt;&#xD;
          &lt;span style="color: blue"&gt;this&lt;/span&gt;.DataContext&#xD;
= &lt;span style="color: blue"&gt;this&lt;/span&gt;;&lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
Then add the following code to allow us to bind a collection to the UI.&#xD;
&lt;/p&gt;&#xD;
        &lt;pre style="width: 95.58%; height: 174px" class="code"&gt;&#xD;
          &lt;span style="color: blue"&gt;private &lt;/span&gt;&#xD;
          &lt;span style="color: #2b91af"&gt;ObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;Car&lt;/span&gt;&amp;gt;&#xD;
m_CarItems; &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;Car&lt;/span&gt;&amp;gt;&#xD;
CarItems { &lt;span style="color: blue"&gt;get &lt;/span&gt;{ &lt;span style="color: blue"&gt;return &lt;/span&gt;m_CarItems;&#xD;
} &lt;span style="color: blue"&gt;set &lt;/span&gt;{ &lt;span style="color: blue"&gt;if &lt;/span&gt;(&lt;span style="color: blue"&gt;value &lt;/span&gt;!=&#xD;
m_CarItems) { m_CarItems = &lt;span style="color: blue"&gt;value&lt;/span&gt;; NotifyPropertyChanged(&lt;span style="color: #a31515"&gt;"CarItems"&lt;/span&gt;);&#xD;
} } }&lt;/pre&gt;&#xD;
And of course, because we implement INotifyPropertyChanged we need the following &lt;pre style="width: 95.41%; height: 111px" class="code"&gt;&lt;span style="color: blue"&gt;public&#xD;
event &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PropertyChangedEventHandler &lt;/span&gt;PropertyChanged; &lt;span style="color: blue"&gt;void &lt;/span&gt;NotifyPropertyChanged(&lt;span style="color: blue"&gt;string &lt;/span&gt;propertyName)&#xD;
{ &lt;span style="color: blue"&gt;if &lt;/span&gt;(PropertyChanged != &lt;span style="color: blue"&gt;null&lt;/span&gt;)&#xD;
PropertyChanged(&lt;span style="color: blue"&gt;this&lt;/span&gt;, &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PropertyChangedEventArgs&lt;/span&gt;(propertyName));&#xD;
}&lt;/pre&gt;&lt;p&gt;&#xD;
Our Add button at the bottom will allow us to add a new Car record so in the button&#xD;
click handler we add the following&#xD;
&lt;/p&gt;&lt;pre style="width: 95.55%; height: 28px" class="code"&gt;NavigationService.Navigate(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Uri&lt;/span&gt;(&lt;span style="color: #a31515"&gt;"/NewCar.xaml"&lt;/span&gt;, &lt;span style="color: #2b91af"&gt;UriKind&lt;/span&gt;.Relative));&lt;/pre&gt;&lt;p&gt;&#xD;
Now we create a NewCar.xaml page to allow us to create a new car as follows&#xD;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/SQL-Server-Compact-and-Windows-Phone-7_3839/image_10.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/SQL-Server-Compact-and-Windows-Phone-7_3839/image_thumb_4.png" width="286" height="480"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&#xD;
On the button click event for the done button (the checkmark image) we add the following&#xD;
&lt;/p&gt;&lt;pre style="width: 95.65%; height: 179px" class="code"&gt;&lt;span style="color: blue"&gt;try &lt;/span&gt;{ &lt;span style="color: #2b91af"&gt;App&lt;/span&gt;.Context.CarTable.InsertOnSubmit( &lt;span style="color: blue"&gt;new &lt;/span&gt;Model.&lt;span style="color: #2b91af"&gt;Car&lt;/span&gt;()&#xD;
{ CurrentKilometers = &lt;span style="color: #2b91af"&gt;Int32&lt;/span&gt;.Parse(txtKMs.Text),&#xD;
DisplayName = txtName.Text }); &lt;span style="color: #2b91af"&gt;App&lt;/span&gt;.Context.SubmitChanges(); &lt;span style="color: blue"&gt;if &lt;/span&gt;(NavigationService.CanGoBack)&#xD;
NavigationService.GoBack(); } &lt;span style="color: blue"&gt;catch &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;Exception &lt;/span&gt;ex)&#xD;
{ &lt;span style="color: #2b91af"&gt;MessageBox&lt;/span&gt;.Show(&lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515"&gt;"Unable&#xD;
to save record. Error: {0}"&lt;/span&gt;, ex.Message)); }&lt;/pre&gt;&lt;p&gt;&#xD;
Key things to note here is how we save the data.  We essentially create a new&#xD;
Car object, add it to the CarTrackerContext.CarTable and call CarTrackerContext.SubmitChanges&#xD;
and it will be added to the database.  Yes, it’s as easy as that to create a&#xD;
record!&#xD;
&lt;/p&gt;&lt;p&gt;&#xD;
When we navigate back to the main page we still won’t see any data in the list because&#xD;
it’s not bound to the CarItems property.  First we need to set this property&#xD;
and we do this in the OnNavigatedTo method of the MainPage.xaml.cs as follows&#xD;
&lt;/p&gt;&lt;pre style="width: 94.6%; height: 441px" class="code"&gt;&lt;span style="color: blue"&gt;protected&#xD;
override void &lt;/span&gt;OnNavigatedTo(&lt;span style="color: #2b91af"&gt;NavigationEventArgs &lt;/span&gt;e)&#xD;
{ &lt;span style="color: blue"&gt;if &lt;/span&gt;(e.NavigationMode == &lt;span style="color: #2b91af"&gt;NavigationMode&lt;/span&gt;.Back)&#xD;
{ &lt;span style="color: blue"&gt;var &lt;/span&gt;tCarItems = &lt;span style="color: blue"&gt;from &lt;/span&gt;t &lt;span style="color: blue"&gt;in &lt;/span&gt;&lt;span style="color: #2b91af"&gt;App&lt;/span&gt;.Context.CarTable &lt;span style="color: blue"&gt;select &lt;/span&gt;t; &lt;span style="color: blue"&gt;if &lt;/span&gt;(CarItems&#xD;
== &lt;span style="color: blue"&gt;null&lt;/span&gt;) CarItems = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;Car&lt;/span&gt;&amp;gt;(); &lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: blue"&gt;var &lt;/span&gt;car &lt;span style="color: blue"&gt;in &lt;/span&gt;tCarItems)&#xD;
{ &lt;span style="color: blue"&gt;var &lt;/span&gt;existingCar = &lt;span style="color: blue"&gt;from &lt;/span&gt;t &lt;span style="color: blue"&gt;in &lt;/span&gt;CarItems &lt;span style="color: blue"&gt;where &lt;/span&gt;t.Id.Equals(car.Id) &lt;span style="color: blue"&gt;select &lt;/span&gt;t; &lt;span style="color: blue"&gt;if &lt;/span&gt;(existingCar.Count()&#xD;
== 0) { &lt;span style="color: green"&gt;//nothing found so add it to the bottom &lt;/span&gt;CarItems.Add(car);&#xD;
NotifyPropertyChanged(&lt;span style="color: #a31515"&gt;"CarItems"&lt;/span&gt;); }&#xD;
} } &lt;span style="color: blue"&gt;else if &lt;/span&gt;(e.NavigationMode == &lt;span style="color: #2b91af"&gt;NavigationMode&lt;/span&gt;.New)&#xD;
{ &lt;span style="color: blue"&gt;if &lt;/span&gt;(CarItems == &lt;span style="color: blue"&gt;null&lt;/span&gt;)&#xD;
CarItems = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;Car&lt;/span&gt;&amp;gt;(); &lt;span style="color: blue"&gt;var &lt;/span&gt;tCarItems&#xD;
= &lt;span style="color: blue"&gt;from &lt;/span&gt;t &lt;span style="color: blue"&gt;in &lt;/span&gt;&lt;span style="color: #2b91af"&gt;App&lt;/span&gt;.Context.CarTable &lt;span style="color: blue"&gt;select &lt;/span&gt;t;&#xD;
CarItems = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;Car&lt;/span&gt;&amp;gt;(tCarItems);&#xD;
} &lt;span style="color: blue"&gt;base&lt;/span&gt;.OnNavigatedTo(e); }&lt;/pre&gt;&#xD;
A few things I do here, first, we check to see if the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.navigation.navigationmode.aspx" target="_blank"&gt;NavigationMode&lt;/a&gt; (which&#xD;
is new in Windows Phone 7.1 SDK) tells us if this is a New or a Back navigation. &#xD;
We can assume if it’s new, the app is just launching, and if it’s back we are coming&#xD;
back from a different page. &#xD;
&lt;p&gt;&#xD;
If we are launching for the first time, we just go ahead and fill up our ObservableCollection&#xD;
that is bound to the UI using a LINQ Query.  If it’s coming back from a different&#xD;
page, we want to only add new items to the list.  This way if an item is selected&#xD;
that item will stay selected and if the listbox is scrolled to a different position&#xD;
other than the top, that position won’t reset.  Remember it’s small things like&#xD;
this that make users happy but they don’t know it until it happens and they get irritated &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/SQL-Server-Compact-and-Windows-Phone-7_3839/wlEmoticon-smile_2.png"&gt;&lt;/img&gt;&lt;/p&gt;&lt;h1&gt;&lt;font style="font-weight: bold"&gt;&lt;u&gt;What About Tracking Kilometers&lt;/u&gt;&lt;/font&gt;&lt;/h1&gt;&lt;p&gt;&#xD;
Adding the functionality to add a kilometer record for a car record is essentially&#xD;
the same as adding a new card record. So I’m not going to go through all the code&#xD;
just some of the important points. &#xD;
&lt;/p&gt;&lt;p&gt;&#xD;
On the MainPage.xaml.cs we want to handle the ListBox.SelectionChanged event as follows&#xD;
&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;private void &lt;/span&gt;ListBox_SelectionChanged(&lt;span style="color: blue"&gt;object &lt;/span&gt;sender, &lt;span style="color: #2b91af"&gt;SelectionChangedEventArgs &lt;/span&gt;e)&#xD;
{ &lt;span style="color: blue"&gt;var &lt;/span&gt;lb = sender &lt;span style="color: blue"&gt;as &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ListBox&lt;/span&gt;; &lt;span style="color: blue"&gt;if &lt;/span&gt;(lb&#xD;
!= &lt;span style="color: blue"&gt;null&lt;/span&gt;) NavigationService.Navigate(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Uri&lt;/span&gt;( &lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515"&gt;"/CarKilometerItemsPage.xaml?carId={0}"&lt;/span&gt;,&#xD;
(lb.SelectedItem &lt;span style="color: blue"&gt;as &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Car&lt;/span&gt;).Id), &lt;span style="color: #2b91af"&gt;UriKind&lt;/span&gt;.Relative));&#xD;
}&lt;/pre&gt;&lt;p&gt;&#xD;
You will notice we are adding a query string to the URI, this way we know what KilometerItems&#xD;
we need to open on the new page which will look as follow&#xD;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/SQL-Server-Compact-and-Windows-Phone-7_3839/image_12.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/SQL-Server-Compact-and-Windows-Phone-7_3839/image_thumb.png" width="293" height="484"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&#xD;
On the CarKilometerItemsPage.xaml we again have a ListBox so we have an ObservableCollection&#xD;
that is bound to a list of KilometerItems associated with a Car object in our database. &#xD;
On the OnNavigatedTo we again have some code to update our list as follows&#xD;
&lt;/p&gt;&lt;pre style="width: 95.9%; height: 699px" class="code"&gt;&lt;span style="color: blue"&gt;protected&#xD;
override void &lt;/span&gt;OnNavigatedTo(&lt;span style="color: #2b91af"&gt;NavigationEventArgs &lt;/span&gt;e)&#xD;
{ &lt;span style="color: green"&gt;//grab the query string &lt;/span&gt;&lt;span style="color: blue"&gt;if &lt;/span&gt;(NavigationContext.QueryString.ContainsKey(&lt;span style="color: #a31515"&gt;"carId"&lt;/span&gt;))&#xD;
CarId = &lt;span style="color: #2b91af"&gt;Int32&lt;/span&gt;.Parse(NavigationContext.QueryString[&lt;span style="color: #a31515"&gt;"carId"&lt;/span&gt;]); &lt;span style="color: blue"&gt;if &lt;/span&gt;(CarId.HasValue)&#xD;
{ &lt;span style="color: blue"&gt;if &lt;/span&gt;(e.NavigationMode == &lt;span style="color: #2b91af"&gt;NavigationMode&lt;/span&gt;.Back)&#xD;
{ &lt;span style="color: blue"&gt;var &lt;/span&gt;tCarItem = (&lt;span style="color: blue"&gt;from &lt;/span&gt;t &lt;span style="color: blue"&gt;in &lt;/span&gt;&lt;span style="color: #2b91af"&gt;App&lt;/span&gt;.Context.CarTable &lt;span style="color: blue"&gt;where &lt;/span&gt;t.Id.Equals(CarId.Value) &lt;span style="color: blue"&gt;select &lt;/span&gt;t).FirstOrDefault(); &lt;span style="color: blue"&gt;if &lt;/span&gt;(KMItems&#xD;
== &lt;span style="color: blue"&gt;null&lt;/span&gt;) KMItems = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;KilometerItem&lt;/span&gt;&amp;gt;(); &lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: blue"&gt;var &lt;/span&gt;item &lt;span style="color: blue"&gt;in &lt;/span&gt;tCarItem.KilometerItems)&#xD;
{ &lt;span style="color: blue"&gt;var &lt;/span&gt;existingItem = &lt;span style="color: blue"&gt;from &lt;/span&gt;t &lt;span style="color: blue"&gt;in &lt;/span&gt;KMItems &lt;span style="color: blue"&gt;where &lt;/span&gt;t.Id.Equals(item.Id) &lt;span style="color: blue"&gt;select &lt;/span&gt;t; &lt;span style="color: blue"&gt;if &lt;/span&gt;(existingItem.Count()&#xD;
== 0) { &lt;span style="color: green"&gt;//nothing found so add it to the bottom &lt;/span&gt;KMItems.Add(item);&#xD;
NotifyPropertyChanged(&lt;span style="color: #a31515"&gt;"CarItems"&lt;/span&gt;); }&#xD;
} } &lt;span style="color: blue"&gt;else if &lt;/span&gt;(e.NavigationMode == &lt;span style="color: #2b91af"&gt;NavigationMode&lt;/span&gt;.New)&#xD;
{ &lt;span style="color: blue"&gt;if &lt;/span&gt;(KMItems == &lt;span style="color: blue"&gt;null&lt;/span&gt;)&#xD;
KMItems = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;KilometerItem&lt;/span&gt;&amp;gt;(); &lt;span style="color: blue"&gt;var &lt;/span&gt;tCarItem&#xD;
= (&lt;span style="color: blue"&gt;from &lt;/span&gt;t &lt;span style="color: blue"&gt;in &lt;/span&gt;&lt;span style="color: #2b91af"&gt;App&lt;/span&gt;.Context.CarTable &lt;span style="color: blue"&gt;where &lt;/span&gt;t.Id.Equals(CarId.Value) &lt;span style="color: blue"&gt;select &lt;/span&gt;t).FirstOrDefault();&#xD;
KMItems = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;KilometerItem&lt;/span&gt;&amp;gt;(tCarItem.KilometerItems);&#xD;
} } &lt;span style="color: blue"&gt;else &lt;/span&gt;{ &lt;span style="color: #2b91af"&gt;ThreadPool&lt;/span&gt;.QueueUserWorkItem((o)&#xD;
=&amp;gt; { &lt;span style="color: #2b91af"&gt;Thread&lt;/span&gt;.Sleep(250); Dispatcher.BeginInvoke(()&#xD;
=&amp;gt; { &lt;span style="color: #2b91af"&gt;MessageBox&lt;/span&gt;.Show(&lt;span style="color: #a31515"&gt;"Unable&#xD;
to get the car id sorry :("&lt;/span&gt;); NavigationService.GoBack(); }); }); } &lt;span style="color: blue"&gt;base&lt;/span&gt;.OnNavigatedTo(e);&#xD;
}&lt;/pre&gt;&lt;p&gt;&#xD;
Things to note&#xD;
&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&#xD;
We get the querystring to get a CarId.  If one is not sent, we show a message&#xD;
and navigate back as we can’t do anything without a Car.Id value &#xD;
&lt;/li&gt;&lt;li&gt;&#xD;
If it’s a New Navigation, we are finding the Car record using a LINQ query, then we&#xD;
go and get all KilometerItems and fill our observable collection which is bound to&#xD;
our UI &#xD;
&lt;/li&gt;&lt;li&gt;&#xD;
If it’s a Back Navigation, we only want to add new items to the observable collection &#xD;
&lt;/li&gt;&lt;li&gt;&#xD;
Nothing else, pretty easy &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/SQL-Server-Compact-and-Windows-Phone-7_3839/wlEmoticon-smile_2.png"&gt;&lt;/img&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h1&gt;&lt;font style="font-weight: bold"&gt;&lt;u&gt;Adding a KilometerItem Record&lt;/u&gt;&lt;/font&gt;&lt;/h1&gt;&lt;p&gt;&#xD;
Adding a KilometerItem is pretty straight forward also and is pretty much the same&#xD;
process as adding a new Car Record.  To start our page will look as follows&#xD;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/SQL-Server-Compact-and-Windows-Phone-7_3839/image_14.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/SQL-Server-Compact-and-Windows-Phone-7_3839/image_thumb_5.png" width="285" height="480"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&#xD;
First thing we do is add some code to our list of KilometerItem page to navigate to&#xD;
our new page as follows&#xD;
&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;private void &lt;/span&gt;NewEntry_Click(&lt;span style="color: blue"&gt;object &lt;/span&gt;sender,&#xD;
System.&lt;span style="color: #2b91af"&gt;EventArgs &lt;/span&gt;e) { NavigationService.Navigate(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Uri&lt;/span&gt;(&lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515"&gt;"/NewKMEntry.xaml?carId={0}"&lt;/span&gt;,&#xD;
CarId.Value), &lt;span style="color: #2b91af"&gt;UriKind&lt;/span&gt;.Relative)); }&lt;/pre&gt;&lt;p&gt;&#xD;
You will notice we are again passing the Car.Id value to our new page, this way we&#xD;
know what Car record the new KilometerItem record should be assigned to.  When&#xD;
the user is ready, they can click the checkmark and we can run the following code&#xD;
to save the new record&#xD;
&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;var &lt;/span&gt;Car = &lt;span style="color: #2b91af"&gt;App&lt;/span&gt;.Context.CarTable.Where(t&#xD;
=&amp;gt; t.Id.Equals( &lt;span style="color: #2b91af"&gt;Int32&lt;/span&gt;.Parse(NavigationContext.QueryString[&lt;span style="color: #a31515"&gt;"carId"&lt;/span&gt;]))).FirstOrDefault(); &lt;span style="color: blue"&gt;if &lt;/span&gt;(Car&#xD;
!= &lt;span style="color: blue"&gt;null&lt;/span&gt;) { Car.KilometerItems.Add(&lt;span style="color: blue"&gt;new &lt;/span&gt;Model.&lt;span style="color: #2b91af"&gt;KilometerItem&lt;/span&gt;()&#xD;
{ StartKilometers = &lt;span style="color: #2b91af"&gt;Int32&lt;/span&gt;.Parse(txtKMs.Text),&#xD;
EndKilometers = &lt;span style="color: #2b91af"&gt;Int32&lt;/span&gt;.Parse(txtEndKm.Text), DisplayName&#xD;
= txtDescription.Text, Date = &lt;span style="color: #2b91af"&gt;DateTime&lt;/span&gt;.Now, }); &lt;span style="color: #2b91af"&gt;App&lt;/span&gt;.Context.SubmitChanges();&#xD;
} &lt;span style="color: blue"&gt;else &lt;/span&gt;{ &lt;span style="color: #2b91af"&gt;MessageBox&lt;/span&gt;.Show(&lt;span style="color: #a31515"&gt;"Can't&#xD;
find the car, something went wrong. We will navigate back and try it again"&lt;/span&gt;);&#xD;
} Dispatcher.BeginInvoke(() =&amp;gt; { &lt;span style="color: blue"&gt;if &lt;/span&gt;(NavigationService.CanGoBack)&#xD;
NavigationService.GoBack(); });&lt;/pre&gt;&lt;p&gt;&#xD;
Few things to note&#xD;
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&#xD;
We first want to find the Car record in the database and we use a Lambda expression&#xD;
to get the object returned to us. &#xD;
&lt;/li&gt;&lt;li&gt;&#xD;
To create the record, we use the Car.KilometerItems.Add method and add a new record&#xD;
to the collection. &#xD;
&lt;/li&gt;&lt;li&gt;&#xD;
Then we call the Context.SubmitChanges() and we are good to go! &#xD;
&lt;/li&gt;&lt;/ul&gt;&lt;h1&gt;&lt;font style="font-weight: bold"&gt;&lt;u&gt;Conclusion&lt;/u&gt;&lt;/font&gt;&lt;/h1&gt;&lt;p&gt;&#xD;
A couple of points that you should probably be aware of&#xD;
&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&#xD;
Be careful using NText as you may get some issues when trying to update those column&#xD;
types.  Try to use NVarChar(4000) instead.  If you must use it, set your&#xD;
column attribute to the following [Column(UpdateCheck=UpdateCheck.Never)], this way&#xD;
you will not get the ‘SQL Server does not handle comparison of NText, Text, Xml, or&#xD;
Image data types’ error &#xD;
&lt;/li&gt;&lt;li&gt;&#xD;
If you are used to creating your own SQL Statements or using things like Table Direct&#xD;
to optimize table access, your out of luck on for Windows Phone.  Although I&#xD;
have not done in performance testing, I’m pretty confident applications like the Kilometer&#xD;
Tracking example will not suffer at all from a performance bottle neck &#xD;
&lt;/li&gt;&lt;li&gt;&#xD;
If you are writing to the table from separate threads, you may want to create different&#xD;
dataContexts as you need them.  The DataContext is not guaranteed to be thread&#xD;
safe &#xD;
&lt;/li&gt;&lt;li&gt;&#xD;
DataContext implements IDisposable but if you want to pass around an object and then&#xD;
try and get a collection associated with that object, it will through an ObjectDisposedException&#xD;
if you call Dispose or use a using statement. &#xD;
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&#xD;
And that’s it, pretty straight forward to Local Database support in Windows Phone&#xD;
now that the tools have been updated. Here is the &lt;a href="http://blog.markarteaga.com/content/binary/RedBit.Samples.SqlCompact.zip" target="_blank"&gt;download&#xD;
to the source&lt;/a&gt;.  Comments or feedback feel free to contact me here or via&#xD;
twitter &lt;a href="http://twitter.com/MarkArteaga"&gt;@MarkArteaga&lt;/a&gt;!&#xD;
&lt;/p&gt;&lt;img width="0" height="0" src="http://blog.markarteaga.com/aggbug.ashx?id=f9bf0825-3394-4dbf-a2e1-166abfa41862"&gt;&lt;/img&gt;&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=4YcXxMMyi3U:q9wYIM1VAG4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=4YcXxMMyi3U:q9wYIM1VAG4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=4YcXxMMyi3U:q9wYIM1VAG4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=4YcXxMMyi3U:q9wYIM1VAG4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=4YcXxMMyi3U:q9wYIM1VAG4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=4YcXxMMyi3U:q9wYIM1VAG4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=4YcXxMMyi3U:q9wYIM1VAG4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=4YcXxMMyi3U:q9wYIM1VAG4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=4YcXxMMyi3U:q9wYIM1VAG4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=4YcXxMMyi3U:q9wYIM1VAG4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkArteaga/~4/4YcXxMMyi3U" height="1" width="1"/&gt;</description>
      <comments>http://blog.markarteaga.com/CommentView,guid,f9bf0825-3394-4dbf-a2e1-166abfa41862.aspx</comments>
      <category>Local Storage</category>
      <category>Windows Phone</category>
    <feedburner:origLink>http://blog.markarteaga.com/WindowsPhoneAndDatabaseSupportPart2.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.markarteaga.com/Trackback.aspx?guid=fddad905-ac16-48ce-8665-9d90a92fc50c</trackback:ping>
      <pingback:server>http://blog.markarteaga.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.markarteaga.com/PermaLink,guid,fddad905-ac16-48ce-8665-9d90a92fc50c.aspx</pingback:target>
      <dc:creator>Mark Arteaga</dc:creator>
      <wfw:comment>http://blog.markarteaga.com/CommentView,guid,fddad905-ac16-48ce-8665-9d90a92fc50c.aspx</wfw:comment>
      <wfw:commentRss>http://blog.markarteaga.com/SyndicationService.asmx/GetEntryCommentsRss?guid=fddad905-ac16-48ce-8665-9d90a92fc50c</wfw:commentRss>
      
      <title>Nokia, Windows Phone and the Smartphone Battles</title>
      <guid isPermaLink="false">http://blog.markarteaga.com/PermaLink,guid,fddad905-ac16-48ce-8665-9d90a92fc50c.aspx</guid>
      <link>http://feedproxy.google.com/~r/MarkArteaga/~3/Ld5xSP5CXkM/NokiaWindowsPhoneAndTheSmartphoneBattles.aspx</link>
      <pubDate>Mon, 24 Oct 2011 01:40:20 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p align="justify"&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/c7db419d2124_D5EA/8f336_windowsphone_logo_2.jpg"&gt;&#xD;
            &lt;img style="background-image: none; border-right-width: 0px; margin: 12px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="8f336_windowsphone_logo" border="0" alt="8f336_windowsphone_logo" align="right" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/c7db419d2124_D5EA/8f336_windowsphone_logo_thumb.jpg" width="240" height="99"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;Back&#xD;
in August, Google announced that they are buying Motorola for $12.5billion. &#xD;
Great buy on Google’s part because it will somewhat help defend them in the patent&#xD;
issues they are currently facing with Android and OEMs using Android. Will this help&#xD;
$GOOG win the smart phone battle? Don’t know, but they are sure taking a large chunk&#xD;
of the market!&#xD;
&lt;/p&gt;&#xD;
        &lt;p align="justify"&gt;&#xD;
What does this mean for Windows Phone?  Don’t know either, but they do have Nokia;&#xD;
which used to have the largest marketshare, on board to deliver Windows Phone based&#xD;
hardware.  Unfortunately they have been steadily losing a very large chunk of&#xD;
their marketshare.  Over a year ago I did write an article on whether &lt;a href="http://blog.markarteaga.com/WillWindowsPhone7Succeed.aspx" target="_blank"&gt;Windows&#xD;
Phone will succeed&lt;/a&gt;, and over all I think it is doing pretty well considering it&#xD;
started from scratch again (Yes I’m optimistic &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/c7db419d2124_D5EA/wlEmoticon-smile_2.png"&gt;&lt;/img&gt;)&#xD;
but don’t think it has been fully successful yet.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p align="justify"&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/c7db419d2124_D5EA/Nokia-800-Blue_2.jpg"&gt;&#xD;
            &lt;img style="background-image: none; border-right-width: 0px; margin: 12px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Nokia-800-Blue" border="0" alt="Nokia-800-Blue" align="left" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/c7db419d2124_D5EA/Nokia-800-Blue_thumb.jpg" width="240" height="154"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;Now&#xD;
will Nokia hardware help $MSFT get marketshare for Windows Phone?  I think it&#xD;
will as it has a history of making some pretty sexy devices.  The image here&#xD;
is supposedly of the Nokia 800 when it’s going to release this year (&lt;a href="http://pocketnow.com/windows-phone/nokia-800-first-press-shots" target="_blank"&gt;image&#xD;
courtesy of PocketNow&lt;/a&gt;)&#xD;
&lt;/p&gt;&#xD;
        &lt;p align="justify"&gt;&#xD;
Interestingly enough, Barranger (or &lt;a href="mailto:devices.@4MKMobile" target="_blank"&gt;@4MKMobile&lt;/a&gt;)&#xD;
talks about his experience with Nokia X7 and N8 during an event he attended and summarizes&#xD;
his reason &lt;a href="http://4mkmobile.com/2011/08/why-nokia-coming-to-windows-phone-is-a-huge-deal/" target="_blank"&gt;Why&#xD;
Nokia coming to Windows Phone is a huge deal&lt;/a&gt;.&#xD;
&lt;/p&gt;&#xD;
        &lt;p align="justify"&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/c7db419d2124_D5EA/Visual-Studio-2010-Express-for-Windows-Phone_2.jpg"&gt;&#xD;
            &lt;img style="background-image: none; border-right-width: 0px; margin: 12px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Visual-Studio-2010-Express-for-Windows-Phone" border="0" alt="Visual-Studio-2010-Express-for-Windows-Phone" align="right" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/c7db419d2124_D5EA/Visual-Studio-2010-Express-for-Windows-Phone_thumb.jpg" width="240" height="70"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;Microsoft&#xD;
definitely has developers on board, but now it’s time to get consumers on board. &#xD;
Without consumers, developers have no customers and the ‘eco-system’ falls apart. &#xD;
Let’s hope Microsoft has something up their sleeves for Windows Phone in terms of&#xD;
marketing it to the consumer.  Seeing things like the &lt;a href="http://klout.com/#/perk/Microsoft/Windows75Phone" target="_blank"&gt;Windows&#xD;
Phone Klout Perk promotion&lt;/a&gt; is a step in the right direction.  Get 500 phones&#xD;
in the hands of influential people, I’m pretty confident unless they are hardcore&#xD;
power users that want to be able to control every aspect of their phone, they will&#xD;
have something good to say about Windows Phone.&#xD;
&lt;/p&gt;&#xD;
        &lt;p align="justify"&gt;&#xD;
Let’s see what the next year brings. The battles are definitely heating up, the wallets&#xD;
are opening up and it’s time to win the consumers.  It’s definitely game time&#xD;
for all major players involved including Apple, Microsoft, RIM and Google!&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Comments or feedback feel free to share your thoughts via the comments or via twitter &lt;a href="http://twitter.com/MarkArteaga"&gt;@MarkArteaga&lt;/a&gt;!&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.markarteaga.com/aggbug.ashx?id=fddad905-ac16-48ce-8665-9d90a92fc50c"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=Ld5xSP5CXkM:A0tGG6G4ocY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=Ld5xSP5CXkM:A0tGG6G4ocY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=Ld5xSP5CXkM:A0tGG6G4ocY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=Ld5xSP5CXkM:A0tGG6G4ocY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=Ld5xSP5CXkM:A0tGG6G4ocY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=Ld5xSP5CXkM:A0tGG6G4ocY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=Ld5xSP5CXkM:A0tGG6G4ocY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=Ld5xSP5CXkM:A0tGG6G4ocY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=Ld5xSP5CXkM:A0tGG6G4ocY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=Ld5xSP5CXkM:A0tGG6G4ocY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkArteaga/~4/Ld5xSP5CXkM" height="1" width="1"/&gt;</description>
      <comments>http://blog.markarteaga.com/CommentView,guid,fddad905-ac16-48ce-8665-9d90a92fc50c.aspx</comments>
      <category>General</category>
      <category>Windows Phone</category>
    <feedburner:origLink>http://blog.markarteaga.com/NokiaWindowsPhoneAndTheSmartphoneBattles.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.markarteaga.com/Trackback.aspx?guid=17139282-a0db-4e7a-807a-1b49f3202ae4</trackback:ping>
      <pingback:server>http://blog.markarteaga.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.markarteaga.com/PermaLink,guid,17139282-a0db-4e7a-807a-1b49f3202ae4.aspx</pingback:target>
      <dc:creator>Mark Arteaga</dc:creator>
      <wfw:comment>http://blog.markarteaga.com/CommentView,guid,17139282-a0db-4e7a-807a-1b49f3202ae4.aspx</wfw:comment>
      <wfw:commentRss>http://blog.markarteaga.com/SyndicationService.asmx/GetEntryCommentsRss?guid=17139282-a0db-4e7a-807a-1b49f3202ae4</wfw:commentRss>
      
      <title>TechDays 2011 &amp;amp; Windows Phone</title>
      <guid isPermaLink="false">http://blog.markarteaga.com/PermaLink,guid,17139282-a0db-4e7a-807a-1b49f3202ae4.aspx</guid>
      <link>http://feedproxy.google.com/~r/MarkArteaga/~3/DxsgYuC6btc/TechDays2011AmpWindowsPhone.aspx</link>
      <pubDate>Thu, 20 Oct 2011 15:21:50 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/TechDays-2011--Windows-Phone_9A09/TECH%20DAYS%202011%20CANADA.jpg"&gt;&#xD;
          &lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="TECH DAYS 2011 CANADA" border="0" alt="TECH DAYS 2011 CANADA" align="left" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/TechDays-2011--Windows-Phone_9A09/TECH%20DAYS%202011%20CANADA_thumb.jpg" width="240" height="88"&gt;&lt;/img&gt;&#xD;
        &lt;/a&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://techdays.ca/?WT.mc_id=otc-f-ca-loc-td2011-40817" target="_blank"&gt;TechDays&lt;/a&gt; is&#xD;
fast approaching and is next week in Toronto.  Similar to past years (&lt;a href="http://blog.markarteaga.com/WindowsMobileDevelopmentAcrossCanada.aspx" target="_blank"&gt;2008&lt;/a&gt;, &lt;a href="http://blog.markarteaga.com/TechDaysCanada2009.aspx" target="_blank"&gt;2009&lt;/a&gt;, &lt;a href="http://blog.markarteaga.com/WindowsPhoneAmpTechdays2010.aspx" target="_blank"&gt;2010&lt;/a&gt;)&#xD;
I’ll be presenting on Windows Phone.  This year is great because I finally think&#xD;
Windows Phone is in a state where consumers will finally start paying attention and&#xD;
the competition is actually starting to copy features in Windows Phone (who would&#xD;
have ever thought that!)&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
This year TechDays will be taking place in the &lt;a href="http://techdays.ca/?WT.mc_id=otc-f-ca-loc-td2011-40817" target="_blank"&gt;following&#xD;
cities so make sure to register&lt;/a&gt;&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
Toronto – October 25-26 &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Vancouver – November 15-16 &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Montreal – November 29-30 &#xD;
&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p&gt;&#xD;
If you do &lt;a href="http://techdays.ca/?WT.mc_id=otc-f-ca-loc-td2011-40817" target="_blank"&gt;register&#xD;
for TechDays 2011&lt;/a&gt;, make sure you use this promo code &lt;b&gt;TDSPKR11CAN &lt;/b&gt;to get &lt;strong&gt;50% &lt;/strong&gt;off&#xD;
the conference admission!&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Here is a summary of my session that I put together. I’ll be presenting the first&#xD;
day @ 10:30am.  I have merged things from Mix11 and tried to condense as much&#xD;
as I could into 75mins.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;u&gt;Windows Phone 7.5: An Overview and Architecture Deep Dive &lt;/u&gt;&#xD;
          &lt;/strong&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Windows Phone is a different kind of phone, architected to put the focus on end users&#xD;
while enabling developers to build compelling, connected experiences that enhance&#xD;
the phone. Peer under the covers to see how the architecture evolved to deliver powerful&#xD;
functionality &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I’ll also be hanging around all day so if you want to chat about the phone, the competition,&#xD;
development options or anything else, find me, I’m always willing to chat!&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Hope to see you there and &lt;a href="http://techdays.ca/?WT.mc_id=otc-f-ca-loc-td2011-40817" target="_blank"&gt;remember&#xD;
to register&lt;/a&gt;!&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.markarteaga.com/aggbug.ashx?id=17139282-a0db-4e7a-807a-1b49f3202ae4"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=DxsgYuC6btc:3YtOAoBsFkE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=DxsgYuC6btc:3YtOAoBsFkE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=DxsgYuC6btc:3YtOAoBsFkE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=DxsgYuC6btc:3YtOAoBsFkE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=DxsgYuC6btc:3YtOAoBsFkE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=DxsgYuC6btc:3YtOAoBsFkE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=DxsgYuC6btc:3YtOAoBsFkE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=DxsgYuC6btc:3YtOAoBsFkE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=DxsgYuC6btc:3YtOAoBsFkE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=DxsgYuC6btc:3YtOAoBsFkE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkArteaga/~4/DxsgYuC6btc" height="1" width="1"/&gt;</description>
      <comments>http://blog.markarteaga.com/CommentView,guid,17139282-a0db-4e7a-807a-1b49f3202ae4.aspx</comments>
      <category>Events</category>
      <category>Windows Phone</category>
    <feedburner:origLink>http://blog.markarteaga.com/TechDays2011AmpWindowsPhone.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.markarteaga.com/Trackback.aspx?guid=98ab3517-240d-483b-9247-03331da8e35b</trackback:ping>
      <pingback:server>http://blog.markarteaga.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.markarteaga.com/PermaLink,guid,98ab3517-240d-483b-9247-03331da8e35b.aspx</pingback:target>
      <dc:creator>Mark Arteaga</dc:creator>
      <wfw:comment>http://blog.markarteaga.com/CommentView,guid,98ab3517-240d-483b-9247-03331da8e35b.aspx</wfw:comment>
      <wfw:commentRss>http://blog.markarteaga.com/SyndicationService.asmx/GetEntryCommentsRss?guid=98ab3517-240d-483b-9247-03331da8e35b</wfw:commentRss>
      
      <title>Windows Phone 7.5 App Challenge</title>
      <guid isPermaLink="false">http://blog.markarteaga.com/PermaLink,guid,98ab3517-240d-483b-9247-03331da8e35b.aspx</guid>
      <link>http://feedproxy.google.com/~r/MarkArteaga/~3/mQ_HZobVUaw/WindowsPhone75AppChallenge.aspx</link>
      <pubDate>Wed, 28 Sep 2011 01:08:20 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Calling all Canadian Developers, win a brand new Windows Phone 7.5 phone if you build&#xD;
2 &lt;a href="http://www.microsoft.com/canada/offers-promotions/mango-app-challenge/checklist.aspx?wt.mc_id=can_DPE-MangoAppChallenge-en_em_Checklist_Body"&gt;quality&#xD;
apps&lt;/a&gt;.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
If you’re one of the first 300 to build or upgrade 2 quality apps in the Mango App&#xD;
Challenge, and Microsoft will give you a free Windows Phone 7.5 phone, plus showcase&#xD;
your apps to over 40,000 developers in newsletters and other Microsoft properties. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Make sure you read the &lt;a href="http://www.microsoft.com/canada/offers-promotions/mango-app-challenge/checklist.aspx"&gt;Windows&#xD;
Phone quality check list&lt;/a&gt; for the app challenge as it will be some of the criteria.  &#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
Design&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Usability&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Stability&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Engagement&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Sociability&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Cloud Integration&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p&gt;&#xD;
RedBit’s own &lt;a href="http://www.windowsphone.com/en-CA/apps/14989419-c0e4-df11-a844-00237de2db9e"&gt;Where’s&#xD;
Timmy&lt;/a&gt; is featured in the ‘apps to inspire you’ section and hopefully it brings&#xD;
some inspiration. My advice is make your application fun to user, easy to use and&#xD;
don’t just make it black and white but use Metro as your base inspiration and bring&#xD;
some color into your app.  And use some animations, not a lot but some as users&#xD;
love seeing things move.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
So go out upgrade or build a new app for Windows Phone 7.5 and download the tools&#xD;
at &lt;a href="http://create.msdn.com"&gt;App Hub&lt;/a&gt; and build build build!!!&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.markarteaga.com/aggbug.ashx?id=98ab3517-240d-483b-9247-03331da8e35b"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=mQ_HZobVUaw:t0cIETtRgSE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=mQ_HZobVUaw:t0cIETtRgSE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=mQ_HZobVUaw:t0cIETtRgSE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=mQ_HZobVUaw:t0cIETtRgSE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=mQ_HZobVUaw:t0cIETtRgSE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=mQ_HZobVUaw:t0cIETtRgSE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=mQ_HZobVUaw:t0cIETtRgSE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=mQ_HZobVUaw:t0cIETtRgSE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=mQ_HZobVUaw:t0cIETtRgSE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=mQ_HZobVUaw:t0cIETtRgSE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkArteaga/~4/mQ_HZobVUaw" height="1" width="1"/&gt;</description>
      <comments>http://blog.markarteaga.com/CommentView,guid,98ab3517-240d-483b-9247-03331da8e35b.aspx</comments>
      <category>Community</category>
      <category>Windows Phone</category>
    <feedburner:origLink>http://blog.markarteaga.com/WindowsPhone75AppChallenge.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.markarteaga.com/Trackback.aspx?guid=7b84beeb-61af-4671-b059-8ef97be9f12f</trackback:ping>
      <pingback:server>http://blog.markarteaga.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.markarteaga.com/PermaLink,guid,7b84beeb-61af-4671-b059-8ef97be9f12f.aspx</pingback:target>
      <dc:creator>Mark Arteaga</dc:creator>
      <wfw:comment>http://blog.markarteaga.com/CommentView,guid,7b84beeb-61af-4671-b059-8ef97be9f12f.aspx</wfw:comment>
      <wfw:commentRss>http://blog.markarteaga.com/SyndicationService.asmx/GetEntryCommentsRss?guid=7b84beeb-61af-4671-b059-8ef97be9f12f</wfw:commentRss>
      
      <title>Summary of Windows Phone Mango Posts</title>
      <guid isPermaLink="false">http://blog.markarteaga.com/PermaLink,guid,7b84beeb-61af-4671-b059-8ef97be9f12f.aspx</guid>
      <link>http://feedproxy.google.com/~r/MarkArteaga/~3/cuQVr_-7viA/SummaryOfWindowsPhoneMangoPosts.aspx</link>
      <pubDate>Thu, 30 Jun 2011 08:56:49 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="display: inline; float: right" alt="mango" align="right" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/MIX11-and-Windows-Phone-Re-Cap_A9D3/mango_thumb.jpg"&gt;&lt;/img&gt;I’ve&#xD;
been spending the last few days reading and testing some of the new features in Windows&#xD;
Phone Mango and also writing a bunch of articles sharing some details.  Here&#xD;
is a summary of the articles I have written so far.  With over 1500 new APIs&#xD;
in Mango, I’m sure I will have some more articles so I will continue updating this&#xD;
list as I write more.  &#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://blog.markarteaga.com/WindowsPhone7AndMultitaskingRevisited.aspx" target="_blank"&gt;Windows&#xD;
Phone 7 And Multitasking Revisited&lt;/a&gt;&#xD;
          &lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://blog.markarteaga.com/WindowsPhoneMultitaskingndashFastApplicationSwitching.aspx"&gt;Windows&#xD;
Phone Multitasking - Fast Application Switching&lt;/a&gt;&#xD;
          &lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://blog.markarteaga.com/WindowsPhoneMultitaskingndashScheduledNotifications.aspx"&gt;Windows&#xD;
Phone Multitasking - Scheduled Notifications&lt;/a&gt;&#xD;
          &lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://blog.markarteaga.com/WindowsPhoneAndDatabaseSupport.aspx"&gt;Windows&#xD;
Phone And Database Support&lt;/a&gt;&#xD;
          &lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://blog.markarteaga.com/NewWindowsPhoneDeviceStatusAPIs.aspx"&gt;New Windows&#xD;
Phone Device Status APIs&lt;/a&gt;&#xD;
          &lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://blog.markarteaga.com/WindowsPhoneLaunchersAmpChoosers.aspx"&gt;Windows&#xD;
Phone Launchers &amp;amp; Choosers&lt;/a&gt;&#xD;
          &lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://blog.markarteaga.com/AugmentedRealityAndWindowsPhone7Part2.aspx"&gt;Augmented&#xD;
Reality And Windows Phone 7 Part 2&lt;/a&gt;&#xD;
          &lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p&gt;&#xD;
Comments or feedback on any of the articles, feel free to contact me here or via twitter &lt;a href="http://twitter.com/MarkArteaga"&gt;@MarkArteaga&lt;/a&gt;!&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.markarteaga.com/aggbug.ashx?id=7b84beeb-61af-4671-b059-8ef97be9f12f"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=cuQVr_-7viA:CDRWAKnmDbM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=cuQVr_-7viA:CDRWAKnmDbM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=cuQVr_-7viA:CDRWAKnmDbM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=cuQVr_-7viA:CDRWAKnmDbM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=cuQVr_-7viA:CDRWAKnmDbM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=cuQVr_-7viA:CDRWAKnmDbM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=cuQVr_-7viA:CDRWAKnmDbM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=cuQVr_-7viA:CDRWAKnmDbM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=cuQVr_-7viA:CDRWAKnmDbM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=cuQVr_-7viA:CDRWAKnmDbM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkArteaga/~4/cuQVr_-7viA" height="1" width="1"/&gt;</description>
      <comments>http://blog.markarteaga.com/CommentView,guid,7b84beeb-61af-4671-b059-8ef97be9f12f.aspx</comments>
      <category>Mango</category>
      <category>Windows Phone 7</category>
    <feedburner:origLink>http://blog.markarteaga.com/SummaryOfWindowsPhoneMangoPosts.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.markarteaga.com/Trackback.aspx?guid=61299dee-29e2-4041-8eef-7dc042f565b0</trackback:ping>
      <pingback:server>http://blog.markarteaga.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.markarteaga.com/PermaLink,guid,61299dee-29e2-4041-8eef-7dc042f565b0.aspx</pingback:target>
      <dc:creator>Mark Arteaga</dc:creator>
      <wfw:comment>http://blog.markarteaga.com/CommentView,guid,61299dee-29e2-4041-8eef-7dc042f565b0.aspx</wfw:comment>
      <wfw:commentRss>http://blog.markarteaga.com/SyndicationService.asmx/GetEntryCommentsRss?guid=61299dee-29e2-4041-8eef-7dc042f565b0</wfw:commentRss>
      
      <title>Windows Phone - Launchers &amp;amp; Choosers</title>
      <guid isPermaLink="false">http://blog.markarteaga.com/PermaLink,guid,61299dee-29e2-4041-8eef-7dc042f565b0.aspx</guid>
      <link>http://feedproxy.google.com/~r/MarkArteaga/~3/LqSmKAhwCfI/WindowsPhoneLaunchersAmpChoosers.aspx</link>
      <pubDate>Thu, 30 Jun 2011 08:34:33 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Launchers and Choosers have been around since the first version of Windows Phone and&#xD;
basically allow the developer to integrate into the operating system.  For example,&#xD;
there is a ‘Task’ to make a phone call or to compose an email.  I like to define&#xD;
Launchers &amp;amp; Choosers as follows&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
Launchers – ‘Just Launch it and Forget it’ – Basically, you launch something out the&#xD;
the OS, possibly passing some parameters and hand control over to the operating system. &#xD;
Don’t expect the user to always come to your application and at this point you will&#xD;
be &lt;a href="http://blog.markarteaga.com/WindowsPhoneMultitaskingndashFastApplicationSwitching.aspx" target="_blank"&gt;tombstoned&#xD;
or go into dormant state&lt;/a&gt;.  For example, you launch a phone call, the user&#xD;
might hit the start button, and go to another application and never return to your&#xD;
app until it’s needed again&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Choosers – this lets you pull information from the operating system in a way that&#xD;
keeps the users data secure and private.  For example, you can ask the user to&#xD;
select a contact and it will return contact information.&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p&gt;&#xD;
With Windows Phone Mango tools out, there are some new Launchers and Choosers that&#xD;
can be of use to developers.  You will find all of them un der the Microsoft.Phone.Tasks&#xD;
namespace on MSDN.  I’ll just go through a summary of the new ones for Mango.&#xD;
&lt;/p&gt;&#xD;
        &lt;h2&gt;&#xD;
          &lt;font style="font-weight: bold"&gt;&#xD;
            &lt;u&gt;The Launcher Tasks&lt;/u&gt;&#xD;
          &lt;/font&gt;&#xD;
        &lt;/h2&gt;&#xD;
        &lt;p&gt;&#xD;
As developers we did not really get that many new launchers but the ones we got I&#xD;
think will be useful if you are creating mapping applications. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-Launchers--Choosers_2D56/image_6.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-Launchers--Choosers_2D56/image_thumb_2.png" width="380" height="233"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The class names are pretty self explanatory but essentially the three do the following&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.tasks.bingmapsdirectionstask(VS.92).aspx" target="_blank"&gt;BingMapsDirectionsTask&lt;/a&gt; –&#xD;
Will show directions for using the Maps application   &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.tasks.bingmapstask(VS.92).aspx" target="_blank"&gt;BingMapsTask&lt;/a&gt; –&#xD;
will start the Maps application at the defined center point and if a search term is&#xD;
passed in it will add pins on the map that match the search term.&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p&gt;&#xD;
There is also a &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.tasks.labeledmaplocation(VS.92).aspx" target="_blank"&gt;LabeledMapLocation&lt;/a&gt; class&#xD;
that is used with the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.tasks.bingmapsdirectionstask(VS.92).aspx" target="_blank"&gt;BingMapsDirectionsTask&lt;/a&gt; that&#xD;
is basically a latitude/longitude with a string label&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-Launchers--Choosers_2D56/image_8.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-Launchers--Choosers_2D56/image_thumb_3.png" width="251" height="191"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
And using these are straight forward.  To use the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.tasks.bingmapsdirectionstask(VS.92).aspx" target="_blank"&gt;BingMapsDirectionsTask&lt;/a&gt; you&#xD;
can use the following code&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;&#xD;
          &lt;span style="color: #2b91af"&gt;BingMapsDirectionsTask &lt;/span&gt;task&#xD;
= &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;BingMapsDirectionsTask&lt;/span&gt;()&#xD;
{ Start = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;LabeledMapLocation&lt;/span&gt;(&lt;span style="color: #a31515"&gt;"Current&#xD;
Position"&lt;/span&gt;, &lt;span style="color: blue"&gt;new &lt;/span&gt;System.Device.Location.&lt;span style="color: #2b91af"&gt;GeoCoordinate&lt;/span&gt;(43.65365522976227,&#xD;
-79.39292348921275)), End = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;LabeledMapLocation&lt;/span&gt;(&lt;span style="color: #a31515"&gt;"CN&#xD;
Tower"&lt;/span&gt;, &lt;span style="color: blue"&gt;new &lt;/span&gt;System.Device.Location.&lt;span style="color: #2b91af"&gt;GeoCoordinate&lt;/span&gt;(43.642600285590795,&#xD;
-79.38728012144566)), }; task.Show();&lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
which will result in the following in the Maps application using the emulator&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-Launchers--Choosers_2D56/image_4.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-Launchers--Choosers_2D56/image_thumb_1.png" width="255" height="480"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
BingMapsTask is just as easy&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;&#xD;
          &lt;span style="color: #2b91af"&gt;BingMapsTask &lt;/span&gt;task = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;BingMapsTask&lt;/span&gt;()&#xD;
{ Center = &lt;span style="color: blue"&gt;new &lt;/span&gt;System.Device.Location.&lt;span style="color: #2b91af"&gt;GeoCoordinate&lt;/span&gt;(&#xD;
43, -79), SearchTerm = &lt;span style="color: #a31515"&gt;"CN Tower"&lt;/span&gt;, ZoomLevel&#xD;
= 15 }; task.Show();&lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
And results in &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-Launchers--Choosers_2D56/image_10.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-Launchers--Choosers_2D56/image_thumb_4.png" width="255" height="480"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
 &#xD;
&lt;/p&gt;&#xD;
        &lt;h2&gt;&#xD;
          &lt;font style="font-weight: bold"&gt;&#xD;
            &lt;u&gt;The Chooser Tasks&lt;/u&gt;&#xD;
          &lt;/font&gt;&#xD;
        &lt;/h2&gt;&#xD;
        &lt;p&gt;&#xD;
In Windows Phone Mango, we have four new chooser tasks.  Remember, choosers will&#xD;
return something back to us via a Completed event.&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.tasks.addresschoosertask(VS.92).aspx" target="_blank"&gt;AddressChooserTask&lt;/a&gt; –&#xD;
allows you to get the address of a contact chosen by the user&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.tasks.savecontacttask(VS.92).aspx" target="_blank"&gt;SaveContactTask&lt;/a&gt; –&#xD;
allows you to initiate a save contact for the user to complete&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.tasks.gameinvitetask(VS.92).aspx" target="_blank"&gt;GameInviteTask&lt;/a&gt; –&#xD;
allows you to show the game invite screen to allow user to invite someone else to&#xD;
a multiplayer game session&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.tasks.saveringtonetask(VS.92).aspx" target="_blank"&gt;SaveRingtoneTask&lt;/a&gt; –&#xD;
allows you to initiate a save ring tone for the user to complete&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p&gt;&#xD;
I’ll do a quick example on saving a contact.  Essentially you have to create&#xD;
a new SaveContactTask, fill in some properties and call the show event.  The&#xD;
possible properties are &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-Launchers--Choosers_2D56/image_12.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-Launchers--Choosers_2D56/image_thumb_5.png" width="223" height="625"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
and the sample code to save is as follows&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;&#xD;
          &lt;span style="color: #2b91af"&gt;SaveContactTask &lt;/span&gt;task = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;SaveContactTask&lt;/span&gt;()&#xD;
{ Company = &lt;span style="color: #a31515"&gt;"RedBit"&lt;/span&gt;, FirstName = &lt;span style="color: #a31515"&gt;"Mark"&lt;/span&gt;,&#xD;
HomeAddressCity = &lt;span style="color: #a31515"&gt;"Toronto"&lt;/span&gt;, HomeAddressCountry&#xD;
= &lt;span style="color: #a31515"&gt;"Canada"&lt;/span&gt;, HomeAddressState = &lt;span style="color: #a31515"&gt;"Ontario"&lt;/span&gt;,&#xD;
HomeAddressStreet = &lt;span style="color: #a31515"&gt;"123 Any Street"&lt;/span&gt;,&#xD;
HomeAddressZipCode = &lt;span style="color: #a31515"&gt;"75038"&lt;/span&gt;, HomePhone&#xD;
= &lt;span style="color: #a31515"&gt;"416-123-4567"&lt;/span&gt;, JobTitle = &lt;span style="color: #a31515"&gt;"Not&#xD;
Sure :)"&lt;/span&gt;, LastName = &lt;span style="color: #a31515"&gt;"Arteaga"&lt;/span&gt;,&#xD;
}; task.Completed += &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;SaveContactResult&lt;/span&gt;&amp;gt;(task_Completed);&#xD;
task.Show();&lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
and our completed event handler is as follows&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;&#xD;
          &lt;span style="color: blue"&gt;void &lt;/span&gt;task_Completed(&lt;span style="color: blue"&gt;object &lt;/span&gt;sender, &lt;span style="color: #2b91af"&gt;SaveContactResult &lt;/span&gt;e)&#xD;
{ &lt;span style="color: blue"&gt;if &lt;/span&gt;(e.TaskResult != &lt;span style="color: #2b91af"&gt;TaskResult&lt;/span&gt;.OK) &lt;span style="color: #2b91af"&gt;MessageBox&lt;/span&gt;.Show(&lt;span style="color: #a31515"&gt;"Is&#xD;
there a reason you didn’t save!"&lt;/span&gt;); &lt;span style="color: blue"&gt;else &lt;/span&gt;&lt;span style="color: #2b91af"&gt;MessageBox&lt;/span&gt;.Show(&lt;span style="color: #a31515"&gt;"Done!"&lt;/span&gt;);&#xD;
}&lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
which results in &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-Launchers--Choosers_2D56/image_14.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-Launchers--Choosers_2D56/image_thumb_6.png" width="257" height="480"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
and when the user is done, because we wired up the Completed event we will get the&#xD;
appropriate message if the user saved the contact or not.&#xD;
&lt;/p&gt;&#xD;
        &lt;h2&gt;&#xD;
          &lt;font style="font-weight: bold"&gt;&#xD;
            &lt;u&gt;The Share Tasks&lt;/u&gt;&#xD;
          &lt;/font&gt;&#xD;
        &lt;/h2&gt;&#xD;
        &lt;p&gt;&#xD;
You are probably wondering what the heck is a ‘Share Task’.  Well this is essentially&#xD;
a Launcher but it’s new to Mango and allows you to share the user’s status (ie Facebook&#xD;
status updates) or share a link.&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
ShareStatusTask – allows user to share a status message on social network of choice&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
ShareLinkTask – essentially same as status but will share a link on social network&#xD;
of choice&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p&gt;&#xD;
and the object model looks like this&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-Launchers--Choosers_2D56/image_16.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-Launchers--Choosers_2D56/image_thumb_7.png" width="450" height="433"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Unfortunately this doesn’t work in the emulator but basically what happens on a device&#xD;
is a “Post Message” page pops up, user can select which social network they want to&#xD;
post to and click send.  They do have to option of modifying the post.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
So there you have it, some of the new Launchers &amp;amp; Choosers available in Mango. &#xD;
I think they are useful and already have plans to integrate into some of our apps&#xD;
and customer apps.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Enjoy!&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.markarteaga.com/aggbug.ashx?id=61299dee-29e2-4041-8eef-7dc042f565b0"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=LqSmKAhwCfI:rNQ7Dz21ACw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=LqSmKAhwCfI:rNQ7Dz21ACw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=LqSmKAhwCfI:rNQ7Dz21ACw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=LqSmKAhwCfI:rNQ7Dz21ACw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=LqSmKAhwCfI:rNQ7Dz21ACw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=LqSmKAhwCfI:rNQ7Dz21ACw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=LqSmKAhwCfI:rNQ7Dz21ACw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=LqSmKAhwCfI:rNQ7Dz21ACw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=LqSmKAhwCfI:rNQ7Dz21ACw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=LqSmKAhwCfI:rNQ7Dz21ACw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkArteaga/~4/LqSmKAhwCfI" height="1" width="1"/&gt;</description>
      <comments>http://blog.markarteaga.com/CommentView,guid,61299dee-29e2-4041-8eef-7dc042f565b0.aspx</comments>
      <category>Mango</category>
      <category>Windows Phone 7</category>
    <feedburner:origLink>http://blog.markarteaga.com/WindowsPhoneLaunchersAmpChoosers.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.markarteaga.com/Trackback.aspx?guid=b4f7686c-3c9c-4519-9d59-aa9e75e57d9c</trackback:ping>
      <pingback:server>http://blog.markarteaga.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.markarteaga.com/PermaLink,guid,b4f7686c-3c9c-4519-9d59-aa9e75e57d9c.aspx</pingback:target>
      <dc:creator>Mark Arteaga</dc:creator>
      <wfw:comment>http://blog.markarteaga.com/CommentView,guid,b4f7686c-3c9c-4519-9d59-aa9e75e57d9c.aspx</wfw:comment>
      <wfw:commentRss>http://blog.markarteaga.com/SyndicationService.asmx/GetEntryCommentsRss?guid=b4f7686c-3c9c-4519-9d59-aa9e75e57d9c</wfw:commentRss>
      
      <title>Windows Phone Multitasking&amp;ndash;Fast Application Switching</title>
      <guid isPermaLink="false">http://blog.markarteaga.com/PermaLink,guid,b4f7686c-3c9c-4519-9d59-aa9e75e57d9c.aspx</guid>
      <link>http://feedproxy.google.com/~r/MarkArteaga/~3/5M9PRLquRqg/WindowsPhoneMultitaskingndashFastApplicationSwitching.aspx</link>
      <pubDate>Thu, 30 Jun 2011 06:42:24 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
I recently wrote about the updated story on &lt;a href="http://blog.markarteaga.com/WindowsPhone7AndMultitaskingRevisited.aspx" target="_blank"&gt;Windows&#xD;
Phone and Multitasking&lt;/a&gt;.  Yes, Windows Phone does multitask and gives developers&#xD;
a few options to get things done which are&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
Background Audio&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Background File Transfers&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Fast Application Switching&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://blog.markarteaga.com/WindowsPhoneMultitaskingndashScheduledNotifications.aspx" target="_blank"&gt;Scheduled&#xD;
Notifications&lt;/a&gt;&#xD;
          &lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Scheduled Tasks&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p&gt;&#xD;
I have already covered &lt;a href="http://blog.markarteaga.com/WindowsPhoneMultitaskingndashScheduledNotifications.aspx" target="_blank"&gt;Scheduled&#xD;
Notifications on Windows Phone&lt;/a&gt;.  In this article, I’ll cover Fast Application&#xD;
Switching or FAS. FAS essentially allows a user to quickly switch applications and&#xD;
not see a delay in switching apps or the ‘resuming …’ screen. When a user navigates&#xD;
away from your application, it will be put in a ‘dormant’ state but the application&#xD;
will still be held in memory. Be aware that even though you are in a dormant state,&#xD;
your threads, timers, web connections will stop running so essentially you can’t run&#xD;
any background threads while dormant.  This image gives a good visual indication&#xD;
of what is happening&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-MultitaskingFast-Applicati_2789/image_2.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-MultitaskingFast-Applicati_2789/image_thumb.png" width="473" height="290"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Now, the great thing is you really don’t have to do anything to implement this, as&#xD;
it’s automatically there if you are compiling for Mango.  If your application&#xD;
is compiled for Windows Phone RTM or Nodo and is in Marketplace, you will have to&#xD;
re-compile to get Fast Application Switching.  ‘Legacy’ apps will not get the&#xD;
‘dormant’ state and will go straight to tombstoned as seen in this image&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-MultitaskingFast-Applicati_2789/image_6.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-MultitaskingFast-Applicati_2789/image_thumb_2.png" width="472" height="480"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
With FAS, as a develoepr you have to be aware that you may still get tombstoned if&#xD;
the device is running low on memory and the OS will tombstone the oldest app. When&#xD;
coming back into the Activated state, you might want to know if you have been tombstoned&#xD;
or not.  This is pretty easy to find out using the ActivatedEventArgs.IsApplicaitonInstancePreserved&#xD;
as follows&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;&#xD;
          &lt;span style="color: blue"&gt;private void &lt;/span&gt;Application_Activated(&lt;span style="color: blue"&gt;object &lt;/span&gt;sender, &lt;span style="color: #2b91af"&gt;ActivatedEventArgs &lt;/span&gt;e)&#xD;
{ &lt;span style="color: blue"&gt;if &lt;/span&gt;(e.IsApplicationInstancePreserved) { &lt;span style="color: green"&gt;//We&#xD;
were dormant &lt;/span&gt;} &lt;span style="color: blue"&gt;else &lt;/span&gt;{ &lt;span style="color: green"&gt;//we&#xD;
were tombstoned &lt;/span&gt;} }&lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
As usual not overly complex, and that’s a good thing!  If you want more details&#xD;
on getting ready for &lt;a href="http://channel9.msdn.com/Events/MIX/MIX11/DVC09" target="_blank"&gt;Fast&#xD;
Application Switching make sure you spend the time to watch the MIX11 session&lt;/a&gt;. &#xD;
If you are still unsure or unfamiliar with Tombstoning, read over the &lt;a href="http://msdn.microsoft.com/en-us/library/ff817008(VS.92).aspx"&gt;Execution&#xD;
Model Overview for Windows Phone&lt;/a&gt; on MSDN and play around with Visual Studio writing&#xD;
code.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Make sure you are prepared for this, as it will make a far better user experience&#xD;
for your app than the ‘resuming …’ screen!&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.markarteaga.com/aggbug.ashx?id=b4f7686c-3c9c-4519-9d59-aa9e75e57d9c"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=5M9PRLquRqg:m-dIeWqoxvs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=5M9PRLquRqg:m-dIeWqoxvs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=5M9PRLquRqg:m-dIeWqoxvs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=5M9PRLquRqg:m-dIeWqoxvs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=5M9PRLquRqg:m-dIeWqoxvs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=5M9PRLquRqg:m-dIeWqoxvs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=5M9PRLquRqg:m-dIeWqoxvs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=5M9PRLquRqg:m-dIeWqoxvs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=5M9PRLquRqg:m-dIeWqoxvs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=5M9PRLquRqg:m-dIeWqoxvs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkArteaga/~4/5M9PRLquRqg" height="1" width="1"/&gt;</description>
      <comments>http://blog.markarteaga.com/CommentView,guid,b4f7686c-3c9c-4519-9d59-aa9e75e57d9c.aspx</comments>
      <category>Mango</category>
      <category>Windows Phone 7</category>
    <feedburner:origLink>http://blog.markarteaga.com/WindowsPhoneMultitaskingndashFastApplicationSwitching.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.markarteaga.com/Trackback.aspx?guid=70c338c2-19f1-4802-8fd7-f3df698d051a</trackback:ping>
      <pingback:server>http://blog.markarteaga.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.markarteaga.com/PermaLink,guid,70c338c2-19f1-4802-8fd7-f3df698d051a.aspx</pingback:target>
      <dc:creator>Mark Arteaga</dc:creator>
      <wfw:comment>http://blog.markarteaga.com/CommentView,guid,70c338c2-19f1-4802-8fd7-f3df698d051a.aspx</wfw:comment>
      <wfw:commentRss>http://blog.markarteaga.com/SyndicationService.asmx/GetEntryCommentsRss?guid=70c338c2-19f1-4802-8fd7-f3df698d051a</wfw:commentRss>
      
      <title>Augmented Reality and Windows Phone 7 Part 2</title>
      <guid isPermaLink="false">http://blog.markarteaga.com/PermaLink,guid,70c338c2-19f1-4802-8fd7-f3df698d051a.aspx</guid>
      <link>http://feedproxy.google.com/~r/MarkArteaga/~3/5zyAQYfOxus/AugmentedRealityAndWindowsPhone7Part2.aspx</link>
      <pubDate>Thu, 30 Jun 2011 04:46:58 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
A few months ago I wrote about &lt;a href="http://blog.markarteaga.com/AugmentedRealityAndWindowsPhone7.aspx" target="_blank"&gt;augmented&#xD;
reality on Windows Phone 7&lt;/a&gt; and how the possibilities are there as the platform&#xD;
supports it but it’s all hidden away to third party developers.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Now that blog post was back on August 24 2010 less than 12 months ago.  Now with&#xD;
Windows Phone Mango, &lt;a href="http://blog.markarteaga.com/AugmentedRealityAndWindowsPhone7.aspx"&gt;Augmented&#xD;
Reality scenario on Windows Phone&lt;/a&gt; is now a “reality”.  Kudos goes out to&#xD;
the Windows Phone team for getting this out in less than 12month! It was already there&#xD;
but my guess is it wasn’t tested enough for general use!&#xD;
&lt;/p&gt;&#xD;
        &lt;h2&gt;&#xD;
          &lt;font style="font-weight: bold"&gt;&#xD;
            &lt;u&gt;How Do I Use It!&lt;/u&gt;&#xD;
          &lt;/font&gt;&#xD;
        &lt;/h2&gt;&#xD;
        &lt;p&gt;&#xD;
Pre-Mango, we only had access to the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.tasks.cameracapturetask(VS.92).aspx" target="_blank"&gt;CameraCaptureTask&lt;/a&gt; which&#xD;
would go ‘outside’ of our application and return us a back picture stream that the&#xD;
user took.  Not the most ideal scenario from a developers point of view but got&#xD;
the job done.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
With Mango APIs we now have direct access to the camera and able to stream directly&#xD;
onto a page. You also have the ability take pictures and have various events to tell&#xD;
you what the user is doing, for example &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.devices.camerabuttons.shutterkeypressed(VS.92).aspx" target="_blank"&gt;CameraButtons.ShutterKeyPressed&lt;/a&gt; which&#xD;
tells you when the camera hardware button was pressed.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Now I’m not going to go through how to implement augmented reality on Windows Phone&#xD;
as there is a good sample on MSDN on &lt;a href="http://msdn.microsoft.com/en-us/library/hh202984(VS.92).aspx" target="_blank"&gt;creating&#xD;
an Augmented Reality app on Windows Phone in combination using the Motion Sensor APIs&#xD;
and camera stream&lt;/a&gt;.  I will go through the APIs that allow you to use the&#xD;
camera stream.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
First thing, create a new standard &lt;strong&gt;Windows Phone Application &lt;/strong&gt;project&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/6a4990038703_A602/image_2.png"&gt;&#xD;
            &lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/6a4990038703_A602/image_thumb.png" width="640" height="438"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
To add a video camera stream to your page is quite easy.  First thing add a &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.media.videobrush(VS.96).aspx" target="_blank"&gt;VideoBrush&lt;/a&gt; as&#xD;
the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.panel.background(VS.95).aspx" target="_blank"&gt;Background&lt;/a&gt; to&#xD;
the &lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;Grid named &lt;strong&gt;ContentPanel&lt;/strong&gt; in&#xD;
MainPage.xaml.  It should look something like this.&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;&#xD;
          &lt;span style="color: green"&gt;&amp;lt;!--ContentPanel - place additional&#xD;
content here--&amp;gt; &lt;/span&gt;&#xD;
          &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&#xD;
          &lt;span style="color: #a31515"&gt;Grid &lt;/span&gt;&#xD;
          &lt;span style="color: red"&gt;x&lt;/span&gt;&#xD;
          &lt;span style="color: blue"&gt;:&lt;/span&gt;&#xD;
          &lt;span style="color: red"&gt;Name&lt;/span&gt;&#xD;
          &lt;span style="color: blue"&gt;="ContentPanel" &lt;/span&gt;&#xD;
          &lt;span style="color: red"&gt;Grid.Row&lt;/span&gt;&#xD;
          &lt;span style="color: blue"&gt;="1" &lt;/span&gt;&#xD;
          &lt;span style="color: red"&gt;Margin&lt;/span&gt;&#xD;
          &lt;span style="color: blue"&gt;="12,0,12,0"&amp;gt;&#xD;
&amp;lt;&lt;/span&gt;&#xD;
          &lt;span style="color: #a31515"&gt;Grid.Background&lt;/span&gt;&#xD;
          &lt;span style="color: blue"&gt;&amp;gt;&#xD;
&amp;lt;&lt;/span&gt;&#xD;
          &lt;span style="color: #a31515"&gt;VideoBrush &lt;/span&gt;&#xD;
          &lt;span style="color: red"&gt;x&lt;/span&gt;&#xD;
          &lt;span style="color: blue"&gt;:&lt;/span&gt;&#xD;
          &lt;span style="color: red"&gt;Name&lt;/span&gt;&#xD;
          &lt;span style="color: blue"&gt;="video"&#xD;
/&amp;gt; &amp;lt;/&lt;/span&gt;&#xD;
          &lt;span style="color: #a31515"&gt;Grid.Background&lt;/span&gt;&#xD;
          &lt;span style="color: blue"&gt;&amp;gt;&#xD;
&amp;lt;/&lt;/span&gt;&#xD;
          &lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&#xD;
          &lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&#xD;
        &lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
Be aware that the VideoBrush is new to Mango so you won’t be able to use this pre-Mango. &#xD;
Here is the object model for video brush.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/6a4990038703_A602/image_8.png"&gt;&#xD;
            &lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/6a4990038703_A602/image_thumb_3.png" width="471" height="254"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Note, that there is a &lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.devices.cameravideobrushextensions(VS.92).aspx" target="_blank"&gt;CameraVideoBrushExtensions&lt;/a&gt; class. &#xD;
Again this is Mango only, and this has a single method called SetSource() which allows&#xD;
you to add a video stream to the VideoBrush.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Now, to add the stream you create a &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.devices.photocamera(VS.92).aspx" target="_blank"&gt;PhotoCamera&lt;/a&gt;&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt; &#xD;
object and call the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.devices.cameravideobrushextensions.setsource(VS.92).aspx" target="_blank"&gt;VideoBrush.SetSource&lt;/a&gt; method&#xD;
with the PhotoCamera object as the parameter.  Here is the object model for the&#xD;
PhotoCamera&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/6a4990038703_A602/image_12.png"&gt;&#xD;
            &lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/6a4990038703_A602/image_thumb_5.png" width="576" height="516"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
To set the source we create a new global PhotoCamera object  in our MainPage.xaml.cs&#xD;
as follows &#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;Microsoft.Devices.&lt;span style="color: #2b91af"&gt;PhotoCamera &lt;/span&gt;m_camera;&lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
Then in the constructor of MainPage we add the following&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;Loaded += (s, e) =&amp;gt;&#xD;
    {&#xD;
        m_camera = &lt;span style="color: blue"&gt;new &lt;/span&gt;Microsoft.Devices.&lt;span style="color: #2b91af"&gt;PhotoCamera&lt;/span&gt;();&#xD;
video.SetSource(m_camera); };&lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
Your MainPage.xaml.cs should like like the following&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;Microsoft.Devices.&lt;span style="color: #2b91af"&gt;PhotoCamera &lt;/span&gt;m_camera; &lt;span style="color: green"&gt;//&#xD;
Constructor &lt;/span&gt;&lt;span style="color: blue"&gt;public &lt;/span&gt;MainPage() { InitializeComponent();&#xD;
Loaded += (s, e) =&amp;gt; { m_camera = &lt;span style="color: blue"&gt;new &lt;/span&gt;Microsoft.Devices.&lt;span style="color: #2b91af"&gt;PhotoCamera&lt;/span&gt;();&#xD;
video.SetSource(m_camera); }; }&lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
Now, when you run the project you will get a stream in the ContentPanel.  You&#xD;
can try this on a real device or on the emulator.  In the emulator you will get&#xD;
a black box moving around a white box.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/6a4990038703_A602/image_10.png"&gt;&#xD;
            &lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/6a4990038703_A602/image_thumb_4.png" width="262" height="480"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Also, the Windows Phone project when first created will automatically add ID_CAP_ISV_CAMERA&#xD;
to your WMAppManifest.xml.  This capability is required if you are using the&#xD;
camera.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
And that’s it.  Three lines of XAML and four lines of C#, pretty straight forward&#xD;
to get a camera stream to your app.  Don’t think iPhone or Android devs have&#xD;
it this easy &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/6a4990038703_A602/wlEmoticon-smile_2.png"&gt;&lt;/img&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Feedback, let me know here or via &lt;a href="http://twitter.com/MarkArteaga"&gt;twitter&lt;/a&gt;.&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.markarteaga.com/aggbug.ashx?id=70c338c2-19f1-4802-8fd7-f3df698d051a"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=5zyAQYfOxus:jmTJ73Q0HsY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=5zyAQYfOxus:jmTJ73Q0HsY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=5zyAQYfOxus:jmTJ73Q0HsY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=5zyAQYfOxus:jmTJ73Q0HsY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=5zyAQYfOxus:jmTJ73Q0HsY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=5zyAQYfOxus:jmTJ73Q0HsY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=5zyAQYfOxus:jmTJ73Q0HsY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=5zyAQYfOxus:jmTJ73Q0HsY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=5zyAQYfOxus:jmTJ73Q0HsY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=5zyAQYfOxus:jmTJ73Q0HsY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkArteaga/~4/5zyAQYfOxus" height="1" width="1"/&gt;</description>
      <comments>http://blog.markarteaga.com/CommentView,guid,70c338c2-19f1-4802-8fd7-f3df698d051a.aspx</comments>
      <category>Mango</category>
      <category>Windows Phone 7</category>
    <feedburner:origLink>http://blog.markarteaga.com/AugmentedRealityAndWindowsPhone7Part2.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.markarteaga.com/Trackback.aspx?guid=a3aea91a-cda4-4482-9505-c7032e7e0e9f</trackback:ping>
      <pingback:server>http://blog.markarteaga.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.markarteaga.com/PermaLink,guid,a3aea91a-cda4-4482-9505-c7032e7e0e9f.aspx</pingback:target>
      <dc:creator>Mark Arteaga</dc:creator>
      <wfw:comment>http://blog.markarteaga.com/CommentView,guid,a3aea91a-cda4-4482-9505-c7032e7e0e9f.aspx</wfw:comment>
      <wfw:commentRss>http://blog.markarteaga.com/SyndicationService.asmx/GetEntryCommentsRss?guid=a3aea91a-cda4-4482-9505-c7032e7e0e9f</wfw:commentRss>
      
      <title>Windows Phone Multitasking&amp;ndash;Scheduled Notifications</title>
      <guid isPermaLink="false">http://blog.markarteaga.com/PermaLink,guid,a3aea91a-cda4-4482-9505-c7032e7e0e9f.aspx</guid>
      <link>http://feedproxy.google.com/~r/MarkArteaga/~3/dFdhMbmEGcM/WindowsPhoneMultitaskingndashScheduledNotifications.aspx</link>
      <pubDate>Tue, 28 Jun 2011 07:26:44 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
In my previous post I talked about some of the new &lt;a href="http://blog.markarteaga.com/WindowsPhone7AndMultitaskingRevisited.aspx" target="_blank"&gt;multitasking&#xD;
features available in Windows Phone Mango&lt;/a&gt;.  In this article, I’ll go over&#xD;
Scheduled Notifications in a bit more detail.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
You will find all API details in the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.scheduler(VS.92).aspx" target="_blank"&gt;Microsoft.Phone.Scheduler&#xD;
namespace&lt;/a&gt; and the main items we will look at are&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.scheduler.reminder(VS.92).aspx" target="_blank"&gt;Reminder&lt;/a&gt; –&#xD;
main class to create a reminder&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.scheduler.alarm(VS.92).aspx" target="_blank"&gt;Alarm&lt;/a&gt; –&#xD;
main class to create an alarm&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.scheduler.scheduledactionservice(VS.92).aspx" target="_blank"&gt;ScheduledActionService&lt;/a&gt; –&#xD;
allows you to manage scheduled actions&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
A Scheduled Notification is fairly straight forward and essentially will popup a dialog&#xD;
box similar to the calendar reminder in the OS. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
There are two types of Scheduled Notifications you can use and these are &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.scheduler.alarm(VS.92).aspx" target="_blank"&gt;Alarm&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.scheduler.reminder(VS.92).aspx" target="_blank"&gt;Reminder&lt;/a&gt;.&#xD;
This is a good way to integrate with the native OS and not have to build basic pop&#xD;
ups but leverage what is already there.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I’m not going to go through an entire code walk through as there is a good example&#xD;
on MSDN on &lt;a href="http://msdn.microsoft.com/en-us/library/hh202965(VS.92).aspx" target="_blank"&gt;how&#xD;
to create reminders for Windows Phone.&lt;/a&gt; Here is a quick sample on creating a reminder&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;&#xD;
          &lt;span style="color: green"&gt;//Create a reminder &lt;/span&gt;&#xD;
          &lt;span style="color: #2b91af"&gt;Reminder &lt;/span&gt;myReminder&#xD;
= &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Reminder&lt;/span&gt;(&lt;span style="color: #a31515"&gt;"buy&#xD;
milk"&lt;/span&gt;); myReminder.Title = &lt;span style="color: #a31515"&gt;"Buy Milk"&lt;/span&gt;;&#xD;
myReminder.Content = &lt;span style="color: #a31515"&gt;"Don't forget to buy milk!"&lt;/span&gt;;&#xD;
myReminder.BeginTime = &lt;span style="color: #2b91af"&gt;DateTime&lt;/span&gt;.Now.AddSeconds(10);&#xD;
myReminder.ExpirationTime = &lt;span style="color: #2b91af"&gt;DateTime&lt;/span&gt;.Now.AddSeconds(15);&#xD;
myReminder.RecurrenceType = &lt;span style="color: #2b91af"&gt;RecurrenceInterval&lt;/span&gt;.None;&#xD;
myReminder.NavigationUri = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Uri&lt;/span&gt;(&lt;span style="color: #a31515"&gt;"/MainPage.xaml?fromReminder=1"&lt;/span&gt;, &lt;span style="color: #2b91af"&gt;UriKind&lt;/span&gt;.Relative); &lt;span style="color: green"&gt;//Add&#xD;
the reminder to the ScheduledActionService &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ScheduledActionService&lt;/span&gt;.Add(myReminder);&lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
Running this code on the emulator will result in the following&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-MultitaskingScheduled-Acti_27AB/image_thumb%5B2%5D_2.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image_thumb[2]" border="0" alt="image_thumb[2]" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-MultitaskingScheduled-Acti_27AB/image_thumb%5B2%5D_thumb.png" width="261" height="480"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Not overly complex but a few key things to note&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
You can specify a &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.scheduler.reminder.navigationuri(VS.92).aspx" target="_blank"&gt;NavigationUri&lt;/a&gt; which&#xD;
will be used if the user launches your app from the reminder. This way you know if&#xD;
you came from the reminder and can show the specific reminder that was clicked&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Don’t try to add a reminder with the same name, you will get an exception saying that&#xD;
the reminder already exists&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
Creating an Alarm is almost the same as creating a Reminder with a few slight differences.&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;span style="color: green"&gt;//Create an alarm &lt;/span&gt;&#xD;
            &lt;span style="color: #2b91af"&gt;Alarm &lt;/span&gt;alarm&#xD;
= &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Alarm&lt;/span&gt;(&lt;span style="color: #a31515"&gt;"Test&#xD;
Alarm"&lt;/span&gt;); alarm.Title = &lt;span style="color: #a31515"&gt;"My Alarm Title"&lt;/span&gt;;&#xD;
alarm.Content = &lt;span style="color: #a31515"&gt;"My Test alarm"&lt;/span&gt;; alarm.BeginTime&#xD;
= &lt;span style="color: #2b91af"&gt;DateTime&lt;/span&gt;.Now.AddSeconds(10); alarm.ExpirationTime&#xD;
= &lt;span style="color: #2b91af"&gt;DateTime&lt;/span&gt;.Now.AddSeconds(15); alarm.RecurrenceType&#xD;
= &lt;span style="color: #2b91af"&gt;RecurrenceInterval&lt;/span&gt;.None; alarm.Sound = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Uri&lt;/span&gt;(&lt;span style="color: #a31515"&gt;""&lt;/span&gt;);&lt;br&gt;&lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;span style="color: green"&gt;//Add the reminder to the ScheduledActionService &#xD;
&lt;br&gt;&lt;/span&gt;&#xD;
            &lt;span style="color: #2b91af"&gt;ScheduledActionService&lt;/span&gt;.Add(myReminder); &#xD;
&lt;/p&gt;&#xD;
        &lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
Again, pretty straight forward but a few key things to note with alarms are&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
A user cannot click from the alarm to your application so you have no NavigationUri&#xD;
property&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
You can specify a custom sound to play using the Sound property but the sound file&#xD;
must be included in your XAP and cannot be played from isolated storage.&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
Scheduled notifications I think will be useful in some application scenarios and it’s&#xD;
great that we as developers can offset some of the ‘reminder code’ to the API/OS to&#xD;
handle for us.  This is just one of the ways Windows Phone now multitasks and&#xD;
I’ll follow up with the others in upcoming posts.&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.markarteaga.com/aggbug.ashx?id=a3aea91a-cda4-4482-9505-c7032e7e0e9f"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=dFdhMbmEGcM:9ETZVJbvEFc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=dFdhMbmEGcM:9ETZVJbvEFc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=dFdhMbmEGcM:9ETZVJbvEFc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=dFdhMbmEGcM:9ETZVJbvEFc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=dFdhMbmEGcM:9ETZVJbvEFc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=dFdhMbmEGcM:9ETZVJbvEFc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=dFdhMbmEGcM:9ETZVJbvEFc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=dFdhMbmEGcM:9ETZVJbvEFc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=dFdhMbmEGcM:9ETZVJbvEFc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=dFdhMbmEGcM:9ETZVJbvEFc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkArteaga/~4/dFdhMbmEGcM" height="1" width="1"/&gt;</description>
      <comments>http://blog.markarteaga.com/CommentView,guid,a3aea91a-cda4-4482-9505-c7032e7e0e9f.aspx</comments>
      <category>Mango</category>
      <category>Windows Phone 7</category>
    <feedburner:origLink>http://blog.markarteaga.com/WindowsPhoneMultitaskingndashScheduledNotifications.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.markarteaga.com/Trackback.aspx?guid=29d3c6b1-1bcf-46cb-9218-4d62f4baf153</trackback:ping>
      <pingback:server>http://blog.markarteaga.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.markarteaga.com/PermaLink,guid,29d3c6b1-1bcf-46cb-9218-4d62f4baf153.aspx</pingback:target>
      <dc:creator>Mark Arteaga</dc:creator>
      <wfw:comment>http://blog.markarteaga.com/CommentView,guid,29d3c6b1-1bcf-46cb-9218-4d62f4baf153.aspx</wfw:comment>
      <wfw:commentRss>http://blog.markarteaga.com/SyndicationService.asmx/GetEntryCommentsRss?guid=29d3c6b1-1bcf-46cb-9218-4d62f4baf153</wfw:commentRss>
      
      <title>Windows Phone 7 and Multitasking Revisited</title>
      <guid isPermaLink="false">http://blog.markarteaga.com/PermaLink,guid,29d3c6b1-1bcf-46cb-9218-4d62f4baf153.aspx</guid>
      <link>http://feedproxy.google.com/~r/MarkArteaga/~3/_wZ8q6VdWmk/WindowsPhone7AndMultitaskingRevisited.aspx</link>
      <pubDate>Tue, 28 Jun 2011 07:10:40 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
When Windows Phone first launched I spoke about &lt;a href="http://blog.markarteaga.com/CanWindowsPhone7Multitask.aspx" target="_blank"&gt;Windows&#xD;
Phone and multitasking&lt;/a&gt; and how at the core of it, Windows Phone was a full blown&#xD;
multitasking and real-time operating system.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Unfortunately for developers, this was not full exposed to us and the reason for this&#xD;
was to maintain a good user experience which included performance and battery power.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Looking back, the concept of ‘Tombstoning’ was added to allow developers to write&#xD;
their applications to give the user of ‘true multitasking’.  Not the best scenario&#xD;
as is does take some time to get your head wrapped around the Tombstoning concept. &#xD;
I’m not going to go through Tombstoning here as it has been extensively covered. &#xD;
Here are a few links from MSDN to help you out in case youa re not familiar with it&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://msdn.microsoft.com/en-us/library/ff817008(VS.92).aspx" target="_blank"&gt;Execution&#xD;
Model Overview for Windows Phone&lt;/a&gt;&#xD;
          &lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://msdn.microsoft.com/en-us/library/ff967548(VS.92).aspx" target="_blank"&gt;How&#xD;
to: Preserve and Restore Page State for Windows Phone&lt;/a&gt;&#xD;
          &lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://msdn.microsoft.com/en-us/library/ff967547(VS.92).aspx" target="_blank"&gt;How&#xD;
to: Preserve and Restore Application State for Windows Phone&lt;/a&gt;&#xD;
          &lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;h2&gt;&#xD;
          &lt;font style="font-weight: bold"&gt;&#xD;
            &lt;u&gt;Multitasking Pre-Mango&lt;/u&gt;&#xD;
          &lt;/font&gt;&#xD;
        &lt;/h2&gt;&#xD;
        &lt;p&gt;&#xD;
In Pre-Mango devices, you again have the concept of Tombstoning to give the user the&#xD;
illusion of multitasking.  Another option made to developers is &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.shell.phoneapplicationservice.useridledetectionmode(VS.92).aspx" target="_blank"&gt;UserIdleDetectionMode&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.shell.phoneapplicationservice.applicationidledetectionmode(VS.92).aspx" target="_blank"&gt;ApplicationIdleDetectionMode&lt;/a&gt;. &#xD;
What exactly are they?&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
UserIdleDetectionMode mode allows you to force the screen to stay on.  So if&#xD;
you are create an application that will track a user as they drive and show their&#xD;
location on a Bing Map control, this is the property you will want to use. But be&#xD;
cautious when using it as it could drain the battery life extremely fast depending&#xD;
on your scenario. To use it is fairly simple and can be achieved with the following&#xD;
code.&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;Microsoft.Phone.Shell.&lt;span style="color: #2b91af"&gt;PhoneApplicationService&lt;/span&gt;.Current.UserIdleDetectionMode&#xD;
= Microsoft.Phone.Shell.&lt;span style="color: #2b91af"&gt;IdleDetectionMode&lt;/span&gt;.Disabled;&lt;/pre&gt;&#xD;
        &lt;p align="left"&gt;&#xD;
The other option is ApplicationIdleDectionMode.  This API allows you to run your&#xD;
application under the lock screen.  So essentially, if your application is running&#xD;
and the device locks or the user locks the screen, your code will still be executing. &#xD;
So if you are running a background thread, when the device locks the code will still&#xD;
be running.  To achieve this is again relatively simple and can be achieved with&#xD;
one line of code&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;Microsoft.Phone.Shell.&lt;span style="color: #2b91af"&gt;PhoneApplicationService&lt;/span&gt;.Current.ApplicationIdleDetectionMode&#xD;
= Microsoft.Phone.Shell.&lt;span style="color: #2b91af"&gt;IdleDetectionMode&lt;/span&gt;.Disabled;&lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
Now, a couple of caveats to ApplicationIdleDetectionMode and UserIdleDetectionMode. &#xD;
&lt;br&gt;&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
If the user navigates away from your application, your application will be tombstoned&#xD;
and ApplicationIdleDetectionMode and UserIdleDetectionMode will not work. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Part of the Marketplace Certification requirements are to notify the user that you&#xD;
will be running code in the background.  This way the user is aware of what is&#xD;
happening and has the option to turn these features on or off.  If you do not&#xD;
do this you will fail certification. &#xD;
&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;NOTE: &lt;/strong&gt;UserIdleDetectionMode I would not say is “multitasking” but&#xD;
something a lot of developers are not aware of so figure I would cover it.&#xD;
&lt;/p&gt;&#xD;
        &lt;h2&gt;&#xD;
          &lt;font style="font-weight: bold"&gt;&#xD;
            &lt;u&gt;Multitasking Mango&lt;/u&gt;&#xD;
          &lt;/font&gt;&#xD;
        &lt;/h2&gt;&#xD;
        &lt;p&gt;&#xD;
With the announcement of Windows Phone 7.1 Mango , there were a few announcements&#xD;
about multitasking on Windows Phone that will address some of the challenges with&#xD;
the platform.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Now, as a developer you have to keep in mind that the core goal of the product team&#xD;
is to maintain a great end user experience.  Although developers are not first&#xD;
in line, the product team is paying attention to developer pains and fixing it, as&#xD;
long as it doesn’t deteriorate the end user experiences on Windows Phone.  With&#xD;
Windows Phone 7.1 as developers we get a bit more power in terms of running our code&#xD;
when our application is not running and there are a few options to accomplish this.&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Background Audio&lt;/strong&gt; – essentially, this will allow you to play any audio&#xD;
while another application is running.  Essentially, your application will be&#xD;
running, then you can continue playing the audio while the user goes off and uses&#xD;
another application.  The key class to use here is &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.backgroundaudio.audioplayeragent(VS.92).aspx" target="_blank"&gt;AudioPlayerAgent&lt;/a&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Background File Transfers&lt;/strong&gt; – here you essentially can queue up HTTP&#xD;
file transfer requests for uploading or downloading and which will be run even if&#xD;
your application is not running.  In some scenarios this can be useful for example&#xD;
when uploading a large image.  The main class you want to look at here is &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.backgroundtransfer.backgroundtransferrequest(VS.92).aspx" target="_blank"&gt;BackgroundTransferRequest&lt;/a&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;&#xD;
              &lt;a href="http://blog.markarteaga.com/WindowsPhoneMultitaskingndashFastApplicationSwitching.aspx" target="_blank"&gt;Fast&#xD;
Application Switching&lt;/a&gt;&#xD;
            &lt;/strong&gt; – here the short story is users will not see as&#xD;
long of a delay when switching apps as they did in pre mango.  Reason is because&#xD;
your application will be dormant but still in memory and not tombstoned.  I’ll&#xD;
follow up with more details on FAS in an upcoming article. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;&#xD;
              &lt;a href="http://blog.markarteaga.com/WindowsPhoneMultitaskingndashScheduledNotifications.aspx" target="_blank"&gt;Scheduled&#xD;
Notifications&lt;/a&gt;&#xD;
            &lt;/strong&gt; – this allows you to create reminders or alarms that will&#xD;
be handled by the system.  You essentially create your items, pass it to the&#xD;
OS, and the OS will handle showing them to the user.  &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;strong&gt;Scheduled Tasks – &lt;/strong&gt;this is essentially a task that will run in the&#xD;
background and probably the one that will be used in most scenarios.  &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.scheduler.scheduledtask(VS.92).aspx" target="_blank"&gt;Scheduled&#xD;
tasks&lt;/a&gt; will run in the background even when your application is not running. &#xD;
There are two types you can create and these are &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.scheduler.periodictask(VS.92).aspx" target="_blank"&gt;PeriodicTasks&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.scheduler.periodictask(VS.92).aspx" target="_blank"&gt;ResourceIntensiveTasks&lt;/a&gt;. &#xD;
&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p&gt;&#xD;
As you can see, as developers we now have a little more of the platform exposed to&#xD;
us in ways that will not entirely affect the user experience.  From playing around&#xD;
with the beta tools future for Windows Phone 7 from a developer’s perspective looks&#xD;
great!  And best of all, the end user experience is not degraded and they continue&#xD;
to use the phone and our apps.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I’ll do some follow up posts on the items above and give more details on the different&#xD;
ways developers can implement multitasking on Windows Phone 7.1.&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.markarteaga.com/aggbug.ashx?id=29d3c6b1-1bcf-46cb-9218-4d62f4baf153"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=_wZ8q6VdWmk:JSgn9zpg6pw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=_wZ8q6VdWmk:JSgn9zpg6pw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=_wZ8q6VdWmk:JSgn9zpg6pw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=_wZ8q6VdWmk:JSgn9zpg6pw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=_wZ8q6VdWmk:JSgn9zpg6pw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=_wZ8q6VdWmk:JSgn9zpg6pw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=_wZ8q6VdWmk:JSgn9zpg6pw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=_wZ8q6VdWmk:JSgn9zpg6pw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=_wZ8q6VdWmk:JSgn9zpg6pw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=_wZ8q6VdWmk:JSgn9zpg6pw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkArteaga/~4/_wZ8q6VdWmk" height="1" width="1"/&gt;</description>
      <comments>http://blog.markarteaga.com/CommentView,guid,29d3c6b1-1bcf-46cb-9218-4d62f4baf153.aspx</comments>
      <category>Mango</category>
      <category>Windows Phone 7</category>
    <feedburner:origLink>http://blog.markarteaga.com/WindowsPhone7AndMultitaskingRevisited.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.markarteaga.com/Trackback.aspx?guid=cb9918dd-2146-4bad-a1fc-9145cb298894</trackback:ping>
      <pingback:server>http://blog.markarteaga.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.markarteaga.com/PermaLink,guid,cb9918dd-2146-4bad-a1fc-9145cb298894.aspx</pingback:target>
      <dc:creator>Mark Arteaga</dc:creator>
      <wfw:comment>http://blog.markarteaga.com/CommentView,guid,cb9918dd-2146-4bad-a1fc-9145cb298894.aspx</wfw:comment>
      <wfw:commentRss>http://blog.markarteaga.com/SyndicationService.asmx/GetEntryCommentsRss?guid=cb9918dd-2146-4bad-a1fc-9145cb298894</wfw:commentRss>
      
      <title>New Windows Phone Device Status APIs</title>
      <guid isPermaLink="false">http://blog.markarteaga.com/PermaLink,guid,cb9918dd-2146-4bad-a1fc-9145cb298894.aspx</guid>
      <link>http://feedproxy.google.com/~r/MarkArteaga/~3/pCWb9y7vW4w/NewWindowsPhoneDeviceStatusAPIs.aspx</link>
      <pubDate>Tue, 28 Jun 2011 05:48:41 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Windows Phone Mango introduces some new APIs to help get device status.  In pre-Mango&#xD;
APIs, we would have to use the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.info.deviceextendedproperties(VS.92).aspx" target="_blank"&gt;Microsoft.Phone.Info.DeviceExtendedProperties&lt;/a&gt; to&#xD;
get different status such as device total memory, device manufacturer and the code&#xD;
was a bit messy.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
One of the key ones is &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.info.devicestatus.devicetotalmemory(v=VS.92).aspx" target="_blank"&gt;DeviceTotalMemory&lt;/a&gt; which&#xD;
allows you to see how much memory your application is currently consuming. This is&#xD;
especially useful since one of the Marketplace Certification Requirements says that&#xD;
you cannot consume more the 90MB of memory on devices with 256MB of memory or less.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
For example, to get the DeviceManufacturer details you would use something like the&#xD;
following&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;&#xD;
          &lt;span style="color: blue"&gt;private string &lt;/span&gt;m_DeviceManufacturer; &lt;span style="color: blue"&gt;public&#xD;
string &lt;/span&gt;DeviceManufacturer { &lt;span style="color: blue"&gt;get &lt;/span&gt;{ &lt;span style="color: blue"&gt;if &lt;/span&gt;(m_DeviceManufacturer&#xD;
== &lt;span style="color: blue"&gt;null&lt;/span&gt;) { &lt;span style="color: blue"&gt;object &lt;/span&gt;val; &lt;span style="color: blue"&gt;if &lt;/span&gt;(DeviceExtendedProperties.TryGetValue(&lt;span style="color: #a31515"&gt;"DeviceManufacturer"&lt;/span&gt;, &lt;span style="color: blue"&gt;out &lt;/span&gt;val))&#xD;
m_DeviceManufacturer = val.ToString(); } &lt;span style="color: blue"&gt;return &lt;/span&gt;m_DeviceManufacturer;&#xD;
} }&lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
In our case, we wrote a wrapper to all the Device Extended Properties calling it RedBit.WindowsPhone.DeviceInfo&#xD;
so it’s more easily accessible via an object model&lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/New-Windows-Phone-Device-Status-APIs_7CD2/image_8.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/New-Windows-Phone-Device-Status-APIs_7CD2/image_thumb_3.png" width="278" height="340"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;u&gt;New to Mango &#xD;
&lt;br&gt;&lt;/u&gt;&#xD;
          &lt;/strong&gt;With Windows Phone Mango the above is no longer required since there&#xD;
is a new Microsoft &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.info.devicestatus(VS.92).aspx" target="_blank"&gt;Microsoft.Phone.Info.DeviceStatus&#xD;
Class&lt;/a&gt; which wraps a lot of these properties but also adds a few interesting ones.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
 &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/New-Windows-Phone-Device-Status-APIs_7CD2/image_10.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/New-Windows-Phone-Device-Status-APIs_7CD2/image_thumb_4.png" width="263" height="377"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
You will notice comparing the two, everything looks essentially the same, so the Windows&#xD;
Phone API team decided to make developers lives easier and create this class so you&#xD;
don’t have to use &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.info.deviceextendedproperties(VS.92).aspx" target="_blank"&gt;DeviceExtendedProperties&lt;/a&gt; anymore. &#xD;
Of course, in some instances you still may have to, for example when wanting to get&#xD;
the DeviceUniqueId.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;u&gt;So what’s of Interest?&lt;/u&gt;&#xD;
          &lt;/strong&gt;   &#xD;
&lt;br&gt;&#xD;
A few properties that jump out at me are &#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.info.devicestatus.iskeyboarddeployed(VS.92).aspx" target="_blank"&gt;IsKeyboardDeployed&lt;/a&gt; –&#xD;
Tells you if the user has has exposed the physical hardware keyboard to start typing&#xD;
instead of using the onscreen software keyboard&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.info.devicestatus.iskeyboardpresent(VS.92).aspx" target="_blank"&gt;IsKeyboardPresent&lt;/a&gt; –&#xD;
Tells you if the device even has a physical hardware keyboard&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.info.devicestatus.powersource(VS.92).aspx" target="_blank"&gt;PowerSource&lt;/a&gt; –&#xD;
Tells you if the device is on battery power or is plugged in&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
And some events that jump out are &#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.info.devicestatus.keyboarddeployedchanged(VS.92).aspx" target="_blank"&gt;KeyboardDeployedChanged&lt;/a&gt; –&#xD;
Will notify you when the physical keyboard is exposed or hidden by the user&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.info.devicestatus.powersourcechanged(VS.92).aspx" target="_blank"&gt;PowerSourceChanged&lt;/a&gt; –&#xD;
Will notify you when the device has or lost power&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
One possible use for the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.info.devicestatus.iskeyboardpresent(VS.92).aspx" target="_blank"&gt;IsKeyboardPresent&lt;/a&gt; property&#xD;
is for games.  If the keyboard is available, you can use physical keys to move&#xD;
players around instead of taking up screen real estate with your fingers. (Thanks&#xD;
to &lt;a href="http://twitter.com/4mkmobile" target="_blank"&gt;Barranger Ridler&lt;/a&gt; for&#xD;
that idea &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/New-Windows-Phone-Device-Status-APIs_7CD2/wlEmoticon-smile_2.png"&gt;&lt;/img&gt;)&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
For &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.info.devicestatus.powersource(VS.92).aspx" target="_blank"&gt;PowerSource&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.info.devicestatus.powersourcechanged(VS.92).aspx" target="_blank"&gt;PowerSourceChanged&lt;/a&gt;,&#xD;
you can use this to adjust something in your app to minimize battery usage. &#xD;
For example, if you are not plugged in, request for updates from a backend service&#xD;
every 30mins, but if the device is plugged in, request for updates every 1min. &#xD;
This will significantly help conserve battery which gives a better end use experience.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;u&gt;Moving Onward &#xD;
&lt;br&gt;&lt;/u&gt;&#xD;
          &lt;/strong&gt;My hope is this is the first of many new APIs in the DeviceStatus class&#xD;
and we get back in line with the State and Notification Broker we had in Windows Mobile&#xD;
were you can do things such as intercept incoming text messages and phone calls. &#xD;
For Mango, I think this is the right level of exposure that is required for now. But&#xD;
of course as developers we’ll always want more &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/New-Windows-Phone-Device-Status-APIs_7CD2/wlEmoticon-smile_2.png"&gt;&lt;/img&gt;&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.markarteaga.com/aggbug.ashx?id=cb9918dd-2146-4bad-a1fc-9145cb298894"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=pCWb9y7vW4w:dicXB8N7r0s:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=pCWb9y7vW4w:dicXB8N7r0s:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=pCWb9y7vW4w:dicXB8N7r0s:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=pCWb9y7vW4w:dicXB8N7r0s:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=pCWb9y7vW4w:dicXB8N7r0s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=pCWb9y7vW4w:dicXB8N7r0s:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=pCWb9y7vW4w:dicXB8N7r0s:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=pCWb9y7vW4w:dicXB8N7r0s:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=pCWb9y7vW4w:dicXB8N7r0s:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=pCWb9y7vW4w:dicXB8N7r0s:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkArteaga/~4/pCWb9y7vW4w" height="1" width="1"/&gt;</description>
      <comments>http://blog.markarteaga.com/CommentView,guid,cb9918dd-2146-4bad-a1fc-9145cb298894.aspx</comments>
      <category>Mango</category>
      <category>Windows Phone 7</category>
    <feedburner:origLink>http://blog.markarteaga.com/NewWindowsPhoneDeviceStatusAPIs.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.markarteaga.com/Trackback.aspx?guid=6df520bc-93b6-40a7-a29a-3df6d4b12a3e</trackback:ping>
      <pingback:server>http://blog.markarteaga.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.markarteaga.com/PermaLink,guid,6df520bc-93b6-40a7-a29a-3df6d4b12a3e.aspx</pingback:target>
      <dc:creator>Mark Arteaga</dc:creator>
      <wfw:comment>http://blog.markarteaga.com/CommentView,guid,6df520bc-93b6-40a7-a29a-3df6d4b12a3e.aspx</wfw:comment>
      <wfw:commentRss>http://blog.markarteaga.com/SyndicationService.asmx/GetEntryCommentsRss?guid=6df520bc-93b6-40a7-a29a-3df6d4b12a3e</wfw:commentRss>
      
      <title>Quick Tip: Theme Aware Icons</title>
      <guid isPermaLink="false">http://blog.markarteaga.com/PermaLink,guid,6df520bc-93b6-40a7-a29a-3df6d4b12a3e.aspx</guid>
      <link>http://feedproxy.google.com/~r/MarkArteaga/~3/O-VvK4CYg4Y/QuickTipThemeAwareIcons.aspx</link>
      <pubDate>Tue, 28 Jun 2011 04:25:11 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
In a previous post I talked about how sometimes when selecting &lt;a href="http://blog.markarteaga.com/WindowsPhone7DeveloperTipThemesAmpCopyAmpPaste.aspx"&gt;text&#xD;
when cutting and pasting on Windows Phone&lt;/a&gt;, the text might not be visible because&#xD;
the brushes where changed potentially leading to unreadable text.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Another issue I have encountered is when dealing with images.  Sometimes your&#xD;
design calls for adding &lt;a href="http://blog.markarteaga.com/MoreWindowsPhone7MetroStyleIcons.aspx"&gt;metro&#xD;
style icons&lt;/a&gt; to your page instead of using the &lt;a href="http://msdn.microsoft.com/en-us/library/ff431813(VS.92).aspx"&gt;Application&#xD;
Bar&lt;/a&gt; which is fine, but as developers, we have to be aware that Windows Phone provides&#xD;
both &lt;a href="http://msdn.microsoft.com/en-us/library/hh202878(VS.92).aspx"&gt;Light&#xD;
and Dark backgrounds&lt;/a&gt; when a user customizes their Theme.  This can lead to&#xD;
some undesirable experiences for the user.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;u&gt;The Wrong Way &#xD;
&lt;br&gt;&lt;/u&gt;&#xD;
          &lt;/strong&gt;The first way most will go about and do it is by using an image on a&#xD;
button.  For example, lets say you have a button with an email icon on it as&#xD;
follows.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/MoreWindowsPhone7Icons_13876/image_2.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/MoreWindowsPhone7Icons_13876/image_thumb.png" width="144" height="240"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
All looks good, but what happens when the user switches to the Light Background? &#xD;
Using the Device Tab in Expression Blend, we can easily switch the background color&#xD;
and see that the icon is no longer visible.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/MoreWindowsPhone7Icons_13876/image_4.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/MoreWindowsPhone7Icons_13876/image_thumb_1.png" width="240" height="91"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Switching to Light results in the following&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/MoreWindowsPhone7Icons_13876/image_6.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/MoreWindowsPhone7Icons_13876/image_thumb_2.png" width="144" height="240"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
You’ll notice the button border is still visible, but our icon is not anymore.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;u&gt;How to fix? &#xD;
&lt;br&gt;&lt;/u&gt;&#xD;
          &lt;/strong&gt;The easiest way I find to fix this is by using paths.  With Expression&#xD;
Blend you can either create your own paths or import Adobe Illustrator or Photoshop&#xD;
files into your page.  If you like you can create the paths manually, but that&#xD;
can be a little of tedious process so the importing feature comes in handy!&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/MoreWindowsPhone7Icons_13876/image_8.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/MoreWindowsPhone7Icons_13876/image_thumb_3.png" width="187" height="240"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
So if we select the ‘email icon’ available, we will get the following path in XAML&#xD;
which essential translates to the email icon&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&#xD;
            &lt;span style="color: #a31515"&gt;Path &lt;/span&gt;&#xD;
            &lt;span style="color: red"&gt;Data&lt;/span&gt;&#xD;
            &lt;span style="color: blue"&gt;="F1M372.2549,480.7969L372.2549,470.1369L380.8289,476.8239C381.0519,476.9959,&lt;br&gt;&lt;/span&gt;&#xD;
            &lt;span style="color: blue"&gt;381.3179,477.0819,381.5829,477.0819C381.8469,477.0819,382.1109,476.9959,382.3329,&lt;br&gt;&#xD;
476.8259L391.2659,469.9019L391.2659,480.7969z M390.6919,467.2499L381.5849,474.3089L372.5359,&lt;br&gt;&#xD;
467.2499z M392.4859,464.8029L371.0289,464.8029C370.3559,464.8029,369.8089,465.3499,&lt;br&gt;&#xD;
369.8089,466.0259L369.8089,482.0199C369.8089,482.6949,370.3559,483.2439,371.0289,&lt;br&gt;&#xD;
483.2439L392.4859,483.2439C393.1629,483.2439,393.7119,482.6949,393.7119,&lt;br&gt;&#xD;
482.0199L393.7119,466.0259C393.7119,465.3499,393.1629,464.8029,392.4859,464.8029" &#xD;
&lt;br&gt;&lt;/span&gt;&#xD;
            &lt;span style="color: red"&gt;Fill&lt;/span&gt;&#xD;
            &lt;span style="color: blue"&gt;="Black" &lt;/span&gt;&#xD;
            &lt;span style="color: red"&gt;Height&lt;/span&gt;&#xD;
            &lt;span style="color: blue"&gt;="18.441" &lt;/span&gt;&#xD;
            &lt;span style="color: red"&gt;Stretch&lt;/span&gt;&#xD;
            &lt;span style="color: blue"&gt;="Fill" &lt;/span&gt;&#xD;
            &lt;span style="color: red"&gt;Width&lt;/span&gt;&#xD;
            &lt;span style="color: blue"&gt;="23.903" &lt;/span&gt;&#xD;
            &lt;span style="color: red"&gt;HorizontalAlignment&lt;/span&gt;&#xD;
            &lt;span style="color: blue"&gt;="Right" &#xD;
&lt;br&gt;&lt;/span&gt;&#xD;
            &lt;span style="color: red"&gt;Grid.Row&lt;/span&gt;&#xD;
            &lt;span style="color: blue"&gt;="1" &lt;/span&gt;&#xD;
            &lt;span style="color: red"&gt;UseLayoutRounding&lt;/span&gt;&#xD;
            &lt;span style="color: blue"&gt;="False" &lt;/span&gt;&#xD;
            &lt;span style="color: red"&gt;VerticalAlignment&lt;/span&gt;&#xD;
            &lt;span style="color: blue"&gt;="Top"/&amp;gt;&#xD;
&lt;/span&gt;&#xD;
          &lt;/p&gt;&#xD;
        &lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
So now to make the path visible in either theme, you will have to set the Fill Property&#xD;
of the path to PhoneForegroundBrush. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/MoreWindowsPhone7Icons_13876/image_12.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/MoreWindowsPhone7Icons_13876/image_thumb_5.png" width="240" height="215"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Add this path as the ‘Content’ of your button instead of the image, and when switching&#xD;
themes, the path will visible in either Light or Dark background color as follows&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/MoreWindowsPhone7Icons_13876/image_10.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/MoreWindowsPhone7Icons_13876/image_thumb_4.png" width="240" height="232"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/MoreWindowsPhone7Icons_13876/image_14.png"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/MoreWindowsPhone7Icons_13876/image_thumb_6.png" width="240" height="198"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;u&gt;Why Bother? &#xD;
&lt;br&gt;&lt;/u&gt;&#xD;
          &lt;/strong&gt;For me there are two reasons to bother.  First one being user experience. &#xD;
If your images disappear because of user settings, it’s not the best experience and&#xD;
doesn’t make for a professional looking app.  The second reason, your app may&#xD;
fail certification if this happens.  The Windows Phone Marketplace ingestion&#xD;
team does look at theme awareness making sure apps adhere to themes on the device. &#xD;
We did fail one app once because of images disappearing (this is why I’m sharing this&#xD;
tip &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/MoreWindowsPhone7Icons_13876/wlEmoticon-smile_2.png"&gt;&lt;/img&gt;)&#xD;
so make sure you test in both Light and Dark backgrounds.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Hopefully this tip helps you, moral of the story is test your application in both&#xD;
the Light and Dark backgrounds to bring that right user experience and hopefully not&#xD;
get stung by this on marketplace cert testing.&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.markarteaga.com/aggbug.ashx?id=6df520bc-93b6-40a7-a29a-3df6d4b12a3e"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=O-VvK4CYg4Y:3xVShDTNs4w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=O-VvK4CYg4Y:3xVShDTNs4w:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=O-VvK4CYg4Y:3xVShDTNs4w:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=O-VvK4CYg4Y:3xVShDTNs4w:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=O-VvK4CYg4Y:3xVShDTNs4w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=O-VvK4CYg4Y:3xVShDTNs4w:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=O-VvK4CYg4Y:3xVShDTNs4w:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=O-VvK4CYg4Y:3xVShDTNs4w:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=O-VvK4CYg4Y:3xVShDTNs4w:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=O-VvK4CYg4Y:3xVShDTNs4w:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkArteaga/~4/O-VvK4CYg4Y" height="1" width="1"/&gt;</description>
      <comments>http://blog.markarteaga.com/CommentView,guid,6df520bc-93b6-40a7-a29a-3df6d4b12a3e.aspx</comments>
      <category>Quick Tips</category>
      <category>UX</category>
      <category>Windows Phone</category>
    <feedburner:origLink>http://blog.markarteaga.com/QuickTipThemeAwareIcons.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.markarteaga.com/Trackback.aspx?guid=ae31cd18-f841-4c6c-bc27-0b6a51a1f23e</trackback:ping>
      <pingback:server>http://blog.markarteaga.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.markarteaga.com/PermaLink,guid,ae31cd18-f841-4c6c-bc27-0b6a51a1f23e.aspx</pingback:target>
      <dc:creator>Mark Arteaga</dc:creator>
      <wfw:comment>http://blog.markarteaga.com/CommentView,guid,ae31cd18-f841-4c6c-bc27-0b6a51a1f23e.aspx</wfw:comment>
      <wfw:commentRss>http://blog.markarteaga.com/SyndicationService.asmx/GetEntryCommentsRss?guid=ae31cd18-f841-4c6c-bc27-0b6a51a1f23e</wfw:commentRss>
      <slash:comments>3</slash:comments>
      
      <title>Windows Phone and Database Support</title>
      <guid isPermaLink="false">http://blog.markarteaga.com/PermaLink,guid,ae31cd18-f841-4c6c-bc27-0b6a51a1f23e.aspx</guid>
      <link>http://feedproxy.google.com/~r/MarkArteaga/~3/B50TFgndQbg/WindowsPhoneAndDatabaseSupport.aspx</link>
      <pubDate>Mon, 27 Jun 2011 21:34:52 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
After developing quite a few applications for Windows Phone both personally and via&#xD;
my company &lt;a href="http://www.redbitdev.com/" target="_blank"&gt;RedBit&lt;/a&gt;, one of&#xD;
the biggest challenges is database support.  I’m not the only one complaining&#xD;
about this and if you have developed apps for Windows Phone 7, you probably have encountered&#xD;
this challenge and come up with workarounds to get data inside your application.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
There are many reasons why you want database support but my biggest reasons are it&#xD;
makes life a little easier to support offline scenarios for apps and to maintain code. &#xD;
Currently, we have used a combination of methods such as binary, JSON and XML Serialization/DeSerialization. &#xD;
Not the greatest solution but does work.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
For the next version of &lt;a href="http://blog.markarteaga.com/MIX11AndWindowsPhoneReCap.aspx"&gt;Windows&#xD;
Phone, codenamed Mango&lt;/a&gt;, storing data in particular structured data, is now possible&#xD;
and is pretty easy.  With Silverlight for Windows Phone you are going to use &lt;a href="http://msdn.microsoft.com/en-us/library/bb386976.aspx"&gt;LINQ&#xD;
to SQL&lt;/a&gt; for database operations.  You will also use LINQ to SQL to define&#xD;
your database schema in code.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;u&gt;How to access data?&lt;/u&gt;&#xD;
          &lt;/strong&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="display: inline; float: left" alt="Windows Phone DataContext and Local Database" align="left" src="http://i.msdn.microsoft.com/Hh202860.AP_Con_IStorage_DB1(en-us,VS.92).png" width="357" height="119"&gt;&lt;/img&gt;Well&#xD;
the main namespace you will require is the System.Data.Linq which contains the main&#xD;
class to access data called &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.linq.datacontext(VS.96).aspx"&gt;System.Data.Linq.DataContext&lt;/a&gt;. &#xD;
Combining DataContext, ‘plain old CLR objects' (POCOs) and attributes, you can perform&#xD;
your CRUD operations on your data.  If you want a more thorough explanation,&#xD;
check out &lt;a href="http://msdn.microsoft.com/en-us/library/hh202860(VS.92).aspx"&gt;Local&#xD;
Database Overview for Windows Phone&lt;/a&gt; on MSDN.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;u&gt;But I’m Old School &#xD;
&lt;br&gt;&lt;/u&gt;&#xD;
          &lt;/strong&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Structured-Storage-on-Windows-Phone-7_C325/old_school_2.jpg"&gt;&#xD;
            &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 15px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="old_school" border="0" alt="old_school" align="right" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Structured-Storage-on-Windows-Phone-7_C325/old_school_thumb.jpg" width="167" height="125"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;If&#xD;
your are coming from Compact Framework world (and used to using SQL Compact, access&#xD;
to the data is not same.  For example, if you like using table direct to optimize&#xD;
data access (like I did &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Structured-Storage-on-Windows-Phone-7_C325/wlEmoticon-smile_2.png"&gt;&lt;/img&gt;),&#xD;
well, you can’t do that with Windows Phone 7.  I’m assuming it’s because it’s&#xD;
V1 of SQL on Windows Phone but we’ll have to wait and see till next version. &#xD;
From my preliminary testing and talking to the product group, they have focused on&#xD;
making things fast so for now I’m not worried.&#xD;
&lt;/p&gt;&#xD;
        &lt;p align="left"&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;u&gt;What’s The Difference &#xD;
&lt;br&gt;&lt;/u&gt;&#xD;
          &lt;/strong&gt;If you are going to be using a local database for Windows Phone, you&#xD;
are going to have to be aware of some of the differences from using SQL Server. These&#xD;
are&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
The database runs in process meaning, that it’s not running as a service like SQL&#xD;
Server but instead is only accessible only when you app is running. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
The database is when created is only accessible from the application that created&#xD;
it. The reason for this is it is created in Isolated Storage which is only accessible&#xD;
by the app that created it for security reasons. Think of it as a silo and other applications&#xD;
can’t access the data. &#xD;
&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p align="left"&gt;&#xD;
If you are coming from the desktop, then there are a few things you need to be aware&#xD;
of when using LINQ to SQL.  These are items that jump at me but all details can&#xD;
be found on the &lt;a href="http://msdn.microsoft.com/en-us/library/hh202872(VS.92).aspx"&gt;LINQ&#xD;
to SQL Support for Windows Phone&lt;/a&gt; on MSDN:&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
There is no support for the ExecuteCommand which means you can run and Transact-SQL,&#xD;
DDL (Data Definition Language), or DML (Data Modeling Language) &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
You cannot use LINQ to SQL to directly access ADO.NET objects such as the DataReader. &#xD;
Any LINQ to SQL query will return an object collection defined by the DataContext &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
BinaryFormatter is not supported – This basically means you will have to do some manual&#xD;
work here.  For example, if you are storing an image as binary in a column, you&#xD;
will only get binary back so conversion is not automatic.  You will have to use &lt;a href="http://msdn.microsoft.com/en-us/library/5bdb6693(VS.71).aspx"&gt;byte[]&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.linq.binary.aspx"&gt;System.Data.Linq.Binary&lt;/a&gt;,&#xD;
or a &lt;a href="http://msdn.microsoft.com/en-us/library/cc716764.aspx"&gt;LINQ to SQL CustomType&lt;/a&gt;&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p&gt;&#xD;
A few other things to be aware of&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
If you are deploying a SQL Compact Database with your XAP (or it’s included in your&#xD;
project), the file is still accessible but it is read only.  If you want to write&#xD;
to it you will have to make a copy of it to Isolated Storage.  This might be&#xD;
use full if you are making a lookup table that never changes (for example drink mixes)&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
You can update the database schema on the fly using the Structured Data API. Basically&#xD;
it will allow you to update Tables, Columns, Indexes, Associations/Keys but only basic&#xD;
updates. Complex upgrades might require a full database migration and custom code&#xD;
might also be required &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
You cannot encrypt a database after it has been created.  &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
You cannot share database across applications&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
You can connect to a database from a &lt;a href="http://msdn.microsoft.com/en-us/library/hh202942(VS.92).aspx"&gt;Scheduled&#xD;
Task&lt;/a&gt;&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;&#xD;
            &lt;u&gt;What’s Next &#xD;
&lt;br&gt;&lt;/u&gt;&#xD;
          &lt;/strong&gt;Next up, I’ll follow up on a quick sample on creating a database and&#xD;
accessing the data on Windows Phone 7.  If you have already tried Local Database&#xD;
storage on Windows Phone let me know your experience by commenting below or via &lt;a href="http://twitter.com/MarkArteaga"&gt;twitter&#xD;
@MarkArteaga&lt;/a&gt;&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.markarteaga.com/aggbug.ashx?id=ae31cd18-f841-4c6c-bc27-0b6a51a1f23e"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=B50TFgndQbg:HTJeYG3sOxk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=B50TFgndQbg:HTJeYG3sOxk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=B50TFgndQbg:HTJeYG3sOxk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=B50TFgndQbg:HTJeYG3sOxk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=B50TFgndQbg:HTJeYG3sOxk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=B50TFgndQbg:HTJeYG3sOxk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=B50TFgndQbg:HTJeYG3sOxk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=B50TFgndQbg:HTJeYG3sOxk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=B50TFgndQbg:HTJeYG3sOxk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=B50TFgndQbg:HTJeYG3sOxk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkArteaga/~4/B50TFgndQbg" height="1" width="1"/&gt;</description>
      <comments>http://blog.markarteaga.com/CommentView,guid,ae31cd18-f841-4c6c-bc27-0b6a51a1f23e.aspx</comments>
      <category>Mango</category>
      <category>Windows Phone 7</category>
    <feedburner:origLink>http://blog.markarteaga.com/WindowsPhoneAndDatabaseSupport.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.markarteaga.com/Trackback.aspx?guid=fb85da7d-9c7c-4396-976d-241a51884bdc</trackback:ping>
      <pingback:server>http://blog.markarteaga.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.markarteaga.com/PermaLink,guid,fb85da7d-9c7c-4396-976d-241a51884bdc.aspx</pingback:target>
      <dc:creator>Mark Arteaga</dc:creator>
      <wfw:comment>http://blog.markarteaga.com/CommentView,guid,fb85da7d-9c7c-4396-976d-241a51884bdc.aspx</wfw:comment>
      <wfw:commentRss>http://blog.markarteaga.com/SyndicationService.asmx/GetEntryCommentsRss?guid=fb85da7d-9c7c-4396-976d-241a51884bdc</wfw:commentRss>
      
      <title>Windows Phone 7 Developer Tip: Themes &amp;amp; Copy &amp;amp; Paste</title>
      <guid isPermaLink="false">http://blog.markarteaga.com/PermaLink,guid,fb85da7d-9c7c-4396-976d-241a51884bdc.aspx</guid>
      <link>http://feedproxy.google.com/~r/MarkArteaga/~3/wX-DacjWg1s/WindowsPhone7DeveloperTipThemesAmpCopyAmpPaste.aspx</link>
      <pubDate>Wed, 22 Jun 2011 05:12:23 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
With the recent update for Windows Phone 7 (aka NoDo) finally starting to make it&#xD;
everywhere figured it was a good time to share something I’ve noticed with some apps&#xD;
dealing with the new feature of Copy &amp;amp; Paste.  Since most of you reading&#xD;
this are probably developers, you should also be aware there is also a &lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/02/04/windows-phone-developer-tools-january-update.aspx" target="_blank"&gt;Windows&#xD;
Phone 7 developer tools update&lt;/a&gt; to accompany NoDo. As a developer you should be&#xD;
aware of this new update and make sure your apps have the proper support.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
So what’s the issue?  Usually things will work right out of the box and no re-compile/re-design&#xD;
will be required.  But sometimes they won’t.  I have seen some applications&#xD;
out there that do not work so hence the reason for this post.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://www.humorsoffice.com/images/2011/02/OldSchoolCutCopyandPaste.jpg" width="240" height="240"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p align="justify"&gt;&#xD;
          &lt;img style="margin: 10px; display: inline; float: right" align="right" src="http://www.studentguru.gr/blogs/vangos/photoshop-templates-for-windows-phone-7/windows-phone-7-panorama.png" width="240" height="150"&gt;&lt;/img&gt;The&#xD;
first issue you might get is Copy &amp;amp; Paste in a panorama or a pivot.  If your&#xD;
user has updated to the new OS that has Copy &amp;amp; Paste and you used a text box in&#xD;
a Panorama or Pivot control, the user is not going to have the best experience. &#xD;
Basically the issue will be as the user is trying to select more text, the pivot or&#xD;
panorama will try to switch items so the text box and pano or pivot will be competing&#xD;
for manipulation events. This could lead to a frustrated user.  Using a TextBox&#xD;
in a pano or pivot control does go against the design guidelines but you are not stopped&#xD;
from doing it.  To overcome this you will have to re-compile your application&#xD;
with the new tools and re-submit an update to marketplace.  Small thing to do&#xD;
but your customers will be happy &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-7-Tip-Cut--Paste-and-Theme_D9D3/wlEmoticon-smile_2.png"&gt;&lt;/img&gt;&lt;/p&gt;&#xD;
        &lt;p align="justify"&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-7-Tip-Cut--Paste-and-Theme_D9D3/image_4.png"&gt;&#xD;
            &lt;img style="background-image: none; border-right-width: 0px; margin: 10px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-7-Tip-Cut--Paste-and-Theme_D9D3/image_thumb_1.png" width="127" height="244"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;The&#xD;
second issue I found is around themes, accent colours and brushes.  Basically,&#xD;
with theme and accent colour the user has the option to change these to personalize&#xD;
their phone.  For theme the user has the option of Black or White background&#xD;
and for accent colour the user has 10 options.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p align="justify"&gt;&#xD;
As the user changes the theme, foreground text, selected text highlight, selected&#xD;
text foreground colours will change.  These all correspond to brushes in the&#xD;
TextBox &#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;ol&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;ul&gt;&#xD;
              &lt;li&gt;&#xD;
                &lt;strong&gt;Foreground&lt;/strong&gt; – The standard foreground colour for the text &#xD;
&lt;/li&gt;&#xD;
              &lt;li&gt;&#xD;
                &lt;strong&gt;SelectionBackground&lt;/strong&gt; – the background colour when some text is selected &#xD;
&lt;/li&gt;&#xD;
              &lt;li&gt;&#xD;
                &lt;strong&gt;SelectionForeground&lt;/strong&gt; – the foreground colour for the text when the&#xD;
text is selected &#xD;
&lt;/li&gt;&#xD;
            &lt;/ul&gt;&#xD;
          &lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p align="justify"&gt;&#xD;
If you already have an app in marketplace and for some reason decided not to use the&#xD;
default brushes then be aware that the user may have an issue seeing the text selected. &#xD;
I’ve seen a couple of instances of apps that when I select some text in the text box,&#xD;
the SelectionBackground is White and the SelectionForeground is also white. &#xD;
This is a result of hardcoding the brushes in your application.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p align="justify"&gt;&#xD;
If you are creating an application and don’t change any of the brushes your application&#xD;
will do the following when high lighting text&#xD;
&lt;/p&gt;&#xD;
        &lt;p align="center"&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-7-Tip-Cut--Paste-and-Theme_D9D3/image_5.png"&gt;&#xD;
            &lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-7-Tip-Cut--Paste-and-Theme_D9D3/image_thumb.png" width="244" height="202"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p align="left"&gt;&#xD;
And if you change your brushes but don’t set them properly, you may get the following&#xD;
result&#xD;
&lt;/p&gt;&#xD;
        &lt;p align="left"&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-7-Tip-Cut--Paste-and-Theme_D9D3/image_7.png"&gt;&#xD;
            &lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-7-Tip-Cut--Paste-and-Theme_D9D3/image_thumb_2.png" width="244" height="143"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p align="left"&gt;&#xD;
So how do you avoid this? Well if you are changing the default brushes just be aware&#xD;
of what you are changing it to.  When working on the UI of a Windows Phone application,&#xD;
I usually get that work done in Expression Blend.  If you are not familiar with&#xD;
it would probably be a good idea to get familiar with it as it could reduce your development&#xD;
time, Visual Studio is not the greatest tool to get a Windows Phone user interface&#xD;
done &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-7-Tip-Cut--Paste-and-Theme_D9D3/wlEmoticon-smile_2.png"&gt;&lt;/img&gt;&lt;/p&gt;&#xD;
        &lt;p align="left"&gt;&#xD;
So, in Blend, for the text box when selected, you will get some properties where you&#xD;
can change the brushes.&#xD;
&lt;/p&gt;&#xD;
        &lt;p align="left"&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-7-Tip-Cut--Paste-and-Theme_D9D3/image_11.png"&gt;&#xD;
            &lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-7-Tip-Cut--Paste-and-Theme_D9D3/image_thumb_4.png" width="284" height="508"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p align="left"&gt;&#xD;
The image above shows the brushes for a textbox that has custom colors.  Notice&#xD;
the SelectionBackground and SelectionForeground are both the same colour, this causes&#xD;
the text not to be visible when text is selected.  This is easily overcome, and&#xD;
all you have to do is click on the ‘Advance Options’ square and then click ‘Reset’&#xD;
&lt;/p&gt;&#xD;
        &lt;p align="left"&gt;&#xD;
          &lt;a href="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-7-Tip-Cut--Paste-and-Theme_D9D3/image_13.png"&gt;&#xD;
            &lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.markarteaga.com/content/binary/Windows-Live-Writer/Windows-Phone-7-Tip-Cut--Paste-and-Theme_D9D3/image_thumb_5.png" width="295" height="551"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p align="left"&gt;&#xD;
Now, you can either ‘Reset’ or make sure the colours are not the same.&#xD;
&lt;/p&gt;&#xD;
        &lt;p align="left"&gt;&#xD;
And that’s it!  Not very exciting and small things, but it’s the small things&#xD;
that users remember and complain about! Something to definitely think about to deliver&#xD;
that great user experience to your customers on Windows Phone! &#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.markarteaga.com/aggbug.ashx?id=fb85da7d-9c7c-4396-976d-241a51884bdc"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=wX-DacjWg1s:WGTSQHN3NcE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=wX-DacjWg1s:WGTSQHN3NcE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=wX-DacjWg1s:WGTSQHN3NcE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=wX-DacjWg1s:WGTSQHN3NcE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=wX-DacjWg1s:WGTSQHN3NcE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=wX-DacjWg1s:WGTSQHN3NcE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=wX-DacjWg1s:WGTSQHN3NcE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=wX-DacjWg1s:WGTSQHN3NcE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MarkArteaga?a=wX-DacjWg1s:WGTSQHN3NcE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MarkArteaga?i=wX-DacjWg1s:WGTSQHN3NcE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MarkArteaga/~4/wX-DacjWg1s" height="1" width="1"/&gt;</description>
      <comments>http://blog.markarteaga.com/CommentView,guid,fb85da7d-9c7c-4396-976d-241a51884bdc.aspx</comments>
      <category>UX</category>
      <category>Windows Phone 7</category>
    <feedburner:origLink>http://blog.markarteaga.com/WindowsPhone7DeveloperTipThemesAmpCopyAmpPaste.aspx</feedburner:origLink></item>
  </channel>
</rss>

