The Windows Phone 7 developer tools are now available in beta and they are exactly what is needed to change the entire mobile development game.
Microsoft has taken a beating from Apple and Google, to mention just two, when it comes to the mobile platform. However, if you analyse the situation it almost looks self-inflicted - it is not the greatness of the Android or the iPhone that has pushed Microsoft out of the mobile picture but the lack of anything compelling from Microsoft . Now we have Windows Phone 7 and its development system is in beta and there is change in the air.
Windows Phone 7 is a complete revamp of the original Windows Mobile platform. Started back in 2004, scrapped in and restarted in 2008, it missed its slot in 2009 and is now promised for around October 2010 - the project hasn't had a happy time.
However, it is now looking good and has a number of important differences from previous offerings from Microsoft and from other manufacturers.
Windows Phone 7 has a new multitouch interface "Metro" and a new browser based on Explorer 8 code and optimised for the hardware. All of the software will be able to make use of the Microsoft update service. Microsoft is also offering an App Market place and an advertising scheme to generate revenue from ads.
The basic spec for a Windows Phone 7 device includes a 4 point touch screen, DirectX 9 compatible GPU, accelerometer with compass, proximity sensor, assisted GPS, 5-megapixel or better camera, FM radio and 5 hardware buttons. No Windows Mobile 6 phone meets this level of specification and so upgrading to Phone 7 isn't going to be possible. From a developer's point of view the basic platform looks very capable.
As with all Windows Mobile devices, a key attraction to users is the ability to integrate with the desktop and on-line environments. It will take time to see how it all fits together but Microsoft is even suggesting that you will be able to play a game on your phone and pick up where you left off on your Xbox when you get home. Similarly, email, music and general file integration are all supported and make the Windows part of the Windows Phone 7 important for users.
Now the scene is set it's time to look at the real news - the development system. The key fact is that Phone 7 apps are Silverlight apps. The development system creates a new project type in Visual Studio.If you don't have the full Visual Studio installed then you can use the standalone Visual Studio 2010 Express for Windows Phone, which is also included in the download.
Working with Windows Phone 7 in Visual Studio
Creating a new app is simplicity itself. You create the user interface using a usual drag-and-drop editor or you can directly edit the XAML code. There are some controls designed to make fit in with the new interface but additional controls are promised in the near future.
You can then code your application using C# and test the result using the built-in emulator. At the moment only C# is supported but there seems to be no obvious reason why VB or any .NET language shouldn't be capable of creating Phone 7 apps.
Of course to make full use of the new platform you need to make use of the API Framework classes. Although this is still incomplete in the beta, there are classes for geo-location, sensors, radio, imaging and more. Missing are the API for the compass, IPSec, sockets and a few minor features.
The key point is that if you are an existing .NET developer then you are going to find the transition to Phone 7 easy. Existing projects browser and desktop should be fairly easy to convert, resources allowing. What this all means is that not only is Windows Phone 7 development open to serious business, it's also attractive for the casual or recreational programmer. If you have a good idea for a phone app then coding it over the weekend is a very real possibility.
It is often said that it was the availability of the original Visual Basic that turned Windows into the winning desktop operating system precisely because it opened up coding to the "accidental programmer". It could just be that the future of Phone 7 could be affected in the same way. It could be that the future of Windows Phone 7 depends on the weekend programmer doing things that are outside of the box.
In addition to the Visual Studio environment you can also use Express Blend for Windows Phone to create XAML based user interfaces that include animation and other "designer" effects. If games programming is more what you are thinking of then you can use XNA Game Studio for Windows Phone 7. This provides a DirectX based graphics environment that makes creating 2D and 3D games fairly easy and once again if you have an existing XNA app porting it to Phone 7 should be easy.
Microsoft also seems to be serious about getting developers up and running. A series of free Windows Phone 7 JumpStart virtual live class courses are planned for the end of July. A set of pre-production preview phones is also being offered as loan stock to developers (send an email to firstname.lastname@example.org) and a set of test labs are being established in major US cities. Even so, actually getting hold of a Phone 7 looks as if it is going to be a problem for most developers, especially weekend developers for some time - this could be a serious bottleneck.
Microsoft is going to be controlling Apps in much the same way that Apple does. To sell a Phone 7 app you will have to have it approved to be entered into the App Market place. There are rules about content - for example no adult content allowed. The rules about technology seem fairly reasonable and don't restrict what you can build into your app unless it compromises stability or security of the system. For more information see: Windows Phone 7 Application Certification Requirements.
There is also the small question of how effective the advertising network will be at generating revenue.
And of course there is the really big question of how successful Phone 7 will be in the market. A the moment it looks attractive from the user's point of view but, as Apple discovered recently with its aerial and signal strength problems, the project can easily be derailed by small specific problems that are difficult to predict. Some developers also feel that they have put enough effort into Windows Mobile in the past and really don't want to waste any more time on its latest incarnation.
The real issue as far as many potential user are concerned is:
does it look cool enough?
The answer obviously depends on what developers create and at this stage the developer tools look very good - probably the best - so there is no excuse.