<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://mobileworld.appamundi.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"><channel><title>APPA Mundi</title><link>http://mobileworld.appamundi.com/blogs/</link><description>software solutions for a mobile world</description><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 (Build: 30912.2823)</generator><item><title>Cross Platform NFC</title><link>http://mobileworld.appamundi.com/blogs/peterfoot/archive/2013/05/25/cross-platform-nfc.aspx</link><pubDate>Fri, 24 May 2013 18:20:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:525</guid><dc:creator>Peter Foot</dc:creator><slash:comments>0</slash:comments><description>&lt;p style="margin:0cm 0cm 8pt;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;NFC support in Windows Phone provides an exciting new way to add interactivity to apps and games. This series of posts will look at the state of NFC across the Windows and Android platforms. There are a number of standard Tag types defined by the NDEF format, for the sake of simplicity we&amp;rsquo;ll ignore the fact that Android can read other tag types and just concentrate on NDEF as it provides the best interoperability. Representing Windows Phone 8 I&amp;rsquo;m using the Nokia Lumia 920 although the 820 Developer phone provides the same experience. Representing Windows 8/RT is the Asus VivoTab RT which is one of few tablets with NFC support built in. Representing Android is the Samsung Galaxy S3. Since I&amp;rsquo;m less familiar with Android there is a possibility that some of the functionality I have discovered is Samsung specific and not part of the core Android OS.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin:0cm 0cm 8pt;" class="MsoNormal"&gt;Sending&lt;/h2&gt;
&lt;p style="margin:0cm 0cm 8pt;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;The first table here shows the formats for which sending is supported within the platform. I haven&amp;rsquo;t included app links as these are platform specific. I was disappointed to find that out of the box the Windows tablet has no capability to share items over NFC from the built in apps. The send behaviour on Android is very seamless &amp;ndash; tap the device against another and if the current app can share the screen changes slightly and you tap to share the current item. On Windows Phone you have to go through a few layers of menu first before being prompted to tap a device.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0cm 0cm 8pt;" class="MsoNormal"&gt;&lt;span style="font-size:small;font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table cellpadding="0" cellspacing="0" style="border-collapse:collapse;mso-border-alt:solid windowtext .5pt;mso-yfti-tbllook:1184;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;" class="MsoTableGrid"&gt;
&lt;tbody&gt;
&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;"&gt;
&lt;td style="padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;border:windowtext 1pt solid;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Windows Phone&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Windows 8/RT&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Android 4.1&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:1;"&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:windowtext 1pt solid;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Uri&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Requires 3&lt;sup&gt;rd&lt;/sup&gt; Party App&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:2;"&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:windowtext 1pt solid;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Mime (vCard)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Requires 3&lt;sup&gt;rd&lt;/sup&gt; Party App&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:3;mso-yfti-lastrow:yes;"&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:windowtext 1pt solid;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Text&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style="margin:0cm 0cm 8pt;" class="MsoNormal"&gt;&lt;span style="font-size:small;font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin:0cm 0cm 8pt;" class="MsoNormal"&gt;Receiving&lt;/h2&gt;
&lt;p style="margin:0cm 0cm 8pt;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;The platforms can receive over NFC so long as the device is not pin locked. The following list shows what types of data (or pre-written tags) you can read on these devices without any specific third-party apps running.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table cellpadding="0" cellspacing="0" style="border-collapse:collapse;mso-border-alt:solid windowtext .5pt;mso-yfti-tbllook:1184;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;" class="MsoTableGrid"&gt;
&lt;tbody&gt;
&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;"&gt;
&lt;td style="padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;border:windowtext 1pt solid;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Windows Phone&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Windows 8/RT&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Android 4.1&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:1;"&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:windowtext 1pt solid;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Uri&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:2;"&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:windowtext 1pt solid;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Mime (vCard)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:3;mso-yfti-lastrow:yes;"&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:windowtext 1pt solid;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Text&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top:#f0f0f0;border-right:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding-bottom:0cm;padding-top:0cm;padding-left:5.4pt;border-left:#f0f0f0;padding-right:5.4pt;width:112.7pt;background-color:transparent;mso-border-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;"&gt;
&lt;p style="margin:0cm 0cm 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style="margin:0cm 0cm 8pt;" class="MsoNormal"&gt;&lt;span style="font-size:small;font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0cm 0cm 8pt;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;So from a very high level the three platforms support the basic tag types for Uris and Contacts across the board. Although Android has default behaviour when receiving a Text tag it just displays the text on screen &amp;ndash; there is no functionality to do anything with the text. In a future investigation I&amp;rsquo;ll look into the tag types in more detail. The Uri tag for example is very powerful because you can register custom&amp;nbsp;Uri schemes for your app so that a Uri tag could provide a deep link into your application. The systems maintain support for well-defined Uri schemas like http, tel and sms for example. There are additional platform specific ones on Windows Phone for launching items such as Wifi and Bluetooth Settings pages.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=525" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category><category domain="http://mobileworld.appamundi.com/blogs/peterfoot/archive/tags/NFC/default.aspx">NFC</category><category domain="http://mobileworld.appamundi.com/blogs/peterfoot/archive/tags/Windows+Store/default.aspx">Windows Store</category></item><item><title>Moving from an HDD to a SSD</title><link>http://mobileworld.appamundi.com/blogs/petevickers/archive/2013/04/26/moving-from-an-hdd-to-a-ssd.aspx</link><pubDate>Fri, 26 Apr 2013 08:38:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:522</guid><dc:creator>Pete Vickers</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I recently had a SSD fail on me, and it was sent back for replacement. When I installed the SSD originally I did a Windows install, and then all the installs needed, VS2012, Phone developer SDK, SQL Server, etc. etc. - not a quick job.&lt;/p&gt;
&lt;p&gt;It therefore goes without saying, that when the SSD failed, I wasn&amp;#39;t best pleased, especially as this was the 2nd one to fail. (I got my money back on the first one, but when the second one failed, I sent it back for replacement.) So a couple of weeks ago, I sent the SSD back for replacement, and re-installed the OS and everything else again - another long&amp;nbsp;day spent. &lt;/p&gt;
&lt;p&gt;Before I got the SSD back, I examined my options to save me for doing yet another re-install. My current hard drive is 750gb, and partitioned into 200gb, 200gb and 350gb, the operating system being installed on the first partition. The SSD&amp;nbsp;has a capacity of 240gb. I own Acronis True Image&amp;nbsp;2013 for backup, and that contains a disk clone tool. So I decided that was the way to go. &lt;/p&gt;
&lt;p&gt;My SSD arrived back (by pack mule I think, as it took so long), so I plugged it into my disc caddy, and then plugged it into my USB 3.0 port. I then fired up Acronis, only to discover it doesn&amp;#39;t want to clone partitions, and because of the disparity in drive sizes, I couldn&amp;#39;t use it. After quite a bit of searching, and a couple of false starts, I came across&amp;nbsp;&lt;a href="http://www.partitionwizard.com/free-partition-manager.html"&gt;MiniTool Partition Wizard&lt;/a&gt;&amp;nbsp;which seemed to fit the bill. The program has wizards, and manual options, but feeling brave I went the manual route. I chose the source as my 200gb partition from the HDD and the destination as the new SSD, chose to make it a primary partition, and clicked to set it off. I got a warning that it couldn&amp;#39;t use the C:\ drive as it was busy, and did I want to do a re-boot and run it on start-up. I gulped, and decided to give it a try (after checking several times I was going from C:\ to my new drive and not the other way round).&lt;/p&gt;
&lt;p&gt;My system re-booted, and I hit return to run the software. It chugged away for about 45 minutes, and then continued into Windows as normal. I took a quick look at the new disc, and everything seemed to be there. So, I swapped the drives, and fired up the machine. &lt;/p&gt;
&lt;p&gt;Very disappointingly, it just sat there, with a blinking cursor. I swore, and then thought for a few minutes. This thought process&amp;nbsp;led me to insert my Windows DVD, boot from&amp;nbsp;the DVD drive,&amp;nbsp;and try a repair. &lt;/p&gt;
&lt;p&gt;Again, it chugged away for a few minutes, rebooted, and lo-and behold, there was my log-on picture. SUCCESS!!&lt;/p&gt;
&lt;p&gt;I fired up Outlook, and it bitched about the OST, so I deleted it, restarted Outlook, and it downloaded my mail. Ran up a few programs and all seem fine - so I pronounced it a success, and got on with my work. &lt;/p&gt;
&lt;p&gt;I ran VS2012, opened a Windows Phone 8 project, made a couple of mods, and ran it up in the emulator. The emulator wouldn&amp;#39;t start! The message asked me to make sure that the BIOS Settings were correct, and various other options. I checked &lt;a href="http://mobileworld.appamundi.com/blogs/petevickers/archive/2012/11/01/troubleshooting-windows-phone-8-emulator-problems.aspx"&gt;my own article on the emulator problems&lt;/a&gt;, and everything seemed fine. Hyper-V was running, I was still a user, the network settings were fine - so what was wrong?&lt;/p&gt;
&lt;p&gt;I tried a couple of options, and then hit pay-dirt. Uninstall Hyper-V, restart the system, re-install Hyper-V, and the restart the system again. SUCCESS again!!&lt;/p&gt;
&lt;p&gt;So now, 24 hours later, everything seems to be OK. Scheduled jobs ran as they should, back-up ran, all seems fine. &lt;/p&gt;
&lt;p&gt;With my searching and fixing, this still took me 3 or 4 hours - but a lot less than installing everything that I needed to install. If I had got it right first time, a couple of hours would have done it. Please let this SSD last longer than the last ones. &lt;/p&gt;
&lt;p&gt;I have written a disc space monitor that runs hourly, so I can keep a weather eye on disc space. This logs space, and lets me know if it changes significantly, as I have gone to a paltry 240gb from 750gb. (My first PC had a 10mb drive!!) I may look at writing a disc monitor, that does a chkdsk to a file, and then reads the file to give me an early warning of problems. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=522" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/ssd/default.aspx">ssd</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/disc+space/default.aspx">disc space</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/hdd/default.aspx">hdd</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/transfer+windows+disc/default.aspx">transfer windows disc</category></item><item><title>Use Team Foundation Service for Embedded Projects</title><link>http://mobileworld.appamundi.com/blogs/peterfoot/archive/2013/04/20/use-team-foundation-service-for-embedded-projects.aspx</link><pubDate>Fri, 19 Apr 2013 14:23:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:521</guid><dc:creator>Peter Foot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Microsoft&amp;#39;s hosted TFS (&lt;a href="http://tfs.visualstudio.com/"&gt;http://tfs.visualstudio.com/&lt;/a&gt;) provides a cloud hosted TFS project collection which is free for small teams. It works neatly with VS2012 which is fine for Windows Store and Windows Phone project types but for .NET Compact Framework development we are still stuck with using Visual Studio 2008. Luckily with a few patches it is possible to connect to a Team Foundation Service collection from Visual Studio 2008. I recently had to rebuild my Windows 8 desktop machine so for reference thought I would blog the instructions for setting this up. You&amp;#39;ll need to install the items in the following order:-&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Visual Studio 2008&lt;/li&gt;
&lt;li&gt;Team Explorer 2008 (On the Team Foundation Server 2008 Disc)&lt;/li&gt;
&lt;li&gt;Service Pack 1 for Visual Studio 2008 (Updates both of the above)&lt;/li&gt;
&lt;li&gt;Visual Studio 2008 SP1 Compatibility GDR for Visual Studio 2012 Team Foundation Server (&lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=29983"&gt;http://www.microsoft.com/en-us/download/details.aspx?id=29983&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No before you ask I didn&amp;#39;t make up the name of that last one, I actually shortened it for you :-)&lt;/p&gt;
&lt;p&gt;To open a project from the server open your shiny up-to-date VS2008 IDE and go to File &amp;gt; Source Control &amp;gt; Open from Source Control. You&amp;#39;ll get a blank dialog with a drop down box for servers and an empty list of projects. Select the Servers... button and then click Add..&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.00/vs2008_2D00_addserver.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;You&amp;#39;ll notice that after these updates the dialog allows you to enter a fully formed Url for the server and will grey out the connection details below. You must specify https and include the DefaultCollection indicator, this Uri will always be of the form &amp;lt;yourchosenname&amp;gt;.visualstudio.com. When you click okay VS2008 will connect to the service and then prompt you to authenticate with your Microsoft ID. Once this is successful you&amp;#39;ll see the following:-&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.00/vs2008_2D00_projects.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It will show you the display name of the account you are logged in as at the bottom left (not on this shot) and a Sign Out option. Things get a little complicated if you regularly use different Microsoft IDs because you can get into a situation where VS2008 shows error messages from the service but doesn&amp;#39;t show what account it thinks you are logged in as or give the option to log out and back in with different credentials. Still haven&amp;#39;t found a neat way around this yet other than making sure you log out from your Microsoft ID in your browser and possibly also the browser within the VS shell. It seems to be a cookie issue and possibly compounded if you use a Windows 8 account signing in with your Microsoft ID. If you&amp;#39;ve successfully got to this step you can select a project, assign a local path and work as you would with a local TFS back end. As well as the source control the work items sync back and forth with the web front end. I don&amp;#39;t think there is any capability to use the &amp;quot;Preview&amp;quot; build services for Embedded projects and doubt if this functionality will be added.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=521" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/peterfoot/archive/tags/Compact+Framework/default.aspx">Compact Framework</category></item><item><title>Launching PDF Documents</title><link>http://mobileworld.appamundi.com/blogs/peterfoot/archive/2013/04/16/launching-pdf-documents.aspx</link><pubDate>Tue, 16 Apr 2013 10:12:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:520</guid><dc:creator>Peter Foot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;In Windows Phone 8 the Windows.System.Launcher class allows you to open files with apps which are registered to handle them. On Windows Phone you have built in support for Office documents and audio and video formats. Lets say you want to open a PDF either remotely or downloaded by your app. There isn&amp;#39;t a built-in PDF viewer but there are several available including free readers by both Microsoft and Adobe. If your user doesn&amp;#39;t already have one installed there are some extra steps. The first thing that happens is that the user is prompted like so:-&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/peterfoot/require-app.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;If the user taps yes the phone will display a store search for apps which are associated with the file type:-&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/peterfoot/pdf-apps.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Not sure why Adobe Reader isn&amp;#39;t in this list and why it looks like the last entry is a game :-) but at least the top couple of entries seem like they will do the job.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=520" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category></item><item><title>Odd Issue With Camera Preview on Surface RT</title><link>http://mobileworld.appamundi.com/blogs/peterfoot/archive/2013/04/15/odd-issue-with-camera-preview-on-surface-rt.aspx</link><pubDate>Mon, 15 Apr 2013 08:26:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:519</guid><dc:creator>Peter Foot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;When directly integrating video capture in your Windows Store app you can use the MediaCapture class. There are a number of methods which affect the video but not all will be supported on all devices. One of these is SetPreviewMirroring&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/windows.media.capture.mediacapture.setpreviewmirroring.aspx?lc=1033"&gt;http://msdn.microsoft.com/en-us/library/windows/apps/windows.media.capture.mediacapture.setpreviewmirroring.aspx?lc=1033&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This mirrors the preview video so that your image is, well, like a mirror. However I&amp;#39;ve discovered that although the method throws an exception if not supported, it also throws an exception on Surface RT even though it is supported and the video is correctly mirrored. Worse still the GetPreviewMirroring method returns false when the video is currently mirrored :-(&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=519" width="1" height="1"&gt;</description></item><item><title>Prototyping with Infragistics Indigo</title><link>http://mobileworld.appamundi.com/blogs/peterfoot/archive/2013/04/13/prototyping-with-infragistics-indigo.aspx</link><pubDate>Fri, 12 Apr 2013 11:41:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:518</guid><dc:creator>Peter Foot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I recently needed to create a prototype for a Windows Phone application and having recently discovered it I decided to use &lt;a target="_blank" href="http://www.infragistics.com/products/indigo-studio" title="Indigo Studio"&gt;Indigo Studio&lt;/a&gt; to build it. The application is not particularly designed for Windows Phone however it has enough standard UI controls and customisations to make it easy to create phone mockups. They say a picture says a thousand words so why not have a look at a sample I created showing a few screens of an imaginary phone application.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://indigo.infragistics.com/prototype/XX47K8P4"&gt;http://indigo.infragistics.com/prototype/XX47K8P4&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In posting that link I&amp;#39;ve just highlighted one of the great features - you can build a prototype and then share it (either on Infragistics servers or your own) via the web. The Silverlight magic then gives your clients a rich experience to understand the scope and user flow around the application. I intend to revisit this in a series of blog posts to discuss gotchas and tips for creating Windows Phone prototypes. Oh and one of the best features - it&amp;#39;s free!&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.00/indigo1.png" alt="" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=518" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category></item><item><title>Windows Phone Store submission - Error 2001 There are duplicate files in AppManifest.xaml</title><link>http://mobileworld.appamundi.com/blogs/petevickers/archive/2013/04/12/windows-phone-store-submission-error-2001-there-are-duplicate-files-in-appmanifest-xaml.aspx</link><pubDate>Fri, 12 Apr 2013 06:54:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:517</guid><dc:creator>Pete Vickers</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I have just finished a Windows Phone app, and was submitting it to store. It was a pretty simple app, but when I submitted it, I immediately got a mail message that it had failed. When I checked it up, I had an error 2001, which reads:-&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2001 - There are duplicate files in AppManifest.xaml. Remove one of the files and then try again.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The explanation for this read:-&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;If rebuilding your &lt;span class="label"&gt;XAP&lt;/span&gt; doesn&amp;#39;t solve this problem, you may have to manually remove any duplicate files from the AppManifest.xaml in your &lt;span class="label"&gt;XAP&lt;/span&gt; file. To rebuild your app, see &lt;span&gt;Rebuilding your project in Visual Studio&lt;/span&gt;.&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;I looked at the AppManifest.xaml file, and couldn&amp;#39;t see a problem&lt;/p&gt;
&lt;p&gt;&amp;lt;Deployment xmlns=&amp;quot;&lt;a href="http://schemas.microsoft.com/client/2007/deployment"&gt;http://schemas.microsoft.com/client/2007/deployment&lt;/a&gt;&amp;quot; xmlns:x=&amp;quot;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/a&gt;&amp;quot; EntryPointAssembly=&amp;quot;Post Code Lookup&amp;quot; EntryPointType=&amp;quot;Post_Code_Lookup.App&amp;quot; RuntimeVersion=&amp;quot;4.7.50308.0&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;Deployment.Parts&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;AssemblyPart x:Name=&amp;quot;Post Code Lookup&amp;quot; Source=&amp;quot;Post Code Lookup.dll&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;AssemblyPart x:Name=&amp;quot;APPAMundiMail&amp;quot; Source=&amp;quot;APPAMundiMail.dll&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;AssemblyPart x:Name=&amp;quot;InTheHand.Phone&amp;quot; Source=&amp;quot;InTheHand.Phone.dll&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;AssemblyPart x:Name=&amp;quot;Microsoft.Azure.Zumo.WindowsPhone8.Managed&amp;quot; Source=&amp;quot;Microsoft.Azure.Zumo.WindowsPhone8.Managed.dll&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;AssemblyPart x:Name=&amp;quot;Microsoft.Phone.Controls&amp;quot; Source=&amp;quot;Microsoft.Phone.Controls.dll&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;AssemblyPart x:Name=&amp;quot;Microsoft.Phone.Controls.Toolkit&amp;quot; Source=&amp;quot;Microsoft.Phone.Controls.Toolkit.dll&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;AssemblyPart x:Name=&amp;quot;Newtonsoft.Json&amp;quot; Source=&amp;quot;Newtonsoft.Json.dll&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/Deployment.Parts&amp;gt;&lt;br /&gt;&amp;lt;/Deployment&amp;gt;&lt;/p&gt;
&lt;p&gt;So I did a clean, resubmitted and the same error. I compared the xaml file to other successful submissions, and it looked the same. I scratched my head, swore quite a bit, reached out on Twitter, suspected the new updates to the store, sacrificed a chicken, but it didn&amp;#39;t help. &lt;/p&gt;
&lt;p&gt;I slept on the problem, and refreshed (yeah!) attacked the problem again. Still the same. &lt;/p&gt;
&lt;p&gt;I examined the XAP file in WinRAR (remember, a XAP file is effectively a Zip file), and suddenly realised the problem. &lt;/p&gt;
&lt;p&gt;When I start a new project, I usually create or copy in a &amp;#39;Dependencies&amp;#39; folder, which contains dll&amp;#39;s that are used in the project. We have our own &amp;#39;About&amp;#39; dll, &amp;#39;Mail&amp;#39; dll etc. When I had copied it, I had dragged and dropped it from the source folder, and copied it to the project in VS2012, not the project folder in Explorer. &lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02/Error1.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Building the application, it had, quite correctly, included the Dependencies folder in the XAP file, so some of the dll&amp;#39;s in References had been copied in the Dependencies folder. &lt;/p&gt;
&lt;p&gt;The error message was a bit misleading, but in the end, it was user error. &lt;/p&gt;
&lt;p&gt;I hope this helps someone else who makes a similar mistake.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=517" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/windows+phone/default.aspx">windows phone</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/submission/default.aspx">submission</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/appmanifest.xaml/default.aspx">appmanifest.xaml</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/2001/default.aspx">2001</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/windows+phone+store/default.aspx">windows phone store</category></item><item><title>Free utility generating code for Windows Azure Mobile Services - APPA WAMS</title><link>http://mobileworld.appamundi.com/blogs/petevickers/archive/2013/03/23/free-utility-generating-code-for-windows-azure-mobile-services-appa-wams.aspx</link><pubDate>Sat, 23 Mar 2013 16:40:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:514</guid><dc:creator>Pete Vickers</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I have recently been doing some work with &lt;a href="http://www.windowsazure.com/en-us/develop/mobile/"&gt;Windows Azure Mobile Services&lt;/a&gt;, and have been very impressed by how easy it is to develop against. I have a blog in progress about populating databases, but after embarking on a third application using WAMS, I realised that a lot of the code was repetitive and could be automated. &lt;/p&gt;
&lt;p&gt;Every WAMS&amp;nbsp;project will need to define the tables, and probably also write data to those tables. So, I decided to take a few hours out to write something to help developers (and ourselves)&amp;nbsp;take advantage of WAMS. The result is &lt;a href="http://appamundi.com/software/APPA%20Wams%20setup.zip"&gt;APPA Wams&lt;/a&gt;, which will:-&lt;/p&gt;
&lt;p&gt;a) Generate table definitions for all tables in a database&lt;br /&gt;b) Generate &amp;#39;insert&amp;#39; statements for all tables in a database&lt;br /&gt;c) Generate skeleton &amp;#39;read&amp;#39; statements for all tables in a database&lt;br /&gt;d) Generate view models for all tables in the database&lt;/p&gt;
&lt;p&gt;This should save developers quite a bit of time when developing for WAMS. You simply need to provide the parameters for connecting to your database, choose an output file, and a namespace, and &lt;a href="http://appamundi.com/software/APPA%20Wams%20setup.zip"&gt;APPA Wams&lt;/a&gt; does the rest. Your database can be local, on a server or an Azure database.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/Setup1.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;When the program finishes, all you need do is add &amp;#39;&lt;strong&gt;Database.cs&lt;/strong&gt;&amp;#39; and the view model files to your development project. The view model files are named from the table names, for example &lt;strong&gt;UsersItemViewModel.cs&lt;/strong&gt; and &lt;strong&gt;UsersMainViewModel.cs.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The table definitions code produced is:-&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/Setup2.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;and all the tables are defined. There are skeleton processes for writing to each table in the database - all you need to do is supply the data. The code is:-&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/Setup3.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;There are procedures for reading from tables. The procedures show how to read from tables with selection criteria, and populate the view models we created. It just needs tweaking for your own use.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/Setup4a.png" alt="" /&gt;&lt;br /&gt;Finally, there will be view models created&amp;nbsp;for each table in the database, named according to the tables, for example &lt;strong&gt;UsersItemViewModel.cs&lt;/strong&gt; and &lt;strong&gt;UsersMainViewModel.cs&lt;/strong&gt;. The item view model code produced is:-&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/Setup5.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Including the implementation of INotifyPropertyChanged&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/Setup6.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;and the &amp;#39;Main&amp;#39; view model code:-&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/Setup7.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;We also produce a file, based on your name space(&lt;strong&gt;SalesFile_CodeForApp.xaml.cs&lt;/strong&gt; in this case)&amp;nbsp;containing the declarations of the view models. This can be cut and pasted into &lt;strong&gt;App.xaml.cs&lt;/strong&gt; so that your view models are available throughout your application.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/Setup8.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;The code produced by APPA Wams&amp;nbsp;should work equally well for Windows Phone and Windows Store projects.&lt;/p&gt;
&lt;p&gt;We hope this will prove to be a useful tool for developers. It is supplied &amp;#39;as is&amp;#39;, but you can mail &lt;a href="mailto:support@apppamundi.com"&gt;support@apppamundi.com&lt;/a&gt; with any suggestions for improvements (or errors). You can download APPA Wams &lt;a href="http://appamundi.com/software/APPA%20Wams%20setup.zip"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a href="http://www.twitter.com/@mtaulty"&gt;Mike Taulty&lt;/a&gt; whose talk to the &lt;a href="http://www.meetup.com/Windows-Phone-User-Group-Manchester/"&gt;Windows Phone User Group (North West)&lt;/a&gt; a few weeks ago stimulated my interest in WAMS, and gave me some help along the way with my initial project.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=514" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/windows+phone/default.aspx">windows phone</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/Windows+8+store/default.aspx">Windows 8 store</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/WAMS/default.aspx">WAMS</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/azure/default.aspx">azure</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/windows+azure+mobile+services/default.aspx">windows azure mobile services</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/appa+mundi/default.aspx">appa mundi</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/view+model/default.aspx">view model</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/viewmodel/default.aspx">viewmodel</category></item><item><title>Adventures with Windows Azure Mobile Services</title><link>http://mobileworld.appamundi.com/blogs/petevickers/archive/2013/03/22/adventures-with-windows-azure-mobile-services.aspx</link><pubDate>Fri, 22 Mar 2013 11:05:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:513</guid><dc:creator>Pete Vickers</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://www.twitter.com/@mtaulty"&gt;Mike Taulty&lt;/a&gt; recently spoke to our &lt;a href="http://www.meetup.com/Windows-Phone-User-Group-Manchester/"&gt;Windows Phone User Group (North West)&lt;/a&gt;, and got me interested in WAMS. We had been dabbling with a mobile sales demo, but other things got in the way, and we didn&amp;#39;t make much progress. &lt;/p&gt;
&lt;p&gt;The catalyst for doing more was some nice person stealing my Surface RT at Mobile World Congress in Barcelona. I decided to write &lt;a href="http://apps.microsoft.com/windows/app/findmysurface/88ec6a99-c250-4ec2-92d3-4937a03f4a3b"&gt;FindMySurface&lt;/a&gt;, and talking about it to &lt;a href="http://www.twitter.com/@peterfoot"&gt;Peter&lt;/a&gt;, decided that SQL Azure would be a great vehicle for this. We could log to SQL Azure, and enquire on it from a web site or&amp;nbsp;a PC. Mike had done a great job of explaining things, and his &lt;a href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2012/09/19/experimenting-with-windows-azure-mobile-services.aspx"&gt;blog&lt;/a&gt; goes into far more detail. &lt;/p&gt;
&lt;p&gt;Using the &lt;a href="http://manage.windowsazure.com/"&gt;Azure portal&lt;/a&gt;, I created the tables we needed, and added the indexes. This was a no-brainer really, as we had no data, and we were going to collect it on-line from the Surface. After getting my head around the fact that the &amp;#39;id&amp;#39; field MUST be present in every table, and MUST be called &amp;#39;id&amp;#39;, most of it fell into place. I wrote a &amp;#39;database&amp;#39; class for my app, and put all the database access in the class. Using &amp;#39;async&amp;#39;, I could wait for records to be retrieved, and then display them. I did lots of searching, and asked Mike for advice on a couple of things, but generally, found it was fairly easy to code. I read a couple of wrinkles, including the fact that WAMS is more efficient retrieving 50 records at a time, as that is how it is &amp;#39;batched&amp;#39; on the servers. This was built into the application, and was made configurable. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://apps.microsoft.com/windows/app/findmysurface/88ec6a99-c250-4ec2-92d3-4937a03f4a3b"&gt;FindMySurface&lt;/a&gt; logs your position depending on various system events, and also runs in background. You can enquire on the whereabouts of your Surface (or ANY Windows 8 device) and plot it on a map. Performance of the enquiries is very impressive. You can also enquire on its location using a web site (currently being written as I write this).&lt;/p&gt;
&lt;p&gt;Flushed with the success and the&amp;nbsp;ease with which I could talk to WAMS, I decided to write a &lt;a href="http://www.windowsphone.com/s?appid=cf82d9c7-36b4-44e5-a440-f6495c11e18b"&gt;Windows Phone application&lt;/a&gt;, to enquire on FindMySurface. Imaginatively, this is also called &lt;a href="http://www.windowsphone.com/s?appid=cf82d9c7-36b4-44e5-a440-f6495c11e18b"&gt;FindMySurface&lt;/a&gt;. The database class for the Windows 8 project fitted into the Windows Phone project without changes, and the phone project was very quick to write, using the mapping code culled&amp;nbsp;from other projects. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://apps.microsoft.com/windows/app/findmysurface/88ec6a99-c250-4ec2-92d3-4937a03f4a3b"&gt;FindMySurface&lt;/a&gt; is now available in the Windows 8 store for a nominal fee, and the &lt;a href="http://www.windowsphone.com/s?appid=cf82d9c7-36b4-44e5-a440-f6495c11e18b"&gt;Windows Phone store&lt;/a&gt; for free. &lt;/p&gt;
&lt;p&gt;Having got an initial experience of WAMS under my belt, I turned my thoughts back to the mobile sales demo&amp;nbsp;I mentioned earlier. We had designed a database, and populated it with test data using the excellent &lt;a href="http://www.red-gate.com/products/sql-development/sql-data-generator/"&gt;SQL Data Generator&lt;/a&gt; from &lt;a href="http://www.red-gate.com/"&gt;Redgate&lt;/a&gt; software (I LOVE Redgate products). The first job was to ensure that each field had an &amp;#39;id&amp;#39; field on it. Most of them did, but were called &amp;#39;CustomerID&amp;#39;, &amp;#39;UserID&amp;#39; etc. So I rejigged the layouts, and links, and made sure everything hung together. The database already had data in customers, products etc., so the next stage was to get the database up to the cloud, and link it to WAMS. &lt;/p&gt;
&lt;p&gt;The first thing to do is to get our database up into the cloud. In SQL Server Management Studio, right click on the database, select Tasks, and then Deploy Database to SQL Azure.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/SSMS1.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;You will then get a prompt to connect to your Azure server. You can get the address of the server from the Management Portal.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/SSMS2.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Your database will then be created on your Azure server - you get a progress report as it is creating.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/SSMS3.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Now go back to the Azure portal, and you will see that your database is listed there under SQL Databases.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/Azure1.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Our next stage is to create our Mobile Service, so in the portal, click on Mobile Services, and create a new Mobile Service.&amp;nbsp;You also need to use an existing database instance, and choose the same region where your database was created.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/Azure2.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;When you move on, select your APPASalesMobile database we created and uploaded earlier, and log in with your user name and password. &lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/Azure3.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Your mobile service is then created, as shown below.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/Azure4.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;So, just to re-cap, we have uploaded our database we created and loaded with SQL Server Management Studio, and created our mobile service pointing to that database. &lt;/p&gt;
&lt;p&gt;Our next move is to get the two talking to each other, and this is where I struggled in the past.&amp;nbsp; The bit I was missing was even though I had created a database and pointed to it in mobile services, I still had no tables, and therefore no data. The only option appeared to be &amp;#39;Create a new table&amp;#39;, but I didn&amp;#39;t want to do that, did&amp;nbsp;I?&amp;nbsp;A bit (well a lot really) of searching took me to an &lt;a href="http://www.strathweb.com/2012/12/using-existing-database-with-azure-mobile-services/"&gt;article by FlipW&lt;/a&gt;&amp;nbsp;which put me on the right track.&lt;/p&gt;
&lt;p&gt;Step1 is in the SQL Azure database management, create a new schema and then link to the schema. In the query window, alter the schema to point the tables to the mobile service you created earlier.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/Azure5.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Click on new query, and then enter the following.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/Azure6a.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;This creates a Schema, and links it to our APPAMobileSales mobile service.&amp;nbsp;&amp;nbsp;Now go back to the mobile services portal&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/Azure7.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;and click on &amp;#39;Data&amp;#39;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/Azure8.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;At this point, you will, like me, be incredibly disappointed - we have just done all this work, and we still have no tables. This is where the &amp;#39;magic&amp;#39; happens, although it does seem strange at first. Click on &amp;#39;Add A Table&amp;#39; (trust me).&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/Azure9.png" alt="" /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Customers is the name of one of our tables - so click on the &amp;#39;tick&amp;#39;.&amp;nbsp;Azure whirrs away creating our table&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/Azure10.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;The whirring stops, and lo-and-behold the mist clears, and we have a customers table with 4 indexes and our 5000 records.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/Azure11.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Click on the Customers table, and we can see that all our data is there.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/Azure12.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;All out customers are there. Now repeat the Adding of tables, and add the rest of our tables.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/Azure13.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;All of our tables are now showing up in our mobile service, along with their record counts. Just to prove it, our Database even shows the same counts.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.WAMS/azure14.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;We now have a populated database for our sales demo!&lt;/p&gt;
&lt;p&gt;So, to recap on what we have done to get here. &lt;/p&gt;
&lt;p&gt;We created our database, as we would normally, using SQL Server Management Studio. We also made sure that every table had an identity column called &amp;#39;id&amp;#39;. We then populated our database with test data. The next step was to transfer this database to the cloud, using SQL Server Management Studio. &lt;/p&gt;
&lt;p&gt;After the transfer, we then created a new Azure mobile service, using the database we had just created. Then, in the Azure&amp;nbsp;Management Portal we then altered the schema to point at our newly created mobile service.&lt;/p&gt;
&lt;p&gt;Finally, back in Mobile Services, we added the tables, and as they were linked to our database, they automatically populated. &lt;/p&gt;
&lt;p&gt;Using this method, we can easily move our production databases to the cloud, and access them using WAMS.&lt;/p&gt;
&lt;p&gt;I think Microsoft have done a great job with WAMS, and they have made it so easy to access Azure databases from Windows Phone and Windows 8 apps. Kudos to &lt;a href="http://www.twitter.com/@scottgu"&gt;Scott Guthrie&lt;/a&gt; and his team for doing this.&lt;/p&gt;
&lt;p&gt;So all we have to do now is write our demo. &lt;/p&gt;
&lt;p&gt;After starting to write the demo, I realised a lot of the code is repetitive, so we have released APPA Wams to make your life easier. APPA Wams will generate code to define and maintain your Windows Azure Mobile Services database - more details in &lt;a href="http://mobileworld.appamundi.com/blogs/petevickers/archive/2013/03/23/free-utility-generating-code-for-windows-azure-mobile-services-appa-wams.aspx"&gt;my blog posting&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=513" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/windows+phone/default.aspx">windows phone</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/wpug/default.aspx">wpug</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/Windows+8+store/default.aspx">Windows 8 store</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/FindMySurface/default.aspx">FindMySurface</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/azure+mobile+services/default.aspx">azure mobile services</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/WAMS/default.aspx">WAMS</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/database/default.aspx">database</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/cloud/default.aspx">cloud</category></item><item><title>Working with .png Images</title><link>http://mobileworld.appamundi.com/blogs/peterfoot/archive/2013/02/28/working-with-png-images.aspx</link><pubDate>Wed, 27 Feb 2013 13:30:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:512</guid><dc:creator>Peter Foot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;In my previous post I discovered a limitation with using the Share... extension point in the Photos app. The good news is that from within your own app you can open .png files. For this you can use the PhotoChooserTask which has been available since Windows Phone 7. This presents the user with essentially the same UI as the Photos app and you can browse the Screeshots folder and select those .png files. The Completed event returns you a PhotoResult containing the raw stream and the filename which you can use to open the file. Because .png access is available this way it seems an odd decision that it is not supported from the Photos app itself. The moral of the story - provide multiple methods for your user to select files...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=512" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category></item><item><title>Photos Extra Share and .png</title><link>http://mobileworld.appamundi.com/blogs/peterfoot/archive/2013/02/26/photos-extra-share-and-png.aspx</link><pubDate>Mon, 25 Feb 2013 23:32:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:511</guid><dc:creator>Peter Foot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;On Windows Phone 8 it is possible to register your app with the Share... extension point on the photo viewer. This allows your app to receive an image file and process it whether that is sending it to an online service or manipulating it on the device. I found recently an odd quirk with the feature. I setup the extension following the MSDN documentation. I wanted to test on my captured screenshots on the device so I went into the screenshots folder, selected an image and tapped share. While a range of system extensions were shown my custom app was not. I later discovered that it works in other albums. The reason as it turns out is that all screenshots are captured as .png files and camera images are .jpg and for whatever reason photo extras are not enabled for .png files. I searched online and there was a forum discussion but it is still awaiting a formal confirmation from Microsoft that this is expected behaviour.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/wpdevelop/thread/095a3300-111e-46d8-968a-3af1036504b7"&gt;http://social.msdn.microsoft.com/Forums/en-US/wpdevelop/thread/095a3300-111e-46d8-968a-3af1036504b7&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=511" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category></item><item><title>Using media library pictures as as live tile backgrounds in Windows Phone 8</title><link>http://mobileworld.appamundi.com/blogs/petevickers/archive/2013/02/12/using-media-library-pictures-as-as-live-tile-backgrounds-in-windows-phone-8.aspx</link><pubDate>Tue, 12 Feb 2013 07:47:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:508</guid><dc:creator>Pete Vickers</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;As soon as I had submitted &lt;a href="http://www.windowsphone.com/s?appid=47672660-5b4b-4aa5-a5f7-d4243612ff29"&gt;APPA Photo Navigator&lt;/a&gt; to the market place for certification, I thought of something that I should have added to it. One of the things that users love about Windows Phone apps are live tiles, and I realised I could use the photographs as cyclic live tiles, and pick 9 at random every time the application exited. Provided the user had pinned us to the home screen, they would get a rolling display of their photographs. &lt;/p&gt;
&lt;p&gt;I soon realised that I wouldn&amp;#39;t be able to use the pictures directly from the album, I would have to copy them to isolated storage. So, I wrote a routine to pick 9 photographs at random, and then copy them to isolated storage - not a problem. I even remembered to clear out isolated storage each time, so I didn&amp;#39;t fill the users phone up with copies of photographs. Next step was to set the live tile to cycle round my 9 photographs, and use one as a base. I dug out some code I had already written in another app for setting up cyclic tiles. &lt;/p&gt;
&lt;p&gt;At this point, I remembered that the CycleImages and SmallBackgroundImage took a Uri as their input, and not a BitmapImage as I had been thinking they did. Not a problem - I can easily get a list of the files in isolated storage, and pass them with a &amp;#39;new Uri&amp;#39; statement. Compiled and deployed to my device, tested it, and I had a &amp;#39;dead&amp;#39; live tile&amp;nbsp;- just a plain coloured tile doing sweet FA. I used our &lt;a href="http://mobileworld.appamundi.com/blogs/petevickers/archive/2011/08/31/appa-mundi-release-free-gui-interface-for-the-isolated-storage-explorer-tool-gui-iset.aspx"&gt;GUI Iset&lt;/a&gt; tool (dogfooding at its best) to check that I did have 9 image files in isolated storage - and I did. &lt;/p&gt;
&lt;p&gt;Realising that it must have something to do with the path, I googled, and found some code to get an absolute path to files in isolated storage. I bolted this in, and it did indeed return me an absolute path, including a couple of GUIDs and even &amp;quot;c:\\&amp;quot;. This also compiled OK, but gave me a system exception, so back to Google. I also reached out on Twitter, and had a conversation with my friend &lt;a href="https://twitter.com/scottisafool"&gt;Scott Lovegrove&lt;/a&gt;&amp;nbsp;who suggested I should&amp;nbsp;put&amp;nbsp;the files in &amp;#39;Shared/ShellContent&amp;#39;. I tried this, but&amp;nbsp;still no dice, event though GUI Iset told&amp;nbsp;me the files were in that folder within&amp;nbsp;isolated storage. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;I then found an article which told me what I was trying to do was impossible, but Scott quite rightly pointed out the article I had found was talking about push notifications. At this point I decided to give up for&amp;nbsp;a while, comment out the code, and sulk. Ideally I would have had some beer, as it was Saturday evening, but I am currently on a &amp;#39;dryatholon&amp;#39; and not drinking.&lt;/p&gt;
&lt;p&gt;The next morning, the always helpful &lt;a href="https://twitter.com/@andy_wigley"&gt;Andy Wigley&lt;/a&gt;&amp;nbsp;tweeted about this, letting me know the path should actually be &amp;#39;isostore:/Shared/ShellContent&amp;#39;. This was followed by a &amp;#39;doh&amp;#39; tweet from Scott who had&amp;nbsp;forgotten he had done this on his code. So armed with this information, I uncommented the code from the previous evening, added &amp;#39;isostore:&amp;#39; to my path, and tried again. &lt;/p&gt;
&lt;p&gt;It worked!&lt;/p&gt;
&lt;pre style="font-size:13px;font-family:Consolas;background:white;color:black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;&amp;gt;&amp;nbsp;list&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;&amp;gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&amp;gt;&amp;nbsp;fileList&amp;nbsp;=&amp;nbsp;GetAllFiles();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;if&lt;/span&gt;&amp;nbsp;(fileList.Count&amp;nbsp;!=&amp;nbsp;0)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;for&lt;/span&gt;&amp;nbsp;(&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&amp;nbsp;i&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;i&amp;nbsp;&amp;lt;&amp;nbsp;fileList.Count;&amp;nbsp;i++)
 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.Add(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;isostore:/Shared/ShellContent/&amp;quot;&lt;/span&gt;&amp;nbsp;+&amp;nbsp;fileList[i],&amp;nbsp;&lt;span style="color:#2b91af;"&gt;UriKind&lt;/span&gt;.Absolute));
 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;CycleTileData&lt;/span&gt;&amp;nbsp;tileData&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;CycleTileData&lt;/span&gt;()
