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 minimize 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.