Microsoft has come with a mobile platform, Windows Phone 7, that departs from its predecessor Mobile 6.5. The development platform is built around .NET, so old native applications won’t run on it.
Microsoft has three goals for Windows Phone 7:
- High personalization through games and applications – games will play a major role
- Help developers to make profit – this is related to the already existing application marketplace
- Advancing the “3 screen + cloud” vision – this means the user should be able to access an application either from PC, TV or Phone. Obviously, the application should be in the cloud to enable such an experience.
Windows Phone 7’s look and feel is departing from its predecessor Windows Mobile 6.x. Charlie Kindel, User Experience (UX) Manager, explained that Phone 7 has been built around end-user experience which made it different from previous mobile solutions from Microsoft:
Different is often good. Especially when it’s different for good reasons. Windows Phone 7 Series is different because we reset everything we were doing to focus on end user experience. This extends directly to the developer platform.
One of the implications is that “previous Windows mobile applications will not run on Windows Phone 7 Series.” Microsoft will continue to work with OEMs who want to create new devices based on Windows Mobile 6.5, but they are very clear that older applications cannot be carried to the new platform without being rewritten. The question is: what manufacturer will create phones for Mobile 6.x?
The development platforms are: .NET via Silverlight or XNA plus Visual Studio 2010 and Expression Blend. That means no native code, no Windows API calls. This makes some developers quite unhappy, as this comment written by user tamberg shows:
Platform continuity was the single most important feature of Windows Mobile. Being able to run code from 2003 on a current phone is more important to our customers than a fancy UI (which Microsoft seems not able to get right anyway). Further, the ability to access hardware specific APIs through P/Invoke has been vital in many of our projects (e.g. to use Bluetooth in the early days). Those advantages have now gone. You just rendered useless years of development work and many thousands of lines of code.
"we will continue to work with our partners to deliver new devices based on Windows Mobile 6.5 and will support those products for many years to come"
You will, I bet. But which device manufacturer will produce such "dead-end" devices?
Time to switch to another mobile OS.
According to some leaked documents, OEM and network operators will have limited access to underlying native API in order to customize the phone. Also, the OS supports multitasking, but it is not clear if background applications will run normally or they will be paused until brought to the foreground. It is possible services to run normally in the background while applications with a user interface to be paused.
Based on the same documents, ArsTechnica considered that Phone 7 is going to be a locked-down platform more similar to iPhone rather than Android:
There are also implications that the platform will be reasonably locked down—like iPhone, unlike Android. The documents state that all applications (both regular apps and the OEM special software) will have to run in a "security chamber," and will be installed in a dedicated "user store" (which may mean that access to the rest of the storage is off-limits). Adherence to the managed APIs and limited set of native APIs will be verified by Marketplace to ensure developers only do that which is documented and supported; again, very much like the situation for the iPhone. Whether applications will be available without the Marketplace system (and what capabilities such applications might have) is another unknown.
Developers have a website with various tools, guides, documentation and code samples helping to create Phone 7 applications. The Phone Developer Tools CTP package contains the following: Visual Studio 2010 Express for Windows Phone CTP, Windows Phone Emulator CTP, Silverlight for Windows Phone CTP, and XNA 4.0 Game Studio CTP. One interesting fact is that Windows XP is not supported, only Vista and Windows 7 are.