&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Title&amp;nbsp;=&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;quot;APPA&amp;nbsp;Photos&amp;quot;&lt;/span&gt;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Count&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SmallBackgroundImage&amp;nbsp;=
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;isostore:/Shared/ShellContent/&amp;quot;&lt;/span&gt;&amp;nbsp;+&amp;nbsp;fileList[0],&amp;nbsp;&lt;span style="color:#2b91af;"&gt;UriKind&lt;/span&gt;.RelativeOrAbsolute),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CycleImages&amp;nbsp;=&amp;nbsp;list
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};
 
 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;   &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt;&amp;nbsp;mainTile&amp;nbsp;=&amp;nbsp;&lt;span style="color:#2b91af;"&gt;ShellTile&lt;/span&gt;.ActiveTiles.FirstOrDefault();
  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;   &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;&amp;nbsp;!=&amp;nbsp;mainTile)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mainTile.Update(tileData);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  } &lt;br /&gt;&lt;/pre&gt;
&lt;pre style="font-size:13px;font-family:Consolas;background:white;color:black;"&gt;     }&lt;/pre&gt;
&lt;p&gt;Thanks to Scott and Andy for their help in sorting this out - it is things like this what make the Windows Phone development community such a great place to be.&lt;/p&gt;
&lt;p&gt;If you want to see how this looks in&amp;nbsp;the finished version, please download &lt;a href="http://www.windowsphone.com/s?appid=47672660-5b4b-4aa5-a5f7-d4243612ff29"&gt;APPA Photo Explorer&lt;/a&gt; - it is free - and if you like it, please give it some stars - Thanks.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=508" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/isolated+storage/default.aspx">isolated storage</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/windows+phone/default.aspx">windows phone</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/development/default.aspx">development</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/cycletiledata/default.aspx">cycletiledata</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/live+tile/default.aspx">live tile</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/Shared_2F00_ShellContent/default.aspx">Shared/ShellContent</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/isostore/default.aspx">isostore</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/media+library/default.aspx">media library</category></item><item><title>Pushpins with Images and Nokia Maps on Windows Phone 8</title><link>http://mobileworld.appamundi.com/blogs/petevickers/archive/2013/02/10/push-pins-with-images-with-nokia-maps-on-windows-phone-8.aspx</link><pubDate>Sun, 10 Feb 2013 12:16:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:506</guid><dc:creator>Pete Vickers</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I have just written a new application for Windows Phone 8, called &lt;a href="http://www.windowsphone.com/s?appid=47672660-5b4b-4aa5-a5f7-d4243612ff29"&gt;APPA Photo Navigator&lt;/a&gt;. The app allows you to browse your photo albums, select a photograph and get EXIF info about the photograph, and position one, many or all of your photographs on the map. There are a couple of similar apps out there (surprise, surprise), but none appeared to be tailored for Windows Phone 8. &lt;/p&gt;
&lt;p&gt;My first hurdle was the EXIF information, but &lt;a href="http://igrali.com/2011/11/01/reading-and-displaying-exif-photo-data-on-windows-phone/"&gt;this article&lt;/a&gt; from &lt;a href="http://www.twitter.com/@igrali"&gt;Igor Ralić&lt;/a&gt; and &lt;a href="http://timheuer.com/blog/archive/2010/09/23/working-with-pictures-in-camera-tasks-in-windows-phone-7-orientation-rotation.aspx"&gt;this one&lt;/a&gt; from &lt;a href="http://twitter.com/@timheuer"&gt;Tim Heuer&lt;/a&gt; came to my rescue. So, we could now browse and choose albums, browse and choose photos, and display EXIF information about the.&lt;/p&gt;
&lt;p&gt;Next step - add mapping, plot the images on the map, and allow route planning. This wasn&amp;#39;t seen as a problem, as &lt;a href="http://www.windowsphone.com/s?appid=1e7c1864-5c4d-4aa6-9fae-bda17e5f347a"&gt;APPA Traffic&lt;/a&gt; uses Nokia Maps for displaying traffic incidents, and &lt;a href="http://www.windowsphone.com/s?appid=9c1fd7c3-5907-4f1b-9fd5-f9fe41db6295"&gt;APPA FSA Food Hygiene&lt;/a&gt; plots locations and does route planning.&lt;/p&gt;
&lt;p&gt;However, both these apps just use polygons as markers. Anyone who had used mapping in WP7 knows that you can use custom pushpins and plot them on the map. The excellent &lt;a href="http://phone.codeplex.com/"&gt;Windows Phone Toolkit&lt;/a&gt;&amp;nbsp;supports map extensions, but I wasn&amp;#39;t able to get it to display images. I did lots of searching, all types of experimentation, but couldn&amp;#39;t get the images to display. From one of my twitter colleagues came a suggestion of using&amp;nbsp;a user control, and I decided to try this out. &lt;/p&gt;
&lt;p&gt;I added a user control to the project, and then dropped into Blend to design the control. I thought of an image with an arrow pointing, so looking in Blend, the callout looked just the part. So first of all I added a callout:-&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.PushPin/UserControl1.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Then I added an image in the callout rectangle:-&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.PushPin/UserControl2.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;I saved this and went back to my project. The resulting XAML is:-&lt;/p&gt;
&lt;p&gt;
&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;LayoutRoot&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;Margin&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;0,0,0,0&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;128&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;144&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;edc&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Callout&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;AnchorPoint&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;0,1.3&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;CalloutStyle&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;RoundedRectangle&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;14.666999816894531&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HorizontalAlignment&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;Left&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;100&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;Margin&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;0,10,0,0&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;Stroke&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;Blue&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;Top&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Width&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;128&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;RenderTransformOrigin&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;0.508,0.05&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;Fill&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;#FF2765A0&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;96&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;118&amp;quot;&lt;/span&gt;&amp;nbsp;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;imgPhoto&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;RenderTransformOrigin&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;0.516,0.146&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;Top&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;Margin&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;0,6&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;edc&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Callout&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;

