Monday, March 22, 2010

Windows Phone 7 - A party pack of sweets for developers

They are playing advertisements for Pascall's Party Pack on TV at the moment. The tag line is "All sweets you love, and one you can't stand." That pretty much sums up Windows Phone 7 for developers. Lots of goodness with a few things that may leave a bad taste in your mouth.

Despite the name, Windows Phone 7 Series is not a successor to Windows Mobile 6.x. Instead the name is a marketing nod towards Windows 7. Although both WP7 and WM6 are based on Windows CE, there is no resemblance at a higher level. From a user point of view, WP7 is closer to the iPhone than to WM6. A more accurate name would be Windows Phone 1.

After far too much time reading, watching and playing, here are my thoughts on WP7 as relates to development:

Tasty:
  • Development is done in c# and Silverlight/XNA. While native code would be nice, C# is easier to get into than Objective C. I haven't used either Silverlight or XNA previously but they look a lot more promising than the XP era Windows Forms used by Windows Mobile.
  • The tools are much better than those for the iPhone, and free
  • Push notifications look at lot easier to do than on the iPhone
  • Apparently xbox live integration is really good (I wouldn't know)
  • There are metric shitloads of tutorials, walk throughs and documentation (Twitter apps are the new hello world)
  • Games programming looks really, really nice

Meh:
  • The tools don't work well in virtual machines. You can make it work in a Win 7 32bit VM but it will run like a dog. The tools don't work at all in Win 7 x64. If you don't want to install onto your main system, you can try booting from a virtual hard drive.

Yuck:
  • No database support (apparently it's not necessary coz you have xml and the cloud). SQL Server CE is built into the rom, but no access is provided.
  • No multitasking (push notifications only)
  • No access to the file system. Application files all go into Isolated Storage in the app folder.
  • No "sideloading" of applications. Apps can only be installed from the Marketplace, or by Visual Studio
  • No built in file synchronisation (it's this cloud thing again).
  • No Silverlight support in Windows Mobile 6.x (but there is Silverlight for Symbian wtf) and no Win forms support in WP7. I.e. even if your win mobile app was written in c# it needs to be rewritten for WP7.
  • Limited APIs (no access to contacts, no sockets, ...)
  • No native code - no c, c++, pascal etc (and thus no firefox :()

I haven't felt this conflicted since the vfr 1200. Some nice things balanced by some not so nice.

As mentioned, so this is essentially version 1. Some of the issues are planned to be fixed after the initial release (copy/paste, database access).

Links

Microsoft
Windows Phone 7 tools
Code samples
Developer network
Mix10 videos (check out the keynote)
UI Guide

Silverlight
Get started in Silverlight
Get started with Silverlight in WM7

Example apps
Twitter client
Another twitter client (Scott Gu)
Labyrinth
Sqlite database

Blogs
Artificial Ignorance
10rem
Mobile development