<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://inthehand.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/"><channel><title>In The Hand</title><link>http://inthehand.com/blogs/</link><description>software you can take with you</description><dc:language>en-US</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Moving from WinForms to XAML Runtime on Windows Embedded Compact</title><link>http://inthehand.com/blogs/peterfoot/archive/2013/06/07/moving-from-winforms-to-xaml-runtime-on-windows-embedded-compact.aspx</link><pubDate>Fri, 07 Jun 2013 13:56:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:14538</guid><dc:creator>PeterFoot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I recently found an old set of slides I created for TechEd NZ a few years ago which collected together useful information for moving from Windows Mobile to Windows Phone. It struck me that some of this would also be useful for the Embedded XAML Runtime when considering moving code from a traditional WinForms UI to a XAML based UI using Xaml In The Hand. I&amp;#39;ve modified the table listing controls in both UI worlds and added it to the Knowledge Base here:-&lt;/p&gt;
&lt;p&gt;&lt;a href="http://inthehand.uservoice.com/knowledgebase/articles/209986-winforms-versus-xaml-runtime-controls"&gt;http://inthehand.uservoice.com/knowledgebase/articles/209986-winforms-versus-xaml-runtime-controls&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;While most of this still applies to Windows Phone (and with a few further changes Windows Store apps) there are items here which are specific to Windows Embedded Compact - The ComboBox control which doesn&amp;#39;t exist on Phone (although there is a perfectly good alternative), and the MediaElement and WebBrowser controls which don&amp;#39;t exist in the XAML Runtime but for which we have created managed code controls which expose the same XAML and C# interfaces.&lt;/p&gt;&lt;img src="http://inthehand.com/aggbug.aspx?PostID=14538" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Compact+Framework/default.aspx">Compact Framework</category><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/XAML/default.aspx">XAML</category></item><item><title>NFC Text tags on WinRT</title><link>http://inthehand.com/blogs/peterfoot/archive/2013/06/03/nfc-text-tags-on-winrt.aspx</link><pubDate>Mon, 03 Jun 2013 10:03:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:14534</guid><dc:creator>PeterFoot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;To follow the last post I thought I would quickly round it off by looking at the code required to listen for tags on a Windows 8/RT device. Devices with NFC built in are like hens teeth but one such RT device exists in the Asus VivoTab RT. Because it&amp;#39;s an RT device that means running the Remote Debugger and doing the development on a separate Windows 8 PC. The problem with the Windows 8/RT experience is it is not as set in stone as Windows Phone and so issues like this occur (&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/tailoringappsfordevices/thread/9da68387-e0cb-4e02-ac71-bad61f6ff7c6"&gt;http://social.msdn.microsoft.com/Forums/en-US/tailoringappsfordevices/thread/9da68387-e0cb-4e02-ac71-bad61f6ff7c6&lt;/a&gt;) where some devices don&amp;#39;t correctly advertise support for all tag types. The good news with the Asus is that it does support subscribing to NDEF messages and you can use the same code as in my previous Windows Phone example to read a Text tag. The same &lt;a href="http://ndef.codeplex.com/"&gt;Ndef library&lt;/a&gt; is used as this supports both Windows 8/RT and Windows Phone 8.&lt;/p&gt;
&lt;p&gt;One thing which is a little frustrating when remote debugging is that you have to register for a developer license on the tablet before the debug session will continue. So even though you have a license on your development machine you also need one on the tablet (despite the fact you can&amp;#39;t actually compile an app on it). There doesn&amp;#39;t seem to be a limit to how many devices you can register for a license using your Microsoft ID so this shouldn&amp;#39;t become a problem. You will find that you have to renew it regularly though...&lt;/p&gt;
&lt;p&gt;In a future post we will delve into other tag types...&lt;/p&gt;&lt;img src="http://inthehand.com/aggbug.aspx?PostID=14534" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/NFC/default.aspx">NFC</category><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Windows+Store/default.aspx">Windows Store</category></item><item><title>NFC - Simple text tags on Windows Phone</title><link>http://inthehand.com/blogs/peterfoot/archive/2013/05/31/nfc-simple-text-tags-on-windows-phone.aspx</link><pubDate>Fri, 31 May 2013 15:48:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:14533</guid><dc:creator>PeterFoot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This article follows on from &lt;a href="http://inthehand.com/blogs/peterfoot/archive/2013/05/25/cross-platform-nfc.aspx"&gt;the last post on NFC&lt;/a&gt; to dig a little deeper on Windows Phone and Windows 8 (both of which share the same APIs for NFC).&lt;/p&gt;
&lt;h2&gt;Requirement or just Capability&lt;/h2&gt;
&lt;p&gt;In Windows Phone you have to add the ID_CAP_PROXIMITY capability to your app to use NFC. What about the ID_REQ_NFC requirement? Well the difference here is that when you specify a requirement the app will only be made available to devices with that feature. Whether you use the requirement therefore depends on whether NFC is core to your application or is an optional feature. This means it is valid to submit an app with NFC capabilities to devices which don&amp;#39;t have the hardware. Therefore you must always check first if &lt;/p&gt;
&lt;pre&gt;ProximityDevice.GetDefault() == null&lt;/pre&gt;
&lt;h2&gt;Types of NFC Message&lt;/h2&gt;
&lt;p&gt;So you&amp;#39;ve got as far as calling the SubscribeForMessage API to listen for NFC messages, if you check the help file for this function you&amp;#39;ll see it refers to the partner method &amp;quot;PublishBinaryMessage&amp;quot; to document the message types supported. Then you look down the list of supported protocols and your heart sinks! It&amp;#39;s a long list and there seems to be a lot of duplication - why when we have the NDEF standards are there Windows versions too? Which ones can I use across different platforms? Not to mention the fact that you can&amp;#39;t subscribe to all of these message types on Windows Phone so the utopia of a shared NFC API across both Windows APIs is shattered.&lt;/p&gt;
&lt;p&gt;The good news is that the Windows message types are actually helpers over the top of NDEF types and are designed to simplify reading those message types, we&amp;#39;ll look into those on Windows 8/RT at a later stage. There is a &lt;a href="http://ndef.codeplex.com/"&gt;very good NDEF library on CodePlex&lt;/a&gt; (and NuGet) to parse standard NDEF records. For example the way to read a plain text NDEF.Text message is actually using the&amp;nbsp;NDEF message type because the API doesn&amp;#39;t provide a subtype specifically for Text tags. When the tag is tapped you&amp;#39;ll receive a message payload which you can parse with the NdefLibrary.Ndef.NdefMessage class.&lt;/p&gt;
&lt;pre&gt;private void MessageReceived(ProximityDevice device, ProximityMessage message) 
{
NdefLibrary.Ndef.NdefMessage.FromByteArray(message.Data.ToArray());

string s = System.Text.Encoding.UTF8.GetString(msg[0].Payload, 0, msg[0].Payload.Length).Substring(2);
}
&lt;/pre&gt;
&lt;p&gt;The final thing you&amp;#39;ll notice from the received text is that it contains the two-character language code at the beginning. Note that there is no error checking in the above sample and it assumes that the text tag is the first record in the message. You can see from the NdefMessage class that it contains a collection of records which can be of a number of specific types. More to follow as we delve deeper...&lt;/p&gt;&lt;img src="http://inthehand.com/aggbug.aspx?PostID=14533" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/NFC/default.aspx">NFC</category></item><item><title>Cross Platform NFC</title><link>http://inthehand.com/blogs/peterfoot/archive/2013/05/25/cross-platform-nfc.aspx</link><pubDate>Sat, 25 May 2013 11:20:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:14532</guid><dc:creator>PeterFoot</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;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;/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;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;/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;img src="http://inthehand.com/aggbug.aspx?PostID=14532" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/NFC/default.aspx">NFC</category><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Windows+Store/default.aspx">Windows Store</category></item><item><title>Use Team Foundation Service for Embedded Projects</title><link>http://inthehand.com/blogs/peterfoot/archive/2013/04/20/use-team-foundation-service-for-embedded-projects.aspx</link><pubDate>Sat, 20 Apr 2013 07:23:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:14514</guid><dc:creator>PeterFoot</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://inthehand.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://inthehand.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;img src="http://inthehand.com/aggbug.aspx?PostID=14514" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Compact+Framework/default.aspx">Compact Framework</category></item><item><title>Launching PDF Documents</title><link>http://inthehand.com/blogs/peterfoot/archive/2013/04/16/launching-pdf-documents.aspx</link><pubDate>Wed, 17 Apr 2013 03:12:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:14512</guid><dc:creator>PeterFoot</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://inthehand.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://inthehand.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;img src="http://inthehand.com/aggbug.aspx?PostID=14512" width="1" height="1"&gt;</description><category domain="http://inthehand.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://inthehand.com/blogs/peterfoot/archive/2013/04/15/odd-issue-with-camera-preview-on-surface-rt.aspx</link><pubDate>Tue, 16 Apr 2013 01:26:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:14510</guid><dc:creator>PeterFoot</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;img src="http://inthehand.com/aggbug.aspx?PostID=14510" width="1" height="1"&gt;</description></item><item><title>Prototyping with Infragistics Indigo</title><link>http://inthehand.com/blogs/peterfoot/archive/2013/04/13/prototyping-with-infragistics-indigo.aspx</link><pubDate>Sat, 13 Apr 2013 04:41:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:14508</guid><dc:creator>PeterFoot</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://inthehand.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.00/indigo1.png" alt="" /&gt;&lt;/p&gt;&lt;img src="http://inthehand.com/aggbug.aspx?PostID=14508" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category></item><item><title>Working with .png Images</title><link>http://inthehand.com/blogs/peterfoot/archive/2013/02/28/working-with-png-images.aspx</link><pubDate>Thu, 28 Feb 2013 06:30:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:14453</guid><dc:creator>PeterFoot</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;img src="http://inthehand.com/aggbug.aspx?PostID=14453" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category></item><item><title>Photos Extra Share and .png</title><link>http://inthehand.com/blogs/peterfoot/archive/2013/02/26/photos-extra-share-and-png.aspx</link><pubDate>Tue, 26 Feb 2013 16:32:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:14446</guid><dc:creator>PeterFoot</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;img src="http://inthehand.com/aggbug.aspx?PostID=14446" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category></item><item><title>32feet.NET for Windows Phone</title><link>http://inthehand.com/blogs/peterfoot/archive/2013/01/16/32feet-net-for-windows-phone.aspx</link><pubDate>Wed, 16 Jan 2013 13:34:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:14291</guid><dc:creator>PeterFoot</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;img src="http://inthehand.com/aggbug.aspx?PostID=14291" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Bluetooth/default.aspx">Bluetooth</category><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category></item><item><title>Persist Bluetooth Addresses on Windows Phone 8</title><link>http://inthehand.com/blogs/peterfoot/archive/2012/12/05/persist-bluetooth-addresses-on-windows-phone-8.aspx</link><pubDate>Wed, 05 Dec 2012 10:05:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:14274</guid><dc:creator>PeterFoot</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://inthehand.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;img src="http://inthehand.com/aggbug.aspx?PostID=14274" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Bluetooth/default.aspx">Bluetooth</category><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category></item><item><title>iCalendar Files on Windows Phone 8</title><link>http://inthehand.com/blogs/peterfoot/archive/2012/11/03/icalendar-files-on-windows-phone-8.aspx</link><pubDate>Sat, 03 Nov 2012 10:30:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:14260</guid><dc:creator>PeterFoot</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;img src="http://inthehand.com/aggbug.aspx?PostID=14260" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category></item><item><title>WriteableBitmapEx for Windows Embedded Compact 7</title><link>http://inthehand.com/blogs/peterfoot/archive/2012/10/15/writeablebitmapex-for-windows-embedded-compact-7.aspx</link><pubDate>Mon, 15 Oct 2012 12:32:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:14247</guid><dc:creator>PeterFoot</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;img src="http://inthehand.com/aggbug.aspx?PostID=14247" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Compact+Framework/default.aspx">Compact Framework</category></item><item><title>Connect Visual Studio 2008 to TFS2012 or Team Foundation Service Preview</title><link>http://inthehand.com/blogs/peterfoot/archive/2012/09/03/connect-visual-studio-2008-to-tfs2012-or-team-foundation-service-preview.aspx</link><pubDate>Tue, 04 Sep 2012 03:52:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:14230</guid><dc:creator>PeterFoot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Now that there is a new release of Team Foundation Server you may consider upgrading. However if you still work on projects for the .NET Compact Framework you&amp;#39;ll still be using Visual Studio 2008. Luckily there is an update available to allow VS2008 to connect to a TFS2012 server or the new &lt;a target="_blank" href="http://inthehand.com/controlpanel/blogs/posteditor.aspx/tfspreview.com"&gt;Team Foundation Service Preview&lt;/a&gt; (hosted TFS - why not check it out with a free preview account). You&amp;#39;ll need VS2008 Service Pack 1 installed first (but you&amp;#39;ve got that already right!). The download and instructions are available here:-&lt;/p&gt;
&lt;p&gt;&lt;a href="http://support.microsoft.com/kb/2673642"&gt;http://support.microsoft.com/kb/2673642&lt;/a&gt;&lt;/p&gt;&lt;img src="http://inthehand.com/aggbug.aspx?PostID=14230" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Compact+Framework/default.aspx">Compact Framework</category></item><item><title>Windows Marketplace for Mobile 6.x to be Discontinued</title><link>http://inthehand.com/blogs/peterfoot/archive/2012/05/03/windows-marketplace-for-mobile-6-x-to-be-discontinued.aspx</link><pubDate>Thu, 03 May 2012 04:25:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:14115</guid><dc:creator>PeterFoot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;If you publish apps on the old Marketplace for Windows Mobile 6.x you should have received reminders that the service will be discontinued in two weeks. If you have been using our &lt;a target="_blank" href="http://inthehand.com/content/Mobile.aspx" title="Mobile In The Hand"&gt;Mobile In The Hand&lt;/a&gt; product with a managed code app there are a couple of issues to be aware of. Our libraries contain the following two classes to provide programmatic access to the Marketplace client on Windows Mobile 6.x:-&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;InTheHand.Phone.Tasks.MarketplaceDetailTask&lt;/li&gt;
&lt;li&gt;InTheHand.Phone.Tasks.MarketplaceLauncher&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If these are called on a device with the Marketplace client&amp;nbsp;installed they will launch the client application however once the service is discontinued no application details will be accessible so this may result in a confusing experience for your users. Consider these classes obsolete as they will no longer be supported and&amp;nbsp;will be removed from the next release.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://inthehand.uservoice.com/knowledgebase/articles/72785-windows-marketplace-for-mobile-6-x-to-be-discontin"&gt;https://inthehand.uservoice.com/knowledgebase/articles/72785-windows-marketplace-for-mobile-6-x-to-be-discontin&lt;/a&gt;&lt;/p&gt;&lt;img src="http://inthehand.com/aggbug.aspx?PostID=14115" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Compact+Framework/default.aspx">Compact Framework</category></item><item><title>Windows Phone SDK 7.1.1</title><link>http://inthehand.com/blogs/peterfoot/archive/2012/02/27/windows-phone-sdk-7-1-1.aspx</link><pubDate>Tue, 28 Feb 2012 04:49:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:14033</guid><dc:creator>PeterFoot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;At MWC today Nokia announced the Lumia 610 which is a lower spec device designed for emerging markets. This is running an updated Windows Phone OS which supports devices with just 256MB of RAM. To enable developers to create apps which support the new lower memory devices Microsoft are releasing an update to the Windows Phone SDK - 7.1.1.&lt;/p&gt;
&lt;p&gt;At the moment a CTP has been released so that you can test your applications on a 256MB emulator but you should not install this to your main development machine as it doesn&amp;#39;t have a Go-Live license. To try out the new SDK you can download the CTP here:-&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=28962"&gt;http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=28962&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There is just one API addition to support this change which is an additional property available from Microsoft.Phone.Info.DeviceExtendedProperties.GetValue - &amp;quot;&lt;span&gt;&lt;span class="input"&gt;ApplicationWorkingSetLimit&amp;quot; which will let you know whether you are running on a device with 256MB RAM. If your app/game is sufficiently resource heavy that you don&amp;#39;t feel it will run on such a device you can opt out so that your app/game will not be available on these lower powered devices. This is done by adding the Requirements element to your WMAppManifest.xml:-&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span class="input"&gt;&amp;lt;Requirements&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Requirement Name=&amp;quot;ID_REQ_MEMORY_90&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/Requirements&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span class="input"&gt;The other main difference for these devices is there is no support for Background tasks - either Periodic or ResourceIntensive and attempting to add a background task on one of these devices will throw an InvalidOperationException - so it&amp;#39;s important to to check the capabilities first. Because of this limitation you need to design your app such that it doesn&amp;#39;t rely on a background task and that whatever sync/processing the task normally performs can be done when the app is running in the foreground.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span class="input"&gt;Microsoft have prepared some information on optimising apps for 256MB and it is available here:-&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span class="input"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh855081(v=vs.92).aspx"&gt;http://msdn.microsoft.com/en-us/library/hh855081(v=vs.92).aspx&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span class="input"&gt;Some of the suggestions including using the built in launchers and choosers rather than running functionality such as the WebBrowser control or Bing Maps control within your app. They also suggest avoiding using the page transitions provided by the Silverlight Toolkit but don&amp;#39;t suggest an alternative - not sure if this means these devices don&amp;#39;t have the smooth page transitions at all or if they are suggesting that doing them from managed code is too resource intensive. You may decide to implement multiple approaches and use different methods depending on the device capabilities. Obviously the trick here is the balance between providing the best possible experience on each platform and avoiding adding too much more code to maintain.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://inthehand.com/aggbug.aspx?PostID=14033" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category></item><item><title>Tasks v1.19</title><link>http://inthehand.com/blogs/peterfoot/archive/2012/02/23/tasks-v1-19.aspx</link><pubDate>Thu, 23 Feb 2012 07:28:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:14031</guid><dc:creator>PeterFoot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;The latest update to Tasks is now available in the Marketplace. This release continues the improvements to the sync experience by providing more resilience in situations where the network&amp;nbsp;drops out during a sync. It also improves the reminders feature in Windows 7.5 and improves the display of reminders for tasks with very long titles.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.windowsphone.com/en-GB/apps/55fcf880-6b03-e011-9264-00237de2db9e"&gt;http://www.windowsphone.com/en-GB/apps/55fcf880-6b03-e011-9264-00237de2db9e&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://inthehand.com/aggbug.aspx?PostID=14031" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category></item><item><title>Follow Up from Windows Phone Camp Bristol</title><link>http://inthehand.com/blogs/peterfoot/archive/2012/02/12/follow-up-from-windows-phone-camp-bristol.aspx</link><pubDate>Sun, 12 Feb 2012 22:58:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:14011</guid><dc:creator>PeterFoot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;A few of you who attended the Windows Phone Camp in Bristol asked about the slides and code from the Storing Data and Cloud/Networking session. I&amp;#39;ve uploaded the latest versions of these slides and the additional Sockets code project to the FTP site. All the links and resources mentioned during the day are on Pete&amp;#39;s blog post:-&lt;/p&gt;
&lt;p&gt;&lt;a href="http://mobileworld.appamundi.com/blogs/petevickers/archive/2011/11/13/links-and-resources-from-windows-phone-camps.aspx"&gt;http://mobileworld.appamundi.com/blogs/petevickers/archive/2011/11/13/links-and-resources-from-windows-phone-camps.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Happy Coding!&lt;/p&gt;&lt;img src="http://inthehand.com/aggbug.aspx?PostID=14011" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Events/default.aspx">Events</category><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category></item><item><title>Review: Making Embedded Systems (Elecia White)</title><link>http://inthehand.com/blogs/peterfoot/archive/2012/01/20/review-making-embedded-systems-elicia-white.aspx</link><pubDate>Fri, 20 Jan 2012 07:53:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:13984</guid><dc:creator>PeterFoot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://www.amazon.co.uk/gp/product/1449302149/ref=as_li_ss_il?ie=UTF8&amp;amp;tag=petfoo-21&amp;amp;linkCode=as2&amp;amp;camp=1634&amp;amp;creative=19450&amp;amp;creativeASIN=1449302149"&gt;&lt;img src="http://ws.assoc-amazon.co.uk/widgets/q?_encoding=UTF8&amp;amp;Format=_SL160_&amp;amp;ASIN=1449302149&amp;amp;MarketPlace=GB&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;tag=petfoo-21&amp;amp;ServiceVersion=20070822" align="left" hspace="8" border="0" alt="" /&gt;&lt;/a&gt;&lt;img height="1" width="1" src="http://www.assoc-amazon.co.uk/e/ir?t=petfoo-21&amp;amp;l=as2&amp;amp;o=2&amp;amp;a=1449302149" border="0" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;This title takes a traditional software programmer into the world of embedded system. It covers the process of designing and implementing an embedded system from a sketch through to optimising performance and power consumption.&lt;/p&gt;
&lt;p&gt;As an interesting addition, at the end of each chapter, there is a potential interview question for an embedded developer position. It&amp;rsquo;s an unusual idea but is a way of tying up the topics covered in the chapter. Because the book is written for developers it applies patterns and techniques which the reader will already be familiar with and how they apply to embedded systems.&lt;/p&gt;
&lt;p&gt;It emphasises the need to be aware of the limited resources available and how to pare down operations to a minimum to make best use of them. It also talks about various options for input and output for a variety of peripherals and sensors.&lt;/p&gt;
&lt;p&gt;The book offers a useful introduction to the world of embedded development to a developer with existing C (or similar) experience. More experienced embedded developers will probably want to delve into more detail on the specific areas, but this is a great starting point.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4/5&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://inthehand.com/aggbug.aspx?PostID=13984" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Books/default.aspx">Books</category><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Review/default.aspx">Review</category></item><item><title>Review: Making Embedded Systems (Elecia White)</title><link>http://inthehand.com/blogs/peterfoot/archive/2012/01/19/review-making-embedded-systems-elecia-white.aspx</link><pubDate>Thu, 19 Jan 2012 19:53:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:13985</guid><dc:creator>Peter Foot</dc:creator><slash:comments>0</slash:comments><description>This title takes a traditional software programmer into the world of embedded system. It covers the process of designing and implementing an embedded system from a sketch through to optimising performance and power consumption. As an interesting addition, at the end of each chapter, there is a potential interview question for an embedded developer position. It&amp;rsquo;s an unusual idea but is a way of tying up the topics covered in the chapter. Because the book is written for developers it applies...(&lt;a href="http://inthehand.com/blogs/peterfoot/archive/2012/01/19/review-making-embedded-systems-elecia-white.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://inthehand.com/aggbug.aspx?PostID=13985" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Books/default.aspx">Books</category><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Review/default.aspx">Review</category></item><item><title>Windows Phone Update due shortly</title><link>http://inthehand.com/blogs/peterfoot/archive/2012/01/06/windows-phone-update-due-shortly.aspx</link><pubDate>Sat, 07 Jan 2012 01:32:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:13961</guid><dc:creator>PeterFoot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Microsoft have published details of a new update (7.10.8107.79) which adds a number of fixes to the Mango release. It fixes the issue where the on screen keyboard will randomly hide itself which I&amp;#39;ve been finding frustrating recently and also a fix for the SMS bug which could disable messaging. It also hopefully finally resolves the issue when forwarding Exchange messages where the original message body would disappear. It hasn&amp;#39;t shown up yet but expect it&amp;nbsp;over the next couple of weeks. Full details on all the updates and fixes are published here:-&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/windowsphone/en-us/howto/wp7/basics/update-history.aspx"&gt;http://www.microsoft.com/windowsphone/en-us/howto/wp7/basics/update-history.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;

&lt;/p&gt;&lt;img src="http://inthehand.com/aggbug.aspx?PostID=13961" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category></item><item><title>Developer Unlock Expiry</title><link>http://inthehand.com/blogs/peterfoot/archive/2011/12/22/developer-unlock-expiry.aspx</link><pubDate>Thu, 22 Dec 2011 11:35:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:13928</guid><dc:creator>PeterFoot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;When you&amp;#39;ve developer unlocked your Windows Phone you can merrily deploy and debug on it and everything is great. If you&amp;#39;ve upgraded to Mango you had to run the Unlock tool again but this is fairly painless. What is not obvious is that the developer unlock has a 12 month expiry from when you first register the device and even when you subsequently use the unlock tool on the same device this never gets extended. &lt;/p&gt;
&lt;p&gt;So one day you&amp;#39;ll be developing as normal and get the error &amp;quot;Failed to connect to device as it is developer locked. For details on developer unlock, visit &lt;a href="http://go.microsoft.com/fwlink/?LinkId=195284"&gt;http://go.microsoft.com/fwlink/?LinkId=195284&lt;/a&gt;.&amp;quot;. Instictively you launch the developer unlock tool, enter your App Hub credentials and unlock the phone. This completes with no errors but you&amp;#39;ll soon find that it hasn&amp;#39;t helped despite the fact you entered valid credentials and your App Hub account is valid.&lt;/p&gt;
&lt;p&gt;The solution to this problem is to log into App Hub on the web and go to your account profile, select devices and remove the offending device from the list (here you&amp;#39;ll see that the expiry date is shown). After doing this you can run the unlock tool again and successfully unlock the device.&lt;/p&gt;
&lt;p&gt;Microsoft could certainly&amp;nbsp;improve this process in the future by using a more descriptive error message and also by improving the unlock tool so that when you try to unlock a device that has expired it refreshed the registration and provide 12 more months of use (just like the manual process described above does).&lt;/p&gt;
&lt;p&gt;Merry Christmas, and here&amp;#39;s to a wonderful 2012 filled with Windows Phone goodness!&lt;/p&gt;&lt;img src="http://inthehand.com/aggbug.aspx?PostID=13928" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category></item><item><title>Submitting Apps to Marketplace with Background Tasks</title><link>http://inthehand.com/blogs/peterfoot/archive/2011/12/08/submitting-apps-to-marketplace-with-background-tasks.aspx</link><pubDate>Thu, 08 Dec 2011 23:38:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:13877</guid><dc:creator>PeterFoot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I&amp;#39;ve been working on an update to the &lt;a title="Tasks" href="http://appamundi.com/products/tasks/"&gt;Tasks&lt;/a&gt; application which adds in background synchronisation using the new background task support in Windows Phone 7.5. As with&amp;nbsp;any app when you submit your XAP static analysis is performed on it to check, for example, that you have declared the correct capabilities based on the functionality in your app. Within a background agent you are only allow to call a subset of APIs - as you would expect you can&amp;#39;t play sound effects or&amp;nbsp;draw to the UI (with the exception of toast notifications and tile updates). Because the main app has to include a reference to the dll which provides the background task, and the functionality within the dll is used in both the background task and the main app it made sense to move all of the logic into the background dll. This meant including a number of third-party references. I was very careful to ensure that nowhere in the background task was any restricted API called and it worked perfectly in testing. &lt;/p&gt;
&lt;p&gt;The first problem is that upon submitting the static anaylsis looks at all of the referenced dlls and sees that they contain APIs not permitted in a background task and blocks the XAP. One of the culprits was InTheHand.Phone.dll (Part of &lt;a href="http://inthehand.com/content/Mobile.aspx"&gt;Mobile In The Hand&lt;/a&gt;) because it provides a mixture of helper classes for logic and for UI. As I&amp;#39;ve been working on the 7.1 version in tandem I&amp;#39;ve now split this into two assemblies for Windows Phone 7.1 SDK projects. This means we can continue to use InTheHand.Phone in background tasks and add a reference to the second assembly&amp;nbsp;in the main application only.&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/static-validation.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;The second problem is that code within the sync logic calls ScheduledActionService.Add which is disallowed within a background task. This API is used within &lt;a title="Tasks" href="http://appamundi.com/products/tasks/"&gt;Tasks&lt;/a&gt;&amp;nbsp;to add system-wide reminders (Another new feature for this version) for new task items. The code also has the ability to update and delete reminders based on modified or deleted tasks but these do not seem to have been flagged up as errors. This is a pain because it means that if the device syncs a new task with a reminder set to show&amp;nbsp;before you next open the foreground app we won&amp;#39;t have had a chance to register it.&lt;/p&gt;
&lt;p&gt;The other issue with the NeutralResourceLanguage is an issue with projects originally created with an older version of the development tools. You can add this setting from the projects properties, Application tab and click &amp;quot;Assembly Information...&amp;quot;.&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/neutral-language.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;This has been an interesting learning experience and shows that the validation picks up not just APIs used in the background agent code-path but also in referenced assemblies.&lt;/p&gt;&lt;img src="http://inthehand.com/aggbug.aspx?PostID=13877" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category></item><item><title>Showing Mango Features on Marketplace</title><link>http://inthehand.com/blogs/peterfoot/archive/2011/09/21/showing-mango-fatures-on-marketplace.aspx</link><pubDate>Wed, 21 Sep 2011 08:30:00 GMT</pubDate><guid isPermaLink="false">a6c76ee1-0bb1-45d9-a8c3-660105c16730:13563</guid><dc:creator>PeterFoot</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;The Windows Phone team have posted to their blog about application updates with a couple of useful points:-&lt;/p&gt;
&lt;p&gt;From October you will again be able to publish updates to your 7.0 apps independently from 7.5 (previously once you had published a Mango update your 7.0 app would be locked). It does mean potentially being in limbo for a month but at least you are not stuck completely with no way of updating a 7.0 app. This is important as it will take some time before many users will have the opportunity of upgrading to Mango.&lt;/p&gt;
&lt;p&gt;When submitting apps there is only one description for both versions of your app so you must describe which features are for Mango only. For the purposes of Screenshots there is now an officially accepted overlay which can be used to indicate Mango-only functionality. You can download a ZIP containing the overlay and examples here:-&lt;/p&gt;
&lt;p&gt;&lt;a href="http://create.msdn.com/downloads/?id=882&amp;amp;filename=Marketplace_7.5_Badges.zip"&gt;http://create.msdn.com/downloads/?id=882&amp;amp;filename=Marketplace_7.5_Badges.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The full blog post is here:-&lt;/p&gt;
&lt;p&gt;&lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/09/20/submit-windows-phone-7-5-apps-today-update-7-0-apps-in-october.aspx?utm_source=twitterfeed&amp;amp;utm_medium=twitter"&gt;http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/09/20/submit-windows-phone-7-5-apps-today-update-7-0-apps-in-october.aspx?utm_source=twitterfeed&amp;amp;utm_medium=twitter&lt;/a&gt;&lt;/p&gt;&lt;img src="http://inthehand.com/aggbug.aspx?PostID=13563" width="1" height="1"&gt;</description><category domain="http://inthehand.com/blogs/peterfoot/archive/tags/Windows+Phone/default.aspx">Windows Phone</category></item></channel></rss>