Windows Phone 7: Peeling the Mango next major release of the Windows Phone OS is still codenamed “Mango”. This morning (New Zealand time), at the MIX conference in Las Vegas, Microsoft has taken the wraps off some the developer details underneath new features in Mango.

The position I take on Mango is this: everyone knows there are features missing from the current version of WP7. Features like multitasking, camera streams, sockets, and more. It would be crazy for Microsoft to not add these high-demand features to WP7 as quickly as possible. This morning we can see that they are certainly adding these features, they’ve thought them through very carefully, and they are further along with implementation than many people predicted.

Update: Here’s a great video from Channel 9 that discusses and demonstrates a bunch of these new features.

So what did we see? Here’s a run-down:

Multitasking: We saw Joe Belfiore demonstrate fast app switching at Mobile World Congress a few months back. Now we’ve seen how developers can take advantage of this, along with some seriously awesome managed background tasks to enable devs to keep apps connected and up to date, without the impact on memory and battery life that is so obvious with “full” multitasking. I can tell you after spending a month with a decent Android phone, one of my most-used apps was a background app killer. Not so with WP7.

IE9 for Windows Phone: HTML5 compliant, GPU accelerated. Finally a first-class mobile browser to consume all of those sites our iPhone loving friends have built.

Additional sensor and runtime access: Additional sensor APIs are being added in WP ‘Mango’, including camera stream access to enable augmented reality scenarios, compass and gyro APIs to enable more advanced detection of motion, and the ability to use socket connections to move beyond HTTP. These are all so “duh” obvious that I won’t go into any more details. Watch the keynote and additional sessions at MIX.

Structured storage: Personally, I’ve been totally happy with serialising my own objects, but for people desperate for a database, Microsoft are adding the ability to package and deploy SQL CE databases onto the Windows Phone platform, and use LINQ to SQL to access the data. Additionally, devs will be able to use contact and appointment APIs to access the user’s address book and calendar on the device (provided the user consents to providing access to the app).

XNA/Silverlight integration: You may not see this now, but this is an absolute killer feature. Any XNA developer will tell you that rendering text (e.g. highscore tables) to the screen is just ugly legwork. With Mango, Microsoft will be breaking down the walls separating Siverlight and XNA, making it easier for developers to build 3D-modeled applications that can overlay Silverlight forms and strings. Think about it: Silverlight’s brilliant XAML layout language, binding, and simple internationalisation story, on top of XNA’s productive 3D environment. Is this not the most developer friendly game platform on the market today?

Tooling investments: Microsoft also demonstrated additional capabilities around the Profiling tooling (initially demoed at PDC10 by Scott Guthrie), as well as showing off new enhancements to the Windows Phone Emulator, allowing developers to manipulate sensor data (i.e., GPS, accelerometer) into the emulator. Slick stuff.

Custom Ringtones: Buried among the 1,500 new API calls are new options for developers to save audio files as custom ringtones. I’m thinking this is a large nod to carriers who make stupid amounts of money from $5 ringtones.

Multiple, and local live tiles: Previous to Mango, the only way to update a custom tile was via a server-based push notification. Not tricky, but a lot of infrastructure overhead for simple apps. Mango now allows developers to update tiles locally (from the aforementioned background agents), and also allows more than one live tile per app. A demonstration showed multiple flight statuses from a travel app, each in their own tile.

So what?

If any of that interests you (and I reckon any self-respecting developer should be interested), have a look at the completely free tools at It’s worth a crack right?


  1. “I can tell you after spending a month with a decent Android phone, one of my most-used apps was a background app killer. Not so with WP7.”

    I have to ask “Why?”.

    1. Because the apps on the phone would consume 75% of the memory, resulting in a significant, noticeable performance drop. Killing the running apps in one hit was fast and easy, and meant the phone would come back to full performance.

  2. Mmmm.. depends on the apps of course, but I’ve been using my crusty old HTC magic for nearly two years now, and since v2.1 have rarely used a task killer.

    The android multi-tasking and memory management model means that it makes a prety good job of cleaning up after itself.

    I don’t doubt that killing off all runing apps makes an immediate noticable difference, but my experience has been that letting the thing manage itself (within reason – a problem app can be a pain)works absolutely fine.

    Just because an app is listed in ram or as a background process or service doesn’t mean its a problem.

    The OS is built to free resources as required, but optimises the use of RAM much the way Linux or SQL server or MS exchange do, it uses it as cache until it’s needed.

    There is no doubt though that Task managers are useful utilities, to show you what is actually going on your device and to kill the occaisonal badly behaving app.

    (Like the Facebook v1 app that nailed open the data connection.)

    There is also certainly legitimate criticism that the SDK makes it easy to write sloppy and badly behaved apps.

    Having said all that there is a minimum level of resources on any system you need to run and on older memory constrained devices like the G1 task killers really were a necessity.

    But, on these newer more powerful units,not so much.

    For comparison, I’d be interested to see if next time you have an Android phone for an extended period, you just use it and not worry about chasing resources and see what happens.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.