&lt;/p&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;p&gt;I kept the ratio for the photograph the same, so it wouldn&amp;#39;t look odd. So now the control was done, I turned my attention to the code. Most of the code was already done, including several attempts to get the picture to display. So it was just a matter of setting a new instance of our NokiaPushPin, setting the image source, geocode and adding it to the mapping layer.&lt;/p&gt;
&lt;p&gt;
&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MapOverlay&lt;/span&gt;&amp;nbsp;overlaypp&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;MapOverlay&lt;/span&gt;(); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;NokiaPushPin&lt;/span&gt;&amp;nbsp;npp&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;NokiaPushPin&lt;/span&gt;(); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; npp.imgPhoto.Source&amp;nbsp;=&amp;nbsp;img; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; npp.Tag&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;GeoCoordinate&lt;/span&gt;(coordinate.Latitude,&amp;nbsp;coordinate.Longitude); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; overlaypp.GeoCoordinate&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;GeoCoordinate&lt;/span&gt;(coordinate.Latitude,&amp;nbsp;coordinate.Longitude); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; overlaypp.Content&amp;nbsp;=&amp;nbsp;npp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; npp.DoubleTap&amp;nbsp;+=&amp;nbsp;npp_DoubleTap; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; overlaypp.PositionOrigin&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;Point(0,&amp;nbsp;.3); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mapLayer.Add(overlaypp);
&lt;/p&gt;
&lt;p&gt;

