Ever since Windows Phone first shipped almost a year ago there has been almost endless discussion about what the next update/version will include. The first major update earlier in the year saw the introduction of copy-and-paste, clearly something that was supposed to be in the first release but just didn’t make the pre-Christmas deadline set in order to ship the first round of devices. Since then the focus has been on Windows Phone Mango, an update to not only the consumer experience on the device but also a major refresh of all the development tools, APIs and even marketplace. In this post we’re going to do a quick rundown of the major updates that are now available.
Windows Phone (7.5)
From a consumer perspective the platform formerly known as Windows Phone 7 Series, then Windows Phone 7, should now be referred to as just Windows Phone. If asked, the actual platform is Windows Phone 7.5, which is evident if you look at the Software attribute under Settings > About. Some of the new features include conversation view for email, threaded integrated messaging across text, IM and Facebook chat, app multi-tasking and of course IE9 for a better browsing experience.
Windows Phone OS 7.1
Ah yes, the elephant in the room: If you’ve been playing with the beta or RC versions of the development tools you’ll have noticed references to Windows Phone 7.1. Also, if you look at the OS version on an updated device you’ll see that the number starts 7.1. This is similar to Windows 7, which actually runs on Windows OS 6.1 (go to a command prompt and type “ver” if you don’t believe me). Windows Phone 7.5 runs on Windows Phone OS 7.1. If you see references in the tooling to Windows Phone 7.1 it’s referring to the same version.
Your Application Concept
The first stage in developing an application for Windows Phone should be to work with potential customers, a designer and any other creative inputs you can find. Of course you’ll need to document this work, and what better way than with Sketch Flow which is integrated into Expression Blend. There are even some specific Windows Phone templates available on codeplex.
Designing and Developing your Application
Firstly, notice that I’ve put designing and developing your application in the same step. This is because the process of building your application should be an iterative approach that involves both designing the user interface and developing the logic of your application. You can do this all yourself, or you can work in a team but you should definitely be using both Visual Studio and Expression Blend. In the current version of Visual Studio if you’re using the integrated design experience, I can almost guarantee you’re doing it wrong – open Expression Blend, don your black skivvy and let the designer in you out.
Running and Testing your Application
During the development phase of your application you can either work with the Windows Phone Emulator or directly with a real device. The emulator, whilst it initially looks the same, has had some major additions. You’ll notice in Figure 4 that the emulator has been updated with the new default theme colour of red (it used to be blue). On the right is the Additional Tools window which gives you the ability to simulate shaking the device (Accelerometer tab), changing the position of the device (Location tab) and taking a screen shot.
The lower window is the console output window for the emulator. This is a little known feature of the emulator but is particularly useful for debugging broken data binding expressions, or if you happen to use Console.Writeline. For x86 machines you’ll need to set the following registry key:
Alternatively if you’re running 64 bit, use this key instead – and don’t forget to restart the emulator for the console window to appear.
One of the hardest things with building mobile applications is making sure they perform well. At the end of the day the user doesn’t want to have to sit there waiting for your application to respond. Performance usually has a strong correlation with both the amount of CPU cycles your application is using and its memory footprint. The new Performance Analysis tool within Visual Studio allows you to profile both execution and memory of your application (Figure 5), allowing you to progressively refine your application to make it faster and better. You can launch the tool by pressing Alt-F1 or selecting Start Windows Phone Performance Analysis from the Debug menu. Note that your Windows Phone application needs to be targeting Windows Phone 7.1 and be the start project in order for this menu item to be available.
Preparing for Deployment
Of course, once you’ve run your application through rigorous testing and are happy with its performance, you need to submit your application to the Windows Phone Marketplace. This can be quite frustrating if you haven’t taken the time before hand to make sure you have all the necessary prerequisites and have adhered to all the certification requirements. To help you do this you can use the Marketplace Test Kit (right-click your Windows Phone 7.1 project in Solution Explorer and select Open Marketplace Test Kit). The test kit is made up of four tabs (Figure 6): Application Details, Automated Tests, Monitored Tests and Manual Tests.
By working through these four tabs you will be putting your application in the best position possible for it to be accepted first time into the Marketplace.
Deployment via AppHub
After working through the test kit you’re finally ready to submit your application to the Marketplace. This is done through AppHub. You’ll of course have to register, for which there is a small fee. Luckily for a short time there are tokens available for Australian developers willing to sign up for the local community initiative. Register here and stay up to date with the latest happenings in the Australian Windows Phone developer community.
The application submission process has had a recent update and it allows you to submit both 7.0 and 7.1 application. You can submit two different versions of your application and Marketplace will handle distributing them to the appropriate handsets. Note however that once you’ve submitted a 7.1 version of your application, you currently won’t be able to update your 7.0 version. Microsoft has confirmed that there is an update in the pipeline for AppHub that will enable updating of both versions sometime in October.
The recent updates also brought two new features which should help with the development of your application:
- Beta Testing (arrow in Figure 7): This allows you to specify a number of Windows Live Ids of users willing to test your application. At this point there will be no testing of your application by Marketplace but they will administer the distribution of your application to those testers.
- Private Distribution: This allows you to have your application available in Marketplace but not visible via search. You can forward the deep link to your application to anyone you want to use the application. Note that this will not prevent authorized downloading of your application by anyone who has access to the deep link for your application. Whilst it can be used for deployment of internal enterprise applications, you should still verify the identity of the user before giving them access to corporate data.
Reports and Exceptions
Once your application is available in Marketplace you’ll of course want to know how many downloads you’re getting, how much money you’re being paid and if there are any exceptions/crashes. The AppHub refresh makes all of this information easier to access. For example Figure 8 illustrates the daily downloads for an application – hopefully your application will do better than this one!
You’ll also be able to get a report of any crashes, including full stack trace. This is invaluable in determining where your application is running afoul in the wild.
Hopefully this has given you a quick run through of some of the main features in the Windows Phone 7.5 update. The development tools for this release are now available for download. Here are just a few useful links.
Nick is a software architect and developer with experience across a range of technologies, and has a particular interest in the future of rich client and mobile device applications. Nick is a speaker, author, a Microsoft MVP and owner of Built To Roam.