<?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/"><channel><title>Pete Vickers</title><link>http://mobileworld.appamundi.com/blogs/petevickers/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2008.5 (Build: 30912.2823)</generator><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><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mobileworld.appamundi.com/blogs/petevickers/rsscomments.aspx?PostID=522</wfw:commentRss><comments>http://mobileworld.appamundi.com/blogs/petevickers/archive/2013/04/26/moving-from-an-hdd-to-a-ssd.aspx#comments</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>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><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mobileworld.appamundi.com/blogs/petevickers/rsscomments.aspx?PostID=517</wfw:commentRss><comments>http://mobileworld.appamundi.com/blogs/petevickers/archive/2013/04/12/windows-phone-store-submission-error-2001-there-are-duplicate-files-in-appmanifest-xaml.aspx#comments</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><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mobileworld.appamundi.com/blogs/petevickers/rsscomments.aspx?PostID=514</wfw:commentRss><comments>http://mobileworld.appamundi.com/blogs/petevickers/archive/2013/03/23/free-utility-generating-code-for-windows-azure-mobile-services-appa-wams.aspx#comments</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><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mobileworld.appamundi.com/blogs/petevickers/rsscomments.aspx?PostID=513</wfw:commentRss><comments>http://mobileworld.appamundi.com/blogs/petevickers/archive/2013/03/22/adventures-with-windows-azure-mobile-services.aspx#comments</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>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><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mobileworld.appamundi.com/blogs/petevickers/rsscomments.aspx?PostID=508</wfw:commentRss><comments>http://mobileworld.appamundi.com/blogs/petevickers/archive/2013/02/12/using-media-library-pictures-as-as-live-tile-backgrounds-in-windows-phone-8.aspx#comments</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><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mobileworld.appamundi.com/blogs/petevickers/rsscomments.aspx?PostID=506</wfw:commentRss><comments>http://mobileworld.appamundi.com/blogs/petevickers/archive/2013/02/10/push-pins-with-images-with-nokia-maps-on-windows-phone-8.aspx#comments</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><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mobileworld.appamundi.com/blogs/petevickers/rsscomments.aspx?PostID=504</wfw:commentRss><comments>http://mobileworld.appamundi.com/blogs/petevickers/archive/2013/02/04/integrating-nokia-music-with-your-app.aspx#comments</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><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mobileworld.appamundi.com/blogs/petevickers/rsscomments.aspx?PostID=496</wfw:commentRss><comments>http://mobileworld.appamundi.com/blogs/petevickers/archive/2013/01/20/converting-windows-phone-7-convertors-to-windows-8-convertors.aspx#comments</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>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><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mobileworld.appamundi.com/blogs/petevickers/rsscomments.aspx?PostID=491</wfw:commentRss><comments>http://mobileworld.appamundi.com/blogs/petevickers/archive/2012/12/05/using-the-adcontrol-from-code-in-windows-phone-8.aspx#comments</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>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><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mobileworld.appamundi.com/blogs/petevickers/rsscomments.aspx?PostID=488</wfw:commentRss><comments>http://mobileworld.appamundi.com/blogs/petevickers/archive/2012/11/16/nokia-lumia-930-and-o2-settings.aspx#comments</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><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mobileworld.appamundi.com/blogs/petevickers/rsscomments.aspx?PostID=487</wfw:commentRss><comments>http://mobileworld.appamundi.com/blogs/petevickers/archive/2012/11/12/wpug-north-west-manchester-meeting-7th-november-2012.aspx#comments</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>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><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mobileworld.appamundi.com/blogs/petevickers/rsscomments.aspx?PostID=485</wfw:commentRss><comments>http://mobileworld.appamundi.com/blogs/petevickers/archive/2012/11/01/troubleshooting-windows-phone-8-emulator-problems.aspx#comments</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><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mobileworld.appamundi.com/blogs/petevickers/rsscomments.aspx?PostID=484</wfw:commentRss><comments>http://mobileworld.appamundi.com/blogs/petevickers/archive/2012/11/01/windows-phone-8-the-emulator-hyperv-and-vmware.aspx#comments</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><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mobileworld.appamundi.com/blogs/petevickers/rsscomments.aspx?PostID=483</wfw:commentRss><comments>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#comments</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>APPA Market - Migration to Dev Center</title><link>http://mobileworld.appamundi.com/blogs/petevickers/archive/2012/08/13/appa-market-migration-to-dev-center.aspx</link><pubDate>Mon, 13 Aug 2012 16:37:00 GMT</pubDate><guid isPermaLink="false">989b12f5-6f26-47d9-9f0d-67fe982b88db:479</guid><dc:creator>Pete Vickers</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mobileworld.appamundi.com/blogs/petevickers/rsscomments.aspx?PostID=479</wfw:commentRss><comments>http://mobileworld.appamundi.com/blogs/petevickers/archive/2012/08/13/appa-market-migration-to-dev-center.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Hi APPA Market Developers&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Microsoft has expanded availability of App Hub, and renamed it &lt;a target="_blank" href="http://dev.windowsphone.com/en-us/home"&gt;Dev Center&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;You can check if your country is supported &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/windowsphone/help/jj215599"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;If your country is listed you can now register &lt;strong&gt;your own&lt;/strong&gt; developer account with Microsoft. If you follow the migration instructions below, &lt;strong&gt;Microsoft will reimburse your first year membership to Dev Center&lt;/strong&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;strong&gt;This is only available until September 7th 2012, so you will need to hurry.&lt;/strong&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;During this time you will still have access to your APPA Market account if you decide to migrate.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;All the details are detailed &lt;a target="_blank" href="https://skydrive.live.com/redir?resid=D9D4EDABD2640F80!114"&gt;here&lt;/a&gt;&amp;nbsp;and include a form you can complete with your details and send directly to &lt;a href="mailto:appamarket@appamundi.com"&gt;APPA Market&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Please note that by agreeing to create an account on Dev Center, we will move the apps you have published with APPA Market to your new Dev Center Account. This means that you will:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;1.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Have access to all of yours apps in Dev Center. &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;2.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Retain your existing app users for updates &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;3.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Retain reviews for your apps. &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;4.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Retain star ratings.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;The new Dev Center will provide you these features:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;1.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ability to submit unlimited &amp;lsquo;paid&amp;rsquo; apps and 100 &amp;lsquo;free&amp;rsquo; apps directly&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;2.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ability to unlock 3 devices &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;3.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Direct access to downloads, royalty, and crash reports &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;4.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ability to update account data &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;5.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Country/region specific pricing &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;6.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; New reporting views &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;7.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Simplified process for submitting apps &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;8.&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Submit apps to almost two hundred countries/regions &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;9.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Can now have 10,000 beta testers &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;10.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; View all reviews &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;APPA Market want to ensure your migration of your registration and applications to Dev Center is as smooth as possible. To migrate, you will have to register on Dev Center using the same email address as the one you provided to APPA Market and provide a credit card number.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Please do NOT pay with PayPal as Microsoft cannot support reimbursement of fees paid for with PayPal.&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;You can then begin publishing new apps immediately.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;In late October/mid November, Microsoft will migrate the apps you have published today through APPA Market to your new account &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;(you will have to fill a special form as outlined in the &lt;a href="https://skydrive.live.com/redir?resid=D9D4EDABD2640F80!114"&gt;migration instructions&lt;/a&gt;).&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;If you want to republish apps immediately, you can ask APPA Market to unpublish your apps, and you can republish using your own new account However, please be aware, that you will lose ratings and reviews and the ability to update the app for your existing users.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;&amp;nbsp;We would like to be sure that your migration to Microsoft Dev Center is as smooth as possible, and that you get the additional features by being a registered member of Dev Center. For any questions about this, please contact &lt;a href="mailto:appamarket@appamundi.com"&gt;APPA Market&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Thanks for your support so far - and good luck with your future apps&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=479" width="1" height="1"&gt;</description><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/appamundi/default.aspx">appamundi</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/appa+market/default.aspx">appa market</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/appamarket/default.aspx">appamarket</category><category domain="http://mobileworld.appamundi.com/blogs/petevickers/archive/tags/dev+center/default.aspx">dev center</category></item></channel></rss>