Applications for Windows Phone 7 are managed applications that you create by using a version of Silverlight that is based on Silverlight 3 with a few device-specific APIs (which we’ll talk about in much more depth later). You can also create games by using the XNA Framework.
The only way to develop applications for Windows Phone 7 is by using the Windows Phone Developer Tools, which you can download from the App Hub. The Windows Phone Developer Tools include the following tools and frameworks:
- Visual Studio 2010 Express.
- Windows Phone Emulator.
- XNA Game Studio 4.0.
- Microsoft Expression Blend for Windows Phone.
- .NET Framework 4.
So, the Windows Phone Developer Tools includes everything that you need to design, build, and run applications and games for Windows Phone 7 without even owning a Windows Phone 7 device, and it’s all free.
 The App Hub is the official portal for application and independent game developers for Windows Phone 7 and Xbox. In order to distribute your applications through the Windows Phone or Xbox Live Marketplace you will need to sign up for membership and register for a developer account (at a cost of $99), but we’ll talk about that more later.
Installation is in three simple steps, but make sure you do them in this order:
- Download and install the Windows Phone Developer Tools. This contains the tools and frameworks described above.
- Download and install the Windows Phone Developer Tools January 2011 Update. This includes updates for the Bing Maps for Windows Phone Silverlight control, the Windows Phone Connect Tool, and the Windows Phone Capability Detection Tool.
- Download and install the Windows Phone Developer Tools Fix. This contains a fix that enables you to deploy XAP files over 64MB in size to physical devices for testing and debugging.
Other Frameworks and Libraries
Whilst the Windows Phone Developer Tools provides everything you need to develop applications for Windows Phone 7 (and it’s free), as with most Microsoft technologies these tools provide the basic building blocks with the flexibility for you to enhance and extend that framework. To this end, here’s a list of the additional frameworks and libraries that I use the most:
- Silverlight for Windows Phone Toolkit. The February 2011 release is the latest at the time of writing. This is a reduced feature set from the Silverlight 4 Toolkit but includes some great controls such as the Toggle Switch, List Picker, and Long List Selector.
- patterns & practices: Prism. The v4 release (the latest at the time of writing) includes assemblies for Windows Phone 7 and brings commanding and event aggregation to Windows Phone 7 as well as a useful behaviour for text box binding. It does not include the Unity dependency injection container, though.
- Coding4Fun Tools. This is another great library with controls such as About/Input Prompt, Progress Overlay and Time Span Picker, useful value value converters, and another binding helper for text boxes.
I’ll be talking about these libraries and giving detailed usage examples later on. Whilst Prism gives you pretty much everything you need to implement applications that implement the Model-View-ViewModel (MVVM) design pattern, many people are using the MVVM Light Toolkit by Laurent Bugnion; the Event-to-Command implementation is super useful.