Windows Phone is the new mobile operating system from Microsoft Corporation and was launched in October 2010. After the initial release, there were a series of updates to Windows Phone with the recent one being Windows Phone 7.5 (Mango).
Windows Phone has the tagline "Put people first", and is mainly aimed at consumers or end users. Windows Phone is the successor to a previous version of mobile operating system from Microsoft known as Windows Mobile. Windows Mobile was an operating system designed around the Windows CE (Compact Edition) kernel. Windows Phone, being a new platform written from scratch, is not compatible with the earlier versions of Windows Mobile, that is, it does not support backward compatibility. So applications written for Windows Mobile won't run on Windows Phone. Windows Phone and Windows CE are just two different mobile platforms available at present from Microsoft.
Windows Phone has a fresh and new user interface called Modern UI , a typography-based design language that is inspired by the transport system.
The biggest problem that application developers for mobile platforms faced was the varied range of development environments they had to adapt to. The mobile development environment was completely different from those compared to either a desktop application development environment or a web application development environment. Though some development environments like Microsoft Platform, which includes developing using the popular Integrated Development Environment (IDE) Visual Studio and languages like Visual C++ or Visual C# were, to some extent, similar.
But, one had to face the challenges of handling different form factors, device capabilities, hardware differences, and other incompatibilities. With Windows Phone, Microsoft has made sure that it provides a common design and a common set of capabilities for devices from many different manufactures. So be it any device from any manufacturer, as a developer we only have one set of design and capabilities to tackle. This makes it easier for the developers to concentrate on their application and not worry about any other nuances.
Microsoft has set minimum requirements for the hardware on which the Windows Phone runs. The hardware requirements are as follows:
The following image from http://msdn.microsoft.com/en-us/library/gg490768.aspx shows the various features a Windows Phone has to offer for both developers as well as consumers:
Windows Phone Application Platform is built on the existing Microsoft tools and technologies, such as Visual Studio, Expression Blend, Silverlight, and XNA Framework. The learning curve for developing Windows Phone Application is minimal for anyone who is familiar with the tools and technologies on which the platform is built. Windows Phone Application Platform provides two main frameworks for development. They are:
The platform itself is made up of four main components. The following figure from http://i.msdn.microsoft.com/dynimg/IC513005.jpg shows the components of Windows Phone Application Platform:
In this figure we have:
Runtimes: Silverlight, XNA Framework, and phone-specific features provide the environment to build graphically-rich applications
Tools: Visual Studio, Expression Blend, and related tools provide developer experience to create, debug, and deploy applications
Cloud Services: Azure, XBOX Live, notification services, and location services provide data sharing across cloud and a seamless experience across the devices a consumer will use
Portal Services: Windows Phone Marketplace allows developers to register, certify, and market their applications
The components of interest for any developer are runtime and tools. Runtime because that's the base on which applications are developed. Tools play another major part in the development experience. Visual Studio and Expression Blend try to enhance the development experience by providing features that makes a developer's job easy while developing. Visual Studio in particular is a well-known IDE, which lets you create, debug, and deploy an application without having to go out of the IDE.
All phases of the development can be achieved staying within the IDE and this is the biggest experience one gets when on this platform. Expression Blend makes visual designing very easy as it allows the drag-and-drop capability on the design surface. When designing in Blend, you just set a bunch of properties and the code is automatically written by the Blend for you.