&lt;/p&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;/p&gt;
&lt;p&gt;

&lt;/p&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The &amp;#39;img&amp;#39; above is a BitMapImage passed to the routine. I decided to use a double-tap on the pushpin so that it didn&amp;#39;t get confused using pinch and zoom, and to use the Tag property to hold the co-ordinates so I could retrieve them in the double-tap procedure.&lt;/p&gt;
&lt;pre style="font-size:13px;font-family:Consolas;background:white;color:black;"&gt;&lt;span style="color:#0000ff;"&gt;  void&lt;/span&gt;&amp;nbsp;npp_DoubleTap(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;&lt;span style="color:#2b91af;"&gt;GestureEventArgs&lt;/span&gt;&amp;nbsp;e)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;try&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;NokiaPushPin&lt;/span&gt;&amp;nbsp;npp&amp;nbsp;=&amp;nbsp;(&lt;span style="color:#2b91af;"&gt;NokiaPushPin&lt;/span&gt;)sender;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;GeoCoordinate&lt;/span&gt;&amp;nbsp;geoCoordinate&amp;nbsp;=&amp;nbsp;(&lt;span style="color:#2b91af;"&gt;GeoCoordinate&lt;/span&gt;)npp.Tag;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;Geolocator&lt;/span&gt;&amp;nbsp;geolocator&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;Geolocator&lt;/span&gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MyDestinationCoordinate&amp;nbsp;=&amp;nbsp;(&lt;span style="color:#2b91af;"&gt;GeoCoordinate&lt;/span&gt;)&amp;nbsp;npp.Tag;&lt;br /&gt;&lt;br /&gt;            .........&lt;/pre&gt;
&lt;p&gt;The result of plotting the above is shown below. Because &amp;#39;landmarks&amp;#39; are currently set to &amp;#39;on&amp;#39;, the colosseum shows up nicely on the map. The picture was taken from a bar facing the colosseum :)&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img height="1254" width="702" src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.PushPin/SS720_5F00_5.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;There may be other ways of skinning this particular cat, but&amp;nbsp;I think this is a neat customisable solution.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=506" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/user+control/default.aspx">user control</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/Windows+Phone+8/default.aspx">Windows Phone 8</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/image/default.aspx">image</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/bitmapimage/default.aspx">bitmapimage</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/pushpin/default.aspx">pushpin</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/plot/default.aspx">plot</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/nokia+maps/default.aspx">nokia maps</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/push+pin/default.aspx">push pin</category></item><item><title>Integrating Nokia Music with your app</title><link>http://mobileworld.appamundi.com/blogs/petevickers/archive/2013/02/04/integrating-nokia-music-with-your-app.aspx</link><pubDate>Mon, 04 Feb 2013 14:14:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:504</guid><dc:creator>Pete Vickers</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;One of the first Windows Phone apps I wrote was &lt;a href="http://www.windowsphone.com/en-gb/store/app/popquiz/21f804db-7cf8-df11-9264-00237de2db9e"&gt;Pop Quiz&lt;/a&gt;. The app contains the top 40 from the start of the charts in 1952 and goes up to the end of 2010.&lt;br /&gt;You can answer questions on any decade, and get random questions based on &amp;#39;Who had a number x hit with yyyy in zzzz&amp;#39;, &amp;#39;In which year was xxxx a number y hit for zzzzz&amp;#39; and &amp;#39;Which songer was a number x hit for yyyy in zzzz&amp;#39;. &lt;/p&gt;
&lt;p&gt;&lt;br /&gt;There was also a link to &amp;#39;Zune&amp;#39; so that when you got an answer, you could browse the artist and music on Zune.&lt;/p&gt;
&lt;p&gt;As we all know, Zune has fade from the scene, so that bit of the app was redundant. When I &lt;a href="http://apps.microsoft.com/windows/app/pop-quiz/71e5882b-2473-425f-9633-c38346d96c24"&gt;ported it to run on Windows 8&lt;/a&gt;, I added some enhancements, like &amp;#39;Beat The Intro&amp;#39; from your music library, so, like painting the Forth Bridge, I decided to port that back to the Windows Phone Version.&lt;/p&gt;
&lt;p&gt;This was done fairly easily, and it was back in the store, but still with Zune non-functioning. &lt;/p&gt;
&lt;p&gt;A couple of weeks ago, I was asked to do a presentation on Windows Phone 8 at &lt;a href="http://www.momomcr.org/events/"&gt;MoMoMcr&lt;/a&gt;, and chair the evening. One of the presenters was my good friend &lt;a href="https://twitter.com/TheRealRiaz"&gt;Riaz Ahmed&lt;/a&gt;, the developer outreach manager for Nokia. Riaz gave an excellent presentation on &lt;a href="http://www.momomcr.org/wp-content/uploads/2013/01/nokia.pdf"&gt;Nokia Apps and Developer API&amp;#39;s&lt;/a&gt;, and talked about the Nokia Music API. For those who haven&amp;#39;t used it on the Lumia, it is a great app with hundreds of mixes and millions of tracks&amp;nbsp;on there. &lt;/p&gt;
&lt;p&gt;Windows Phone 8 introduced the idea of App-to-App API&amp;#39;s, and Nokia Music can take advantage of that, but obviously Windows Phone 7.x can&amp;#39;t. There is however a web interface for Windows Phone 7.x and non-Lumia phones. Even better, there is a NuGet packaged called &lt;a href="https://nuget.org/packages/NokiaMusic"&gt;NokiaMusic&lt;/a&gt; which takes care of all this for you, making it easier to get up and running quickly. &lt;/p&gt;
&lt;p&gt;&lt;a href="https://twitter.com/sr_gb"&gt;Steve Robbins&lt;/a&gt;, Chief Architect at Nokia Music has a great &lt;a href="http://www.youtube.com/watch?v=FqOyND1A2Ow"&gt;webinar&lt;/a&gt; on using the API, so I settled down to watch it. It explained how to use it, and even I was able to understand it, so I decided to add it to Pop Quiz. I added the reference to my project using &lt;a href="http://nuget.codeplex.com/"&gt;NuGet&lt;/a&gt;&amp;nbsp;and got down to cutting some code. &lt;/p&gt;
&lt;p&gt;I had already decided how to implement. On my original version, I had an application bar button for Zune, so I had decided to rearrange things and dedicate&amp;nbsp;3 application bar buttons to Nokia Music. The buttons are originally disabled, and only enabled when a question has been answered, right or wrong. &lt;/p&gt;
&lt;p&gt;There are several &amp;#39;tasks&amp;#39; in the Nokia Music API available to developers, but I decided I was only going to use 3. The options are (my choices in bold):-&lt;br /&gt;LaunchTask&lt;br /&gt;&lt;strong&gt;MusicSearchTask&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;PlayMixTask&lt;br /&gt;ShowArtistTask&lt;/strong&gt;&lt;br /&gt;ShowGigsTask&lt;br /&gt;ShowMixesTask&lt;br /&gt;ShowProductTask&lt;/p&gt;
&lt;p&gt;The code has been written to resemble the built in Launchers and Choosers, and as such, should be familiar to most developers. In PopQuiz, I obviously have an artist for every track, so when the answer has been chosen, I enable the application bar buttons. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.NokiaMusic/ShowAnswer.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;As I said earlier, I decided on the options I though were the best fit. So in this case we have an artist of &amp;#39;The Beach Boys&amp;#39;. To show the artist, the code behind the button is:-&lt;/p&gt;
&lt;p&gt;
&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;&amp;nbsp;ShowArtist_Click(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;&lt;span style="color:#2b91af;"&gt;EventArgs&lt;/span&gt;&amp;nbsp;e) &lt;br /&gt;{ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ShowArtistTask&lt;/span&gt;&amp;nbsp;task&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;ShowArtistTask&lt;/span&gt;(); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; task.ArtistName&amp;nbsp;=&amp;nbsp;webartist;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; task.Show(); &lt;/p&gt;
&lt;p&gt;}
&lt;/p&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;/p&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;The API works out for you what to do from this point, depending on your OS and make of phone. For a Lumia running Windows Phone 8, then the App-To-App API&amp;#39;s come into play. &lt;br /&gt;For a Windows Phone 7.x, or non-Lumia phone, then the web interface is used. The code above generates:-&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.NokiaMusic/ShowArtist.png" alt="" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.NokiaMusic/ShowArtistWeb.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Similarly, the code for Music Search and Play Mix are:-&lt;/p&gt;
&lt;p&gt;
&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;&amp;nbsp;Playmix_OnClick(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;&lt;span style="color:#2b91af;"&gt;EventArgs&lt;/span&gt;&amp;nbsp;e) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;{ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;PlayMixTask&lt;/span&gt;&amp;nbsp;task&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;PlayMixTask&lt;/span&gt;(); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;task.ArtistName&amp;nbsp;=&amp;nbsp;webartist;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;task.Show(); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;} &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;&amp;nbsp;Musicsearch_OnClick(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;&lt;span style="color:#2b91af;"&gt;EventArgs&lt;/span&gt;&amp;nbsp;e) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;MusicSearchTask&lt;/span&gt;&amp;nbsp;task&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;MusicSearchTask&lt;/span&gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;task.SearchTerms&amp;nbsp;=&amp;nbsp;webartist;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;task.Show();&lt;br /&gt;}
&lt;/p&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;p&gt;and produce the screens:-&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.NokiaMusic/MusicSearch.png" alt="" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.NokiaMusic/PlayMix1.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;There is far more scope in the Nokia Music API&amp;#39;s than I have covered here. You can search for gigs in your local area, get charts, new release and more. There are more details &lt;a href="http://api.ent.nokia.com/"&gt;here&lt;/a&gt;. This is all FREE too. &lt;/p&gt;
&lt;p&gt;With very little effort, I feel I have added value to PopQuiz, complementing the app perfectly. Thanks to Steve Robbins from Nokia, who gave me invaluable help in the integration (and fixed the bug I found very quickly :)).&lt;/p&gt;
&lt;p&gt;Judge for yourself, PopQuiz is available &lt;a href="http://www.windowsphone.com/en-gb/store/app/popquiz/21f804db-7cf8-df11-9264-00237de2db9e"&gt;here&lt;/a&gt;, ad-supported, and only 99p to remove the ads. 50,000 + questions - bargain!&lt;/p&gt;
&lt;p&gt;Follow me on &lt;a href="https://twitter.com/petevick"&gt;Twitter&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=504" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/apps/default.aspx">apps</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/windows+phone/default.aspx">windows phone</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/Windows+Phone+8/default.aspx">Windows Phone 8</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/lumia/default.aspx">lumia</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/pop+quiz/default.aspx">pop quiz</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/nokia+music/default.aspx">nokia music</category></item><item><title>Converting Windows Phone 7 convertors to Windows 8 Convertors</title><link>http://mobileworld.appamundi.com/blogs/petevickers/archive/2013/01/20/converting-windows-phone-7-convertors-to-windows-8-convertors.aspx</link><pubDate>Sun, 20 Jan 2013 18:55:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:496</guid><dc:creator>Pete Vickers</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;I recently ported our Windows Phone application &lt;a href="http://www.windowsphone.com/en-gb/store/app/appa-flightinfo/de3c1446-4c8c-e011-986b-78e7d1fa76f8"&gt;FlightInfo&lt;/a&gt;&amp;nbsp;to a Windows 8 &lt;a href="http://apps.microsoft.com/windows/en-GB/app/appa-flight-info/fa618f8d-2d6b-404d-86f7-6774ea19645a"&gt;version&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This was a good learning exercise for learning how to port Windows Phone code to Windows 8 Store code. Much of it went smoothly, but I did have problems, converting convertors. Convertors in Windows Phone are great, and FlightInfo uses them to colour code your flight status, giving you a much easier &amp;#39;glance and go&amp;#39; experience. &lt;/p&gt;
&lt;p&gt;I converted quite a lot of the code, and then came to the convertors. I copied the relevant XAML to my W8 project, and then added the C# code. I was expecting it to work straight away, but I wasn&amp;#39;t really surprised when it didn&amp;#39;t. So, I did some searching, and found out the differences. What I discovered may help someone else. &lt;/p&gt;
&lt;p&gt;The XAML for the &lt;strong&gt;Windows Phone&lt;/strong&gt; code was...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:coding4fun=&amp;quot;clr-namespace:Coding4Fun.Phone.Controls;assembly=Coding4Fun.Phone.Controls&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;xmlns:APPAFlightInfo_Converters=&amp;quot;clr-namespace:APPA_FlightInfo.Converters&amp;quot;&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:local=&amp;quot;clr-namespace:APPA_FlightInfo&amp;quot; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Windows 8&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;xmlns:mc=&amp;quot;&lt;a href="http://schemas.openxmlformats.org/markup-compatibility/2006"&gt;http://schemas.openxmlformats.org/markup-compatibility/2006&lt;/a&gt;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;xmlns:converters=&amp;quot;using:APPA_Flight_Info_W8.Converters&amp;quot;&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x:Class=&amp;quot;APPA_Flight_Info_W8.MainPage&amp;quot;&lt;/p&gt;
&lt;p&gt;and then &lt;strong&gt;Windows Phone&lt;/strong&gt; declared in the PhoneApplicationPage resources...&lt;/p&gt;
&lt;p&gt;&amp;lt;phone:PhoneApplicationPage.Resources&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;&amp;lt;APPAFlightInfo_Converters:FlightStatusToBrushConverter x:Key=&amp;quot;BrushConverter&amp;quot;/&amp;gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Similarly for &lt;strong&gt;Windows&amp;nbsp;8&lt;/strong&gt;...&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;lt;Page.Resources&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;&amp;lt;converters:FlightStatusToBrushConverter x:Key=&amp;quot;BrushConverter&amp;quot;/&amp;gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;and then for &lt;strong&gt;Windows Phone&lt;/strong&gt;&amp;nbsp;the convertor is called on a bound textblock...&lt;/p&gt;
&lt;p&gt;&amp;lt;TextBlock Height=&amp;quot;70&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Margin=&amp;quot;12,467,0,0&amp;quot; Name=&amp;quot;txtStatus&amp;quot; Text=&amp;quot;{Binding FlightStatus}&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; Width=&amp;quot;434&amp;quot; FontSize=&amp;quot;26&amp;quot; TextWrapping=&amp;quot;Wrap&amp;quot; FontWeight=&amp;quot;Bold&amp;quot; &lt;strong&gt;Foreground=&amp;quot;{Binding FlightStatus, Converter={StaticResource BrushConverter}}&lt;/strong&gt;&amp;quot;&amp;nbsp; /&amp;gt;&lt;/p&gt;
&lt;p&gt;Similarly, for &lt;strong&gt;Windows 8&lt;/strong&gt;, we are bound to a textblock&lt;/p&gt;
&lt;p&gt;&amp;lt;TextBlock Text=&amp;quot;{Binding FlightStatus}&amp;quot; TextWrapping=&amp;quot;Wrap&amp;quot; Margin=&amp;quot;12,0,0,0&amp;quot; FontSize=&amp;quot;32&amp;quot; FontWeight=&amp;quot;Bold&amp;quot; x:Name=&amp;quot;tbArrStatus&amp;quot; &lt;strong&gt;Foreground=&amp;quot;{Binding FlightStatus, Converter={StaticResource BrushConverter}}&lt;/strong&gt;&amp;quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Finally, the C# class for &lt;strong&gt;Windows Phone&lt;/strong&gt; was...&lt;/p&gt;
&lt;p&gt;namespace APPA_FlightInfo.Converters&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class FlightStatusToBrushConverter : IValueConverter&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public object &lt;strong&gt;Convert(object status, Type targetType, object parameter, System.Globalization.CultureInfo culture)&lt;br /&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; modMain.tilecolour = 0;&lt;/p&gt;
&lt;p&gt;And for &lt;strong&gt;Windows 8&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;namespace APPA_Flight_Info_W8.Converters&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class FlightStatusToBrushConverter : IValueConverter&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public object &lt;strong&gt;Convert(object status, Type targetType, object parameter, string language)&lt;br /&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p&gt;Notice that the last parameter for Windows Phone is a &amp;#39;culture&amp;#39;, whereas for Windows 8 we just declare a string for language.&lt;/p&gt;
&lt;p&gt;For the C# code, we could use an #if on the declaration to share code. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#if WINDOWS_PHONE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public object Convert(object status, Type targetType, object parameter, System.Globalization.CultureInfo culture)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public object Convert(object status, Type targetType, object parameter, string language)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endif&lt;/p&gt;
&lt;p&gt;So, the main differences are in the parameter type in the .cs file, and the declaration of the namespace in the XAML form.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=496" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/windows+phone/default.aspx">windows phone</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/Windows+8+store/default.aspx">Windows 8 store</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/Windows+Phone+8/default.aspx">Windows Phone 8</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/convertors/default.aspx">convertors</category></item><item><title>32feet.NET for Windows Phone</title><link>http://mobileworld.appamundi.com/blogs/peterfoot/archive/2013/01/16/32feet-net-for-windows-phone.aspx</link><pubDate>Tue, 15 Jan 2013 20:34:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:495</guid><dc:creator>Peter Foot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;With the recent announcement of Windows Embedded Handheld 8 it seems fitting to discuss something related to industrial and line-of-business applications which you can develop now on the Windows Phone platform.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve released the first drop of 32feet.NET for Windows Phone 8 to &lt;a target="_blank" href="http://32feet.codeplex.com/"&gt;our CodePlex site&lt;/a&gt; and &lt;a target="_blank" href="http://nuget.org/packages/32feet.NET.Phone"&gt;NuGet&lt;/a&gt;. Because the programming model on Windows Phone (based on Windows Runtime StreamSockets) this is a separate package and doesn&amp;#39;t follow the programming model of the main 32feet.NET release. Windows Phone 8 supports Bluetooth programming out-of-the-box it is not straight-forward as it is build around the Windows Runtime Peer networking APIs but is different to the Windows 8 implementation. The aim of the 32feet library for Windows Phone is to simplify common tasks. This initial release adds the following features:-&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Strongly typed extension methods for ConnectAsync which accept service Guids or numerical port numbers&lt;/li&gt;
&lt;li&gt;BluetoothDevicePicker which offers an easy way for a user to select a device. Equivalent to the SelectBluetoothDeviceDialog in the core 32feet library.&lt;/li&gt;
&lt;li&gt;Common Bluetooth service Guids&lt;/li&gt;
&lt;li&gt;Bluetooth Barcode scanner sample. This sample app connects to a Motorola CS3070 scanner and allows input of Barcodes to the device screen. It should also work with other Bluetooth serial based scanners.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is just a first release and we will be continuing to develop the library as well as add further localisation and samples. For example to demonstrate connecting to applications running on the desktop (Sorry not Windows Store apps currently). Your feedback is valuable so please visit the &lt;a target="_blank" href="http://32feet.codeplex.com/"&gt;CodePlex project site&lt;/a&gt; to provide feedback.&lt;/p&gt;
&lt;p&gt;There is a NuGet package available for the Windows Phone flavour of 32feet.NET to allow you to easily add it to your projects:-&lt;/p&gt;
&lt;p&gt;&lt;a href="http://nuget.org/packages/32feet.NET.Phone"&gt;http://nuget.org/packages/32feet.NET.Phone&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=495" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category><category domain="http://mobileworld.appamundi.com/blogs/peterfoot/archive/tags/Bluetooth/default.aspx">Bluetooth</category></item><item><title>Using the adcontrol from code in Windows Phone 8</title><link>http://mobileworld.appamundi.com/blogs/petevickers/archive/2012/12/05/using-the-adcontrol-from-code-in-windows-phone-8.aspx</link><pubDate>Wed, 05 Dec 2012 19:26:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:491</guid><dc:creator>Pete Vickers</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;I have been writing a new app for Windows Phone 8, taking advantage of the new Nokia maps built into the platform. All was going swimmingly, maps work well and quickly, problem with AR which I am working on, but everything seemed OK in testing. &lt;/p&gt;
&lt;p&gt;I decided I would use the adcontrol, and offer a low-price purchase option if people want to get rid of the ads (always assuming someone downloads it). I used the adcontrol when I ported &lt;a href="http://www.windowsphone.com/s?appid=21f804db-7cf8-df11-9264-00237de2db9e"&gt;Pop Quiz&lt;/a&gt;&amp;nbsp;and implemented it in code - so:-&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;adControlFSA = new AdControl(&amp;quot;test_client&amp;quot;,&amp;nbsp;&amp;nbsp; // ApplicationID&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Image480_80&amp;quot;,&amp;nbsp;&amp;nbsp; // AdUnitID&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; true);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // isAutoRefreshEnabled&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp; if (adControlFSA != null)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; adControlFSA.Width = 480;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; adControlFSA.Height = 80;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; adControlFSA.VerticalAlignment = VerticalAlignment.Bottom;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; adControlFSA.HorizontalAlignment = HorizontalAlignment.Center;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Grid grid = (Grid)this.LayoutRoot.Children[1];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; grid.Children.Add(adControlFSA);&lt;br /&gt;&amp;nbsp;}&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I plugged this in, ran the app, no errors, no adcontrol. Checked the visibility, the number of controls, the parent control, everything I could think of - still no dice. I then split the code out, generated a new project, targeting Windows Phone 8, ran the project - still no control!&lt;/p&gt;
&lt;p&gt;Started&amp;nbsp;a new project in VS2010 this time targeting 7.1, ran the project, and there was the ad control - WTF!!!&lt;/p&gt;
&lt;p&gt;Chatted about it to colleagues, and twitterati, and still no joy. Reached out to Microsoft, and got the answer back - capabilities! The minimum capabilities you need are:-&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02/adcontrol.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Went back to my project, ran it, and the adcontrol appeared. &lt;/p&gt;
&lt;p&gt;So if you hit the same problems - look at your capabilities.&lt;/p&gt;
&lt;p&gt;Thanks Andy and Microsoft&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=491" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/Windows+Phone+development/default.aspx">Windows Phone development</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/Windows+Phone+8/default.aspx">Windows Phone 8</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/sdk/default.aspx">sdk</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/adcontrol/default.aspx">adcontrol</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/adverts/default.aspx">adverts</category></item><item><title>Persist Bluetooth Addresses on Windows Phone 8</title><link>http://mobileworld.appamundi.com/blogs/peterfoot/archive/2012/12/05/persist-bluetooth-addresses-on-windows-phone-8.aspx</link><pubDate>Tue, 04 Dec 2012 17:05:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:490</guid><dc:creator>Peter Foot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;The Bluetooth API on Windows Phone 8 is based around some customisations to the Proximity APIs which are part of the Windows API introduced with Windows 8. When you &amp;quot;discover&amp;quot; devices you can retrieve a collection of device identifiers for paired devices. The first time you perform a task you will want to use this mechanism to select the appropriate device. However you may want your app to remember a specific device and try to connect again on subsequent attempts. In the old .NET world with &lt;a target="_blank" href="http://mobileworld.appamundi.com/controlpanel/blogs/posteditor.aspx/32feet.codeplex.com"&gt;32feet.NET&lt;/a&gt; we have a constructor for BluetoothAddress which allows you to supply the address in a variety of string or numeric forms. In the Windows API the Windows.Networking.HostName type is used to represent a host name whether it is for a Bluetooth device or an IP address. Normally the read-only Type property will indicate the type of the host.&lt;/p&gt;
&lt;p&gt;In order to store a Bluetooth address for later use you should save the RawName property which for Bluetooth devices is in the form &amp;quot;(11:22:33:44:55:66)&amp;quot;. The dotted hex notation is fairly common but notice the address is wrapped in brackets. Now to restore this address in a HostName instance you can later use to open a socket you can use:-&lt;/p&gt;
&lt;p&gt;HostName storedHostName = new HostName(storedRawName);&lt;/p&gt;
&lt;p&gt;You&amp;#39;ll notice that this sets the host name and correctly sets the Type property&amp;nbsp;to Bluetooth.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=490" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category><category domain="http://mobileworld.appamundi.com/blogs/peterfoot/archive/tags/Bluetooth/default.aspx">Bluetooth</category></item><item><title>Nokia Lumia 920 and O2 APN settings for Internet and MMS</title><link>http://mobileworld.appamundi.com/blogs/petevickers/archive/2012/11/16/nokia-lumia-930-and-o2-settings.aspx</link><pubDate>Fri, 16 Nov 2012 18:43:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:488</guid><dc:creator>Pete Vickers</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I have been lucky enough get a SIM-free unlocked&amp;nbsp;Nokia Lumia 920, so I set everything up as best I could, and then put the SIM card in the phone. It picked up my O2 signal, and then I got a text message saying they couldn&amp;#39;t set up my phone automatically, and to ring O2 for assistance. &lt;/p&gt;
&lt;p&gt;I turned off Wi-Fi, and went into IE, but was unable to access the internet. &lt;/p&gt;
&lt;p&gt;No problems, I can download &amp;#39;Network Setup&amp;#39; and let that sort it out. &lt;/p&gt;
&lt;p&gt;Problems - &amp;#39;Network Setup&amp;#39; isn&amp;#39;t in the Nokia Collection.&lt;/p&gt;
&lt;p&gt;No problems, just do Settings&amp;gt;mobile network&amp;gt;add apn.&lt;/p&gt;
&lt;p&gt;Problems - this doesn&amp;#39;t exist in Windows Phone 8.&lt;/p&gt;
&lt;p&gt;No problems - text ACTIVE to 2020 on O2, to get your automatic settings.&lt;/p&gt;
&lt;p&gt;Problems - not supported.&lt;/p&gt;
&lt;p&gt;So what to do next? Take the advice of the 2 text messages, and call O2? I have been down this route in the past.&amp;nbsp;O2 don&amp;#39;t currently sell the 920, and in the past, when I have had a phone they don&amp;#39;t sell, they are pretty unable/unwilling to help, or tell you that &amp;#39;all the settings are on the SIM card, and you can&amp;#39;t set them manually&amp;#39;. &lt;/p&gt;
&lt;p&gt;Time to look into the settings further - and there are lots of new items in the settings, including one that looked interesting - &lt;strong&gt;&amp;#39;access point&amp;#39;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02/O2Blog1a.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Tried tap and hold to edit the O2 - UK Prepaid entry, but it wasn&amp;#39;t an option, so decided to add a new one. It prompted for a new name, and then the APN settings. I completed them as follows:-&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02/O2Blog1b.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;The password in the above screen shot is &lt;strong&gt;password&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Then on to the MMS settings:-&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02/O2Blog1c.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;The password in the above screen shot is &lt;strong&gt;o2wap&lt;/strong&gt; &lt;br /&gt;Save the settings, and then set the new entry of &amp;#39;O2&amp;#39; to active. Go back and try IE again, and lo-and-behold I see a web page! I then tested out sending an MMS to Diane&amp;#39;s phone, and I heard the tell-tale &amp;#39;beep&amp;#39; from the kitchen - success.&lt;/p&gt;
&lt;p&gt;Obviously, I have used the O2 settings, but the same method should work on a SIM-free phone. &lt;/p&gt;
&lt;p&gt;I got the above screen shots from the device, using the new &amp;#39;screen shot&amp;#39; function from Windows Phone 8 - hold the windows key down, and then briefly press the power button. The screen-shot then gets saved in a \Pictures\Screenshots folder on your phone - great addition.&lt;/p&gt;
&lt;p&gt;I will blog more about the 920 when I have used it for a few more days, but my initial impression is &lt;strong&gt;WOW - &lt;/strong&gt;this is one &lt;strong&gt;AMAZING&lt;/strong&gt; phone!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=488" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/windows+phone/default.aspx">windows phone</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/nokia/default.aspx">nokia</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/o2/default.aspx">o2</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/Lumia+920/default.aspx">Lumia 920</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/settings/default.aspx">settings</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/APN/default.aspx">APN</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/mms/default.aspx">mms</category></item><item><title>WPUG North West - Manchester meeting - 7th November 2012</title><link>http://mobileworld.appamundi.com/blogs/petevickers/archive/2012/11/12/wpug-north-west-manchester-meeting-7th-november-2012.aspx</link><pubDate>Mon, 12 Nov 2012 13:14:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:487</guid><dc:creator>Pete Vickers</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;The latest meeting of the WPUG North West happened on Wednesday 7th November at &lt;a href="http://madlab.org.uk/"&gt;MadLab&lt;/a&gt; in Manchester.&lt;/p&gt;
&lt;p&gt;The meeting was well attended, our best attendance so far, thanks in no small part by the effort put in by Nokia, and particularly Richard Pidgeon.&lt;/p&gt;
&lt;p&gt;I opened the meeting with a presentation on &amp;#39;What&amp;#39;s new for developers in Windows Phone 8&amp;#39; - a short introduction consisting of no more than 50+ slides.&lt;/p&gt;
&lt;p&gt;This was followed by a lively discussion on code commonality between Windows Phone 8 and Windows 8. Judging from a couple of conversations I have had since then, this is going to be a hot topic for both developers, and companies wishing to produce apps that run on both platforms.&lt;/p&gt;
&lt;p&gt;After the discussion, there was a presentation by Riaz Ahmed (@TheRealRiaz) on the newly announced Nokia phones, and the newly announced Nokia Developers Program. Riaz also brought along a Nokia 820 for people to play with. Again the presentation stimulated some lively discussions, around the pizzas, kindly provided by our friends from Nokia.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02/WPUG1_5F00_Nov2012.jpg" alt="" /&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02/WPUG2_5F00_Nov2012.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;After a &amp;#39;straw poll&amp;#39;, it was decided to expand the group, by starting to cover Windows 8 in addition to Windows Phone, due in no small part to the cross platform interest.&lt;/p&gt;
&lt;p&gt;We had a raffle, and distributed some &lt;a href="http://www.pluralsight.com/training"&gt;Pluralsight&lt;/a&gt; vouchers (thanks), some Windows Phone development e-books from &lt;a href="http://www.pearson.com/"&gt;Pearson&lt;/a&gt;&amp;nbsp;(thanks Rachel), and some Windows Phone Stencils (thanks Paul Lo). &lt;/p&gt;
&lt;p&gt;We then adjourned next door, to socialise, and to have a few beers (thanks Riaz!).&lt;/p&gt;
&lt;p&gt;As promised, the links from my presentation are shown below, and also the links from Riaz.&lt;/p&gt;
&lt;p&gt;We are looking towards early January for our next meeting. If you have any suggestions for content, speakers etc., please can you send your suggestions to &lt;a target="_blank" href="mailto:pete.vickers@appamundi.com"&gt;me&lt;/a&gt;, &lt;a href="mailto:rikgarner@hotmail.com"&gt;Rik&lt;/a&gt;&amp;nbsp;or &lt;a target="_blank" href="mailto:pidge@catchyagency.com"&gt;Richard Pidgeon&lt;/a&gt;&amp;nbsp;- Thanks.&lt;/p&gt;
&lt;p&gt;My Links:-&lt;/p&gt;
&lt;p&gt;Everything hangs off - &lt;a href="http://dev.windowsphone.com/"&gt;http://dev.windowsphone.com/&lt;/a&gt; &lt;br /&gt;&amp;nbsp;Downloads -&amp;nbsp; &lt;a href="http://dev.windowsphone.com/downloadsdk"&gt;http://dev.windowsphone.com/downloadsdk&lt;/a&gt; &lt;br /&gt;&amp;nbsp;Registration - &lt;a href="http://dev.windowsphone.com/publish"&gt;http://dev.windowsphone.com/publish&lt;/a&gt; &lt;br /&gt;&amp;nbsp;Documentation - &lt;a href="http://dev.windowsphone.com/develop"&gt;http://dev.windowsphone.com/develop&lt;/a&gt; &lt;br /&gt;&amp;nbsp;Samples - &lt;a href="http://code.msdn.microsoft.com/wpapps/"&gt;http://code.msdn.microsoft.com/wpapps/&lt;/a&gt; &lt;br /&gt;&amp;nbsp;Dashboard - &lt;a href="https://dev.windowsphone.com/dashboard"&gt;https://dev.windowsphone.com/dashboard&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;BUILD: &lt;a href="http://channel9.msdn.com/Events/Build/2012?t=windows-phone"&gt;http://channel9.msdn.com/Events/Build/2012?t=windows-phone&lt;/a&gt;&lt;br /&gt;Keynote&amp;nbsp;1 (from about 1hr 10min)&lt;br /&gt;How to Leverage your Code across WP8 and Windows&amp;nbsp;8&lt;br /&gt;Windows Phone 8: Application&amp;nbsp;Model&lt;br /&gt;Windows Phone 8: XAML Application&amp;nbsp;Development&lt;br /&gt;Windows Phone 8: Native C/C++ Game&amp;nbsp;Development&lt;/p&gt;
&lt;p&gt;&lt;a href="http://channel9.msdn.com/tags/Windows+Phone/"&gt;Channel 9 for Windows Phone&lt;/a&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/Shows/Inside+Windows+Phone"&gt;Channel 9 Inside Windows Phone&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Nokia links from Riaz&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.developer.nokia.com/Develop/Windows_Phone/index.xhtml"&gt;Nokia Developer Portal for Windows Phone devs&lt;br /&gt;&lt;/a&gt;&lt;a href="http://www.developer.nokia.com/Resources/Library/Lumia"&gt;Nokia Lumia Developer&amp;#39;s Library&lt;br /&gt;&lt;/a&gt;&lt;a href="http://www.developer.nokia.com/NAX%20Distribute/NAX/"&gt;Nokia Ad Exchange (NAX&lt;/a&gt;) &lt;br /&gt;&lt;a href="http://www.developer.nokia.com/Community/Wiki/Portal:Windows_Phone"&gt;Nokia Developer Wiki for Windows Phone devs&lt;br /&gt;&lt;/a&gt;&lt;a href="http://www.developer.nokia.com/Resources/Library/Lumia/#!nokia-music-api.html"&gt;Nokia Music APIs for Windows Phone 8 and REST API&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.developer.nokia.com/Develop/Windows_Phone/Learn/%20"&gt;Lumia Labs Webinars (now open for registration) &amp;ndash; Starts 14 November&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Thanks to everyone who came along - hopefully see you all in January.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=487" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/windows+phone/default.aspx">windows phone</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/wpug/default.aspx">wpug</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/madlab/default.aspx">madlab</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/windows+phone+user+group/default.aspx">windows phone user group</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/nokia/default.aspx">nokia</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/lumia/default.aspx">lumia</category></item><item><title>iCalendar Files on Windows Phone 8</title><link>http://mobileworld.appamundi.com/blogs/peterfoot/archive/2012/11/03/icalendar-files-on-windows-phone-8.aspx</link><pubDate>Fri, 02 Nov 2012 18:30:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:486</guid><dc:creator>Peter Foot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;iCalendar files are based on the set of data exchange specifications which also includes vCards. You may come across them either in emails or from a website. For example some sites which sell travel tickets allow you to download your itinerary in an iCalendar file. While Windows Phone has always supported vCards for contact information it doesn&amp;#39;t recognise iCal files.&lt;/p&gt;
&lt;p&gt;Since Windows Phone 8 introduced the ability to register for file associations this allowed me to use some old code I wrote back in the days of Pocket Outlook on Windows CE and Windows Mobile. My free&amp;nbsp;iCalendar Import application has just become available in the Store for Windows Phone 8. You can download it from the link below. I&amp;#39;d welcome any feedback. There are some limitations on the supported event types - there is no way to insert recurring appointments into the user&amp;#39;s calendar so this supports single events only.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.windowsphone.com/s?appid=95287e45-05d7-4a63-aa82-619192cb1713"&gt;http://www.windowsphone.com/s?appid=95287e45-05d7-4a63-aa82-619192cb1713&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=486" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category></item><item><title>Troubleshooting Windows Phone 8 Emulator problems</title><link>http://mobileworld.appamundi.com/blogs/petevickers/archive/2012/11/01/troubleshooting-windows-phone-8-emulator-problems.aspx</link><pubDate>Thu, 01 Nov 2012 09:40:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:485</guid><dc:creator>Pete Vickers</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;The &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=35471"&gt;Windows Phone 8 SDK&lt;/a&gt; has been released, and running the emulator for Windows Phone 8, requires that your PC has Second Level Address Translation (SLAT). This in turn needs Hyper-V. Now, I possibly don&amp;#39;t have a typical setup on my laptop. I run VMware workstation, Hamachi for our private VPN, Cisco VPN client when I am on site for one of our customer, and the excellent ESET AV software. Each of these can use their own network protocol.&lt;/p&gt;
&lt;p&gt;We were lucky enough to have early access to the SDK and as such could get down to testing early. When I installed the SDK, I was informed that it was unable to add the current user to the Hyper-V users. After some searching and head scratching, I came across &lt;a href="http://blogs.technet.com/jhoward"&gt;John Howards&amp;#39; Blog&lt;/a&gt;&amp;nbsp;specifically &lt;a href="http://blogs.technet.com/b/jhoward/archive/2009/09/09/explaining-the-hyper-v-authorization-model-part-three.aspx"&gt;Explaining the Hyper-V authorization model&lt;/a&gt;. I downloaded the script file, and&amp;nbsp;ran the command:-&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;cscript hvremote.wsf /add:&lt;em&gt;machinename&lt;/em&gt;\&amp;quot;&lt;em&gt;username&lt;/em&gt;&amp;quot;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This adds the username as a Hyper-V administrator, using the downloaded script file hvremote.wsf.&lt;/p&gt;
&lt;p&gt;So it was with great excitement (sign of a sad life) that I fired up VS2012, created a Windows Phone 8 application, and fired it up to run on the emulator. The gears ground away, and I was greeted with:-&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.HyperV/NoPermission.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;I clicked on &amp;#39;Retry&amp;#39;, and the emulator fired up - great I thought! Spoke to soon, as the emulator then gave me the message:-&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.HyperV/CantCreate.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;I did some &amp;#39;messing around&amp;#39; with various network connections, but didn&amp;#39;t make much headway, and occasionally received a message of:-&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.HyperV/cantfind.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;I reached out to my colleagues, who by now are used to me asking obscure questions about &amp;#39;why doesn&amp;#39;t this work?&amp;#39;. I received the (smug) developer responses that &amp;#39;it works OK on my system&amp;#39; that I have joyously answered people in the past. Unfortunately, this didn&amp;#39;t help me! Andy did mention that he had heard of this problem, and the person concerned had fixed it, but he didn&amp;#39;t know how, and didn&amp;#39;t remember who. He did however, put me in touch with Greg Mennenga from Microsoft who showed great patience helping me solve this. &lt;/p&gt;
&lt;p&gt;Greg was sure the problem was to do with the many network protocols, and the many pseudo adapters on my system, for VMware, Hypervisor, Hamachi etc. On the network adapter we trimmed this down to just the ones needed, and managed to get it working - great. I worked away on changing and adding facilities to one of our apps, and all was sweetness and light, although I was unsure which of our many attempts had fixed this. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;As mentioned earlier, we had early access to the SDK, so when a new version was available I downloaded it and installed it. I went back to working on our app again. I did some more coding, ran the application to test, and was back to &amp;quot;You don&amp;#39;t have permission to modify internal Hyper-V network adapter settings required to run the emulator&amp;quot;. Cue cursing swearing muttering and slamming about, followed by a system restore, as I was busy.&lt;/p&gt;
&lt;p&gt;When the final release came out, I decided I had to bite the bullet, and install the final release. As expected, the emulator didn&amp;#39;t work for the same reasons as before. The solution turns out to be fairly simple.&lt;/p&gt;
&lt;p&gt;First, run the Hyper-V Manager, and click on the Virtual Switch Manager. If there is no entry resembling &lt;strong&gt;&amp;#39;Windows Phone Emulator Internal Switch&amp;#39;&lt;/strong&gt;, click on &amp;#39;New Virtual Switch&amp;#39;, choose &amp;#39;Internal&amp;#39; and then &amp;#39;Create Virtual Switch&amp;#39;.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.HyperV/VSM1.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Create a new entry called &lt;strong&gt;Windows Phone Emulator Internal Switch&lt;/strong&gt;, add any notes you want, and then click on OK - this will create the emulator switch.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.HyperV/VSM2.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Next, open the &lt;strong&gt;Network and Sharing Centre&lt;/strong&gt; by right clicking on your network icon in the system tray or&amp;nbsp;accessing it via the control panel. Then click on &lt;strong&gt;Change adapter settings.&lt;/strong&gt; You will see a list of your network adapters, including the one we have just created. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.HyperV/Adapter1.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Right-click on the adapter, and select properties.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.HyperV/AdapterPoperties.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Un-tick all the items except for:-&lt;br /&gt;&lt;br /&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Client for Microsoft Networks&lt;br /&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QoS Packet Scheduler&lt;br /&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File and Printer Sharing for Microsoft Networks&lt;br /&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft LLDP Protocol Driver&lt;br /&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Link-Layer Topology Discovery Mapper I/O Driver&lt;br /&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Link-Layer Topology Discovery Responder&lt;br /&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Internet Protocol Version 6 (TCP/IPv6)&lt;br /&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Internet Protocol Version 4 (TCP/IPv4)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;and click on OK.&lt;/p&gt;
&lt;p&gt;At this point I saved everything I had done, and re-booted my system. When it fired up again, I ran VS2012, and created a test project, ran it and saw...&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.HyperV/Emulator.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;You MAY need to disable your VMware adapters - you may not. If you still have problems, you can check what network adapter your emulator is using, by running Hyper-V Manager. You can see the list of virtual machines running. Click on&amp;nbsp;one&amp;nbsp;of the emulators, and then at the bottom, click on the &amp;#39;networking&amp;#39; tab, and you can see which network adapter your emulator is using.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02.HyperV/HypervEmulator.jpg" alt="" /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;My grateful thanks go out to Greg for helping solve this problem, and I hope this helps you if you have problems configuring and connecting to your emulator using Hyper-V.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=485" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/emulator/default.aspx">emulator</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/Windows+Phone+8/default.aspx">Windows Phone 8</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/hyper-v/default.aspx">hyper-v</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/You+don_2700_t+have+permission+to+modify+internal+Hyper-V+network+adapter+settings+required+to+run+the+emulator/default.aspx">You don't have permission to modify internal Hyper-V network adapter settings required to run the emulator</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/Windows+Phone+Emulator+Internal+Switch/default.aspx">Windows Phone Emulator Internal Switch</category></item><item><title>Windows Phone 8, the emulator, Hyper-V and VMWare</title><link>http://mobileworld.appamundi.com/blogs/petevickers/archive/2012/11/01/windows-phone-8-the-emulator-hyperv-and-vmware.aspx</link><pubDate>Thu, 01 Nov 2012 07:56:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:484</guid><dc:creator>Pete Vickers</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;The &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=35471"&gt;Windows Phone 8 SDK&lt;/a&gt; has been released, and running the emulator for Windows Phone 8, requires that your PC has Second Level Address Translation (SLAT). This in turn needs Hyper-V.&lt;/p&gt;
&lt;p&gt;If you have read my blogs before, you will know I am a great fan of VMware, and use it for development systems, but you can&amp;#39;t run VMware with Hyper-V, as VMware refuses to start if it detects Hyper-V. &lt;/p&gt;
&lt;p&gt;So, if I want to run VMware, I can&amp;#39;t run Hyper-V, and if I run Hyper-V then I can&amp;#39;t run VMware. An ideal solution would be to convert my VMware machines to Hyper-V machines, but I can&amp;#39;t do this, as I use them for Windows Mobile development, and need USB support to attach my Windows Mobile devices. So - what to do?&lt;/p&gt;
&lt;p&gt;After some research, I found it is possible to turn Hyper-V on and off, but you need a reboot after you have done this. I created a couple of batch files, HyperVOn and HyperVOff. &lt;/p&gt;
&lt;p&gt;HyperVOn contains:-&lt;br /&gt;&lt;strong&gt;cd c:\&lt;br /&gt;bcdedit /set {current} hypervisorlaunchtype auto&lt;br /&gt;@Echo Off&lt;br /&gt;SET /P ANSWER=Do you want to reboot now (Y/N)?&lt;br /&gt;if /i {%ANSWER%}=={y} (goto :yes)&lt;br /&gt;if /i {%ANSWER%}=={Y} (goto :yes)&lt;br /&gt;goto :no&lt;br /&gt;:yes&lt;br /&gt;shutdown -r&lt;br /&gt;:no&lt;br /&gt;exit&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;HyperVOff contains:-&lt;br /&gt;&lt;strong&gt;cd c:\&lt;br /&gt;bcdedit /set {current} hypervisorlaunchtype off&lt;br /&gt;@Echo Off&lt;br /&gt;SET /P ANSWER=Do you want to reboot now (Y/N)?&lt;br /&gt;if /i {%ANSWER%}=={y} (goto :yes)&lt;br /&gt;if /i {%ANSWER%}=={Y} (goto :yes)&lt;br /&gt;goto :no&lt;br /&gt;:yes&lt;br /&gt;shutdown -r&lt;br /&gt;:no&lt;br /&gt;exit&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;These use bcdedit to change the Boot Configuration Data. Right-click on the files, and &amp;#39;Run as Administrator&amp;#39;. The files will prompt you to reboot. So to run VMware run HyperVOff, and to run VS2012 for Windows Phone 8 with emulator support, then run HyperVOn.&lt;/p&gt;
&lt;p&gt;Alternately, you could dual boot the system. To do this, first of all run the command prompt as administrator, and then key in &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;bcdedit /copy {default} /d &amp;quot;Boot without Hypervisor for VMware&amp;quot;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This will return you a GUID in the format {1xxx2x34-567x-89x0-1234-x56789x01x2x}&lt;/p&gt;
&lt;p&gt;using this GUID key in &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;bcdedit /set {1xxx2x34-567x-89x0-1234-x56789x01x2x} hypervisorlaunchtype off&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;When you reboot, you will be presented with&amp;nbsp;2 options - Windows 8 and Boot without Hypervisor for VMware&lt;/p&gt;
&lt;p&gt;Alternately you can use the excellent &lt;a href="http://neosmart.net/EasyBCD/"&gt;EasyBCD&lt;/a&gt;&amp;nbsp;from NeoSmart&lt;/p&gt;
&lt;p&gt;Using either of these techniques&amp;nbsp;should make it easier to&amp;nbsp;develop for Windows Phone 8 and use&amp;nbsp;VMware&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02/EasyBCD1.jpg" alt="" /&gt;&lt;img src="http://mobileworld.appamundi.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.02/EasyBCD2.jpg" alt="" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=484" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/vmware/default.aspx">vmware</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/hypervisor/default.aspx">hypervisor</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/emulator/default.aspx">emulator</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/Windows+Phone+8/default.aspx">Windows Phone 8</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/SLAT/default.aspx">SLAT</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/hyper-v/default.aspx">hyper-v</category></item><item><title>Windows 8 - The contrast ratio of the background color and foreground text color is 1. This ratio should be greater than or equal to 1.5</title><link>http://mobileworld.appamundi.com/blogs/petevickers/archive/2012/11/01/windows-8-the-contrast-ratio-of-the-background-color-and-foreground-text-color-is-1-this-ratio-should-be-greater-than-or-equal-to-1-5.aspx</link><pubDate>Thu, 01 Nov 2012 06:45:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:483</guid><dc:creator>Pete Vickers</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I recently submitted my first app to the Windows 8 store. I had done all the right things, or so I thought, so from VS2012 I did Project&amp;gt;Store&amp;gt;Create App Packages...&lt;/p&gt;
&lt;p&gt;This churned away, and then told me the app had failed. I looked at the report, and saw the helpful message &amp;quot;The contrast ratio of the background color and foreground text color is 1. This ratio should be greater than or equal to 1.5&amp;quot;&lt;/p&gt;
&lt;p&gt;Ignoring the incorrect spelling of colour, I tried to find out what this meant. I asked a couple of people, and then reached out on Twitter. It was suggested it could be failing on the &amp;#39;light&amp;#39; theme. I checked it out using a light theme and sure enough, my fly-outs for settings and the about screen didn&amp;#39;t look good with a dark blue background and black text. So I rejigged it to use a different, background colour, and with great confidence went through the process of creating an App Package. Same result. &lt;/p&gt;
&lt;p&gt;Then I got an answer from Twitter (sorry - can&amp;#39;t remember who) telling me to look at the Foreground Text and Background Colour within Package.appxmanifest. This was set to &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ForegroundText:&amp;nbsp;&amp;nbsp; Light&lt;br /&gt;BackgroundColor: #ffffff&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I changed it to &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ForegroundText:&amp;nbsp;&amp;nbsp; Dark&lt;br /&gt;BackgroundColor: #ffffff&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;tried again, and this time it sailed through without errors. &lt;/p&gt;
&lt;p&gt;So make sure that it doesn&amp;#39;t read:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ForegroundText:&amp;nbsp;&amp;nbsp; Light&lt;br /&gt;BackgroundColor: #ffffff&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;or presumably&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ForegroundText:&amp;nbsp;&amp;nbsp; Dark&lt;br /&gt;BackgroundColor: #000000&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=483" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/background+color/default.aspx">background color</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/Windows+8+store/default.aspx">Windows 8 store</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/contrast+ratio/default.aspx">contrast ratio</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/foreground+color/default.aspx">foreground color</category></item><item><title>WriteableBitmapEx for Windows Embedded Compact 7</title><link>http://mobileworld.appamundi.com/blogs/peterfoot/archive/2012/10/15/writeablebitmapex-for-windows-embedded-compact-7.aspx</link><pubDate>Sun, 14 Oct 2012 19:32:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:482</guid><dc:creator>Peter Foot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I have ported &lt;a href="http://rene-schulte.info/"&gt;Ren&amp;eacute; Schulte&lt;/a&gt;&amp;#39;s excellent &lt;a target="_blank" href="http://writeablebitmapex.codeplex.com/" title="WriteableBitmapEx"&gt;WriteableBitmapEx&lt;/a&gt; project to run on Windows Embedded Compact 7. The original library supports drawing across various XAML user interfaces - Silverlight, Windows Phone, WPF and Windows 8 Apps. Because XAML In The Hand exposes an object model which matches Silverlight there was very little work required to port, it just needed a new Dll project for .NETCF 3.5 and a reference to the XAML In&amp;nbsp;The Hand DLL. This allows a whole range of complex drawing operations to be performed where using Silverlight Paths and Shapes would be inefficient.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://wbexembedded.codeplex.com"&gt;WriteableBitmap for Windows Embedded&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Performance&amp;nbsp;will vary more because the range of hardware platforms available&amp;nbsp;for Windows Embedded Compact varies considerably, both in processing power and screen sizes. I&amp;#39;ve tested the code on FreeScale development boards at up to 1024x768&amp;nbsp;and on the new Motorola WT41N1 Wearable Computer which has a small 320x240 resistive touch&amp;nbsp;display with encouraging results. Writing XAML user interfaces for embedded devices is incredibly easy once you&amp;#39;ve experienced the Windows Phone and desktop tools. With built in support for touch and dynamic layouts and all the animation and data-binding you would&amp;nbsp;expect it allows you to write fluid user interfaces for specialist devices where a consumer phone or tablet would be impractical. More information on XAML In The Hand is &lt;a target="_blank" href="http://inthehand.com/content/Silverlight.aspx" title="XAML In The Hand"&gt;available here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mobileworld.appamundi.com/aggbug.aspx?PostID=482" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/peterfoot/archive/tags/Compact+Framework/default.aspx">Compact Framework</category></item></channel></rss>