A cinema in Manchester has formed the unlikely venue for a full-day drill-down on developing for Windows Phone 7, sponsored by Microsoft but organised by UK .NET community group DeveloperDeveloperDeveloper (seriously).
It proved an insightful day. Insight number one was that only 100 or so developers turned up, to a venue that holds three times that many. Beyond the most dedicated Microsoft circles, there is little sign of pent-up demand for Windows Phone 7.
Mark Mason, chief executive of mobile application developer Mubaloo, said as much in a recent press release: "Apple iOS and Google's Android are currently the only two platforms that clients ask Mubaloo to design applications for, apart from the occasional BlackBerry app."
It does not help that the most natural market for Windows Phone 7, Microsoft-platform businesses, is not targeted by the initial release. Introducing the Manchester event, Andy Wigley, from Microsoft mobile specialists APPA Mundi, explained that Windows Mobile 6.5 remains Microsoft's business smartphone platform. Windows Phone 7 is aimed at consumers.
Nevertheless, the indications are that Windows Phone 7 will be a decent device. Although Microsoft is not making its own phones, strict requirements imposed on OEM partners will ensure a consistent platform, including a capacitive touch screen - though some devices will also have keyboards - GPS and accelerometer, hardware accelerated DirectX graphics, at least 256MB RAM, and three hardware buttons, these being Back, Start and Search.
The user interface is distinctive, with tiles that update dynamically with current status or other information, and the concept of hubs - People, Pictures, Games, Music and Video, Marketplace and Office - that organize features and apps into logical sections.
But how is it for developers? The official line is that third party applications must be built in one of two .NET platforms, Silverlight or XNA. Silverlight for Windows Phone is a superset of Silverlight 3.0 and is for general apps, while XNA wraps DirectX for hardware-accelerated games. The .NET Compact Framework lives on under the covers, providing the .NET runtime for both Silverlight and XNA.
The tools are Visual Studio 2010, including a free Express version, supplemented for Silverlight by the Expression Blend design tool, also available in a free edition. Although you can build apps for free, developers have to buy a subscription for the Windows Phone marketplace if they wish to deploy applications, which have to be approved by Microsoft for conformance to published guidelines.
The tools are easy to use, with the exception of Blend, which is powerful but with a convoluted and difficult user interface, and developers I spoke to said it was quicker to build applications for Windows Phone 7 than for Windows Mobile.
Existing Silverlight apps ported easily, with most of the effort going into optimization. On the games side, XNA's combination of DirectX and .NET makes it a strong and approachable platform for casual games, with the advantage that XNA also works on the PC and on Xbox 360.
That said, there are complications. Third party apps cannot run in the background, and are killed, or "tombstoned", whenever the user switches to a different task. Well-behaved applications must give the illusion of continuous running, which means saving state on exit and restoring it when reactivated. Even this rule has an exception. Microsoft states that apps launched from the Start menu must open as if newly started, so developers have to deal with different kinds of reactivation.
An app may be killed even when the app itself launches another task, such as selecting a contact or opening the web browser. The reason, we were told, is to maintain performance. It is intriguing that Microsoft has u-turned on this. A common complaint about early Windows CE devices was that apps lived too long; now they are killed constantly.
There are other limitations in the first release of Windows Phone 7. Curiously, Microsoft has not included the SQL Server Compact Edition database, which means developers have to roll their own database management or use a third-party native Silverlight solution such as Perst. Another frustration is that XNA and Silverlight cannot be combined in a single application.
Another question is whether managed .NET code is really sufficient for every kind of application. If it were, you would have thought that Microsoft itself would have used it for the built-in applications, but this seems not to be the case. In addition, Adobe has a special pass to develop Flash for Windows Phone 7 in native code.
The rumor is that other companies are also getting special privileges. The Spotify music service has been announced for Windows Phone 7, but it is hard to believe that the music will stop whenever the user switches task. One attendee told me that the Windows Phone 7 native code framework is called Iris, is based on what was used for the Zune music player, and is used by Microsoft as well as by Spotify. He added that major games developers will also be allowed to use native code.
Rumors, rumors. If Microsoft wants to attract the best developers, some bending of the requirement to use only .NET code does make sense. Another insight. ®