The details that Microsoft is sharing about the Windows 7 phone application platform reveal a slightly schizophrenic and almost exclusively consumer-focused system. On the one hand there's all the power of Silverlight with optimisations for mobile, plus XNA for rich game development, free push notification and location services available to all apps, integration of apps right into the relevant hubs on the phone and powerful (and again free) development tools with an excellent emulator to build apps for the devices. On the other hand the message about enterprise deployment is confused, Microsoft isn't ready to say whether you can tether the phone as a modem, while copy and paste is restricted to smart information like addresses and phone numbers that will act as links that offer appropriate actions like dialling or navigating to them. However you won't be able to simply copy information from an email and paste it into an Office document or a text message.
The free Windows Phone Developer Tools walk you through building a game, in Silverlight and XNA, but more business-oriented features — and copy/paste — aren't in this version of Windows Phone
The version of Silverlight in the Windows Phone app platform has all the APIs from Silverlight 3, including LINQ, and what corporate vice president Scott Guthrie calls "quite a bit of Silverlight 4" like access to the webcam and microphone. There are some Silverlight 4 features that don’t make sense for a mobile device (like printing) and some specific features added for Windows Phone. Rendering is automatically partitioned across the areas of the processor, the cache detects what's changing and an animation storyboard run in an separate thread should mean smooth animations; none of these require extra coding, they're provided automatically by the program. There's no access to native APIs directly and although Guthrie says the CLR in Windows Phone is based on the Compact .NET Framework and more advanced than what Microsoft has previously shipped in Windows Mobile, Microsoft is keen to isolate developers from the complexities and version issues that have beset Windows Mobile programming in the past. The Windows Phone user experience actually uses SQCL Compact Edition is on the device, but that's not available to third-party apps in the initial release.
The fragmentation of current Windows Mobile devices, which Larry Lieberman, the senior product manager for the Windows Phone developer experience calls a "huge issue for us today, an absolutely devastating issue" is gone. There's only one platform to code for, and initially that's the Qualcomm Snapdragon processor; while Microsoft won't discuss what might come after that in the future because it has "partner implications" (which we interpret as negotiations continue on what other chipsets might be supported), if another processor comes along it won’t affect the code you write.
There are only two screen resolutions to deal with — WVGA first and HVGA later — and Microsoft promises an easy way to target apps at either or both (which will be simple with vector-based Silverlight, though less so for XNA games). Everything else will be the same and Microsoft is taking steps to deal with lower-level driver issues. "We have we have substantially higher driver requirements; in some cases we are even writing drivers ourselves where we hadn't in past where they're most important, like graphics," Lieberman told us. Developers get access to the various sensors on the platform including accelerometer and compass, but in the initial release not the proximity sensor (as with many of these restrictions it's a question of what Microsoft has time to make available).
Applications can store their own information in isolated storage and they can access the contacts, music and photo library through 'pickers'. If you want to exchange information between applications, Microsoft is suggesting developers do that through the cloud and in the initial version of Windows Phone you can't write your own pickers. You can't replace the on-screen keyboard either.
When users switch away form third party apps, they will be paused and Windows Phone development manager Charlie Kindel says that "the system will probably reclaim resources from your app so In this release you cannot write code that runs in the background". If you give users a way to play their music from your app they won't stop when they switch away from it, but if you switch away from a navigation app you'll lose your route Kindel told us. This is a deliberate decision to protect battery life; according to Scott Guthrie it is a multi-tasking OS.
The answer on enterprise deployment is yes, no and maybe; having initially felt it wouldn't be able to get the work done for this version, Microsoft got enough feedback from enterprises that they would want a way to distribute apps without putting them into the Marketplace (currently the only way to get apps onto the phones). That's now under consideration and the Windows Phone team is hoping to have more details in "a couple of months". The deployment tools would have to be more sophisticated than simply copying the XAP files to the device; when apps are submitted to Marketplace, says Kindel, "we crack the app open and inspect the io code of the app in a automated way to ensure that it's not doing things that would break out of the sandbox. As part of that we do some things would normally be done in the CLR on the device and that allows us to improve performance of the CLR".