At Microsoft's MIX10 web developer conference, a series of presentations, question-and-answer exchanges and briefings are pulling into the light more and more details of Windows Phone 7 and the development environment.
Here's some of the news that emerged.
1. If you're already using Microsoft's core Windows and web development tools and frameworks, you're qualified to start creating Windows Phone applications
Microsoft has just released for Windows Phone free versions of the newest releases of its primary developer tools: Silverlight 4 toolset for graphical, event-driven, media-rich web applications; Visual Studio 2010; the beta version of the Expression Blend 4 visual design toolset; and XNA Game Studio for games.
With that announcement, "Overnight, a half million Silverlight developers became Windows Phone developers," says Brian Goldfarb, Microsoft user experience platform manager.
Microsoft's intent is to enable most of its existing Windows and web development communities to have the capacity to start building Windows Phone applications at once. Whether they will actually build Windows Phone software remains to be seen. But if the Windows desktop and web communities decide to leverage their existing expertise to build or adapt applications for Windows Phone, it could dramatically reverse the fast declining mobile market share of the previous Windows Phone releases.
Expression Blend 4 beta release is separately downloaded at present.
All the other tools are available in a single download.
2. Though Windows Phone 7 supports multitasking, due to the underlying Windows Embedded CE R3 kernel, developers won't have access to it in the initial release
Microsoft itself makes use of multitasking in the operating system. For users and developers, an application pauses when the user switches to another program, and the first one could be shut down by the operating system to reclaim CPU or memory resources.
"This was not a quick decision," says Charlie Kindel, partner group program manager for the Windows Phone 7 Developer Experience. Microsoft looked at what it could take to create and use background processing on the phone for developers and users, and the potential impact on the all-important user experience. The conclusion: A lot of infrastructure would have to be built and a lot of added complexity would result.
At the same time, Microsoft executives say the Windows Phone 7 platform provides a range of integrations and services for applications that provide the kind of multitasking users want. For example, if you start a music track on the WP7 device, it will continue playing if you switch from the music application to another one. The "live tiles" in the UI, the intelligent rectangles and squares that can be linked to phone or cloud-based services and applications, coupled with Microsoft's free push notification service for Windows Phone provide a way for developers, their apps and services to continually notify and update phone-based programs, for example, with the latest scores from the NCAA tournament.
The goal, Kindel says, is to ensure "We control the quality of the overall user experience."
"We'll address multitasking when we do the next turn of the crank [the next release of the OS]," he says. But that probably won't mean unfettered access to multitasking features.
Kindel mentions he bought his daughter a "rival smartphone" and after a few days she told him "we need to take it back, the battery only runs for three hours." Kindle concluded that she had downloaded a social networking app that multitasked: it opened and maintained a constant connection, and data exchange, which rapidly ran down the battery. To his daughter, he says, this wasn't a "bad application" but a "bad phone."
Microsoft doesn't want there to be bad Windows Phone 7 phones.
In broad terms, the argument is similar to that made by Apple, whose iPhone OS also has multitasking and also restricts its use by developers.
3. Native applications are not permitted on Windows Phone 7 devices
All Windows Phone applications are what Microsoft calls "managed code" and will execute within one of two runtime environments: XNA Game Studio for games, or Silverlight for all other applications.
With Windows Phone 7, Microsoft is resolved to provide users and phone developers with a highly consistent operating system. One part of that consistency is a standard, unchangeable hardware specification, jointly developed with handset and mobile carrier partners. A second element is the overall design of the primary user interface, the way the user interacts with his phone, its content and applications.
The third part is a variety of "limitations" (some of these may change in future Windows Phone releases) that serve Microsoft's overriding priority of ensuring a fluid, highly personal, reliable, problem free user experience of Windows Phone devices. The banishment of native applications is one. Another is that applications can be installed only via the Windows Marketplace service: there is as yet no "demand loading" of software.
For some developers on the older versions of Windows Mobile (now called Windows Phone Classic), the managed code environment will chafe. One developer commenting on the official Microsoft Windows Phone Developer Blog noted that it seems likely he will no longer now be able to use unmanaged or "unsafe" features in .NET where doing so yields performance benefits. (See the blog here and scroll down to the "Posted on: March 15, 2010 at 9:05PM" by Pavel Minaev.)
4. Developer access to Microsoft SQL Server Compact, a free SQL Server embedded database, is not part of the initial release, so your database options are limited to start with
Microsoft is using SQL Compact as part of Windows Phone to support various capabilities in the operating system, according to Microsoft's Kindel. The database enables such things as sharing data between some programs in the "hubs," which provide a set of common tasks to groupings of content and applications, such as photos, music and Microsoft Office applications.
Kindel says developers can create "isolated" local storage based on XML files and a data engine on top of them. The other alternative is cloud-based storage: Several MIX10 demonstrations have underlined the ease with which developers can incorporate a wide range of resources in Azure, Microsoft's cloud platform. One of those resources is SQL Azure, a cloud implementation of SQL Server.
5. Windows Phone 7 as the "cloud phone"
SQL Azure is only one of the cloud services that Microsoft wants to exploit with Windows Phone 7.
Microsoft defines three classes of cloud services. First is your code running on a server behind the firewall and exposed as a web service. "It's Web 2.0 stuff," Kindel says.
Second are third-party web services that offer an API. A good example is Twitter. Kindel notes there is a flock of Windows-based Twitter clients, all visually very different but all ultimately using the API provided by Twitter. Microsoft supports this class of cloud service with Windows Communications Foundation, standards like SOAP and REST, and Microsoft's general purpose query facility, part of the .NET Framework to be incorporated directly into an application, called Language Integrate Query, for accessing any information source.
Finally, there are Microsoft's own cloud services, specifically for Windows Phone. Initially, four of these are available: push notification, location (supporting GPS, assisted GPS and Wi-Fi based coordinates), Xbox Live integration, and application deployment and Windows Phone Marketplace.
6. Windows Marketplace is intended to be the sole means of finding and downloading phone applications, but Microsoft is promising "alternatives" that will let an enterprise customer distribute applications to "private groups"
Microsoft is promising more details on the alternative software distribution channels later in the spring. There's no hint these would be secure, private areas of the Marketplace site, or a behind-the-firewall deployment.
Also, with the initial release of Windows Phone 7, users must explicitly take action to enable application updates. Microsoft executives hinted this process would be automatic in the future.
7. "Transparent" and fast application certification
Microsoft is promising a simple, clear, fast and open process for certifying Windows Phone applications and deploying them to Windows Phone Marketplace. Once debugged, applications are submitted and validated. "We crack the app open and inspect your I/O code automatically," Kindle says. "We do additional type checking to improve CLR [Common Language Runtime] performance and to ensure you're not breaking the [application's self-contained] sandbox."
Then the application is certified and signed, transferred to the deployment service and appears on Marketplace. On the phone itself, Marketplace is now a hub with a set of features, common navigation metaphors, and tasks for researching, finding, buying and downloading applications and games.
With a couple of lines of code, developers can offer users a "try before you buy" trial of their software. After a given time period, or after reaching a certain level in a game, users can then pay the purchase price and have full access.
8. Battery performance is still an unknown
Microsoft hasn't released data, and no production phones are available (one blog reported seeing a Samsung-branded handset used in one MIX10 demo). But Kindle's own prototype phone was still responsive at the end of a long Day 1 at MIX with constant demonstrations.
Officially, Microsoft says WP7 is carefully engineered to minimise battery use. According to Kindel, all of the user interface is accelerated not by the application CPU but by the separate graphics processing unit, which is required in the Windows Phone 7 hardware specification. Other features like the push notification service were designed to use power intelligently and minimally, he says.