Learn Windows Phone 7 Development in 31 Days
Welcome to the 31 Days of Windows Phone 7 Development (Mango Edition). Each day we are going to see a topic on Windows Phone 7 Application development. These topics will range from level 100 to level 400 for Novice to Professionals to gets ideas on Windows Phone 7 application development and deployment to the Market Place with ease, to pass all the certification check lists that should be followed.
Day 1 – Getting Started with Windows Phone 7
This article is going to be the first of the 31 days series on Windows Phone 7 Development, in this article we are going to see what Windows Phone 7 is and what are the hardware and requirements for developing a Windows Phone 7 Application and also we are going to see the software development kit used to develop the application with Visual Studio 2010 IDE.
Windows Phone 7 applications are build on existing tools from Microsoft like Visual Studio 2010 IDE, Expression Blend, Silverlight and XAML code. Windows Phone 7 provides 2 types of frameworks upon which we can develop the applications and the types are as follows
Silverlight Framework – With this framework we can develop event based XAML applications for enterprise and consumer based application development. XNA Games Framework – With this framework as the name itself suggest we can develop rich games (2D and 3D) games targeting the entertainment category.
With Windows Phone 7 we can develop application accessing the framework internally, though we have restrictions over developing applications targeting the native application development which is bit disappointed. We can develop native application with Windows phone 7 using VC++ but with some restrictions over using multi tasking and its features. Also we can make use of the .Net Compact framework which has support over the Windows Phone 7 Development.
Before we start with the development process of the Windows Phone 7 applications, we need to have a look at the requirements to set up the development environment. Microsoft has suggested with the software and hardware requirements which needs to be considered when we start developing the application. The hardware requirements are mainly considered for the device manufactures to certify the hardware required to have a better performance for the application that runs on the devices. As far as the software development considered we need to have the latest updates running so that we can make use of the framework more effectively to have a better application developed using the latest features.
Initially it was Windows Mobile (6.0, 6.5) where Microsoft provides developers to play around with the development of applications for mobile. We need to first know that Windows Mobile and Windows Phone 7 are 2 different platforms even though both run run on top of the CE Kernel as far as API’s are concerned. Windows Mobile and Windows Phone 7 doesn’t have support over each other to run the applications between the different platforms. Hardware Requirements:
Below are some of the hardware requirements the device manufactures to take care of while designing the device. These are the minimum requirements that should be considered and can have variations to have a better performed device. As a developer we will not have much of the control over these requirements, but developers can target the application development based on considering the device with the hardware requirements specified. When considering Windows Mobile we can say Windows Phone 7 have higher configuration for device manufactures as below.
Multi Touch (4 Ways) Capacitive screen DirectX 9 Acceleration Accelerometer Global Positioning System(GPS) 5 megapixel camera with flash 8 Gig Bytes Storage 256 MB of RAM Button Controls
Description Display WVGA (800 x 480) Should have a minimum resolution of 800X480 for providing a good user interface. Multi Touch (4 Ways) This is for providing option for multi user processes like accessing shared portion, used for games etc DirectX 9 Acceleration This is specifically for the GUI based processes, like games, rich user application to maintain the standards. Global Positioning System(GPS) This is for providing location specific processes like GPS navigator, to integrate with Maps etc. Accelerometer This is for providing the proper acceleration of the device normally used in games, location-based applications. Compass This is for detecting the position like North, South, East, and West. Light This is for using like a Flash light in the phone. Also we can enhance to use it across some external application for flash Camera This is for taking pictures that can be stored and accessed online, also to integrate with the social networking sites like Facebook, Twitter etc. Button Controls(Up, Down, Side buttons) This is for providing the functionality that normally all phone will have like attending the call, navigation etc.
Network Connection This is for providing the connectivity process like normal phones to make calls, text and similar purposes. Data Connection This is for providing the functionality of internet to the phone with the technologies of 2G, 3G etc.
256 MB of RAM This is the base requirement for a windows phone 7 manufacturer because 90 MB of memory can be used by the application our of 256Mb. This is strictly followed if fails then the application will fail in the Market Place 8GB flash storage This is for the storage among the applications
The items mentioned above are the minimum requirements, so a device can have maximum capacity to get a better performance. When we consider on setting up the development environment for the Windows Phone 7 Software Development Kit we need to consider below requirements to setup the software. Windows Phone 7 SDK is supported with one of the below OS with all the versions except the express version i.e. the Starter Versions
Windows Vista (All Editions) Windows 7 (All Editions)
Some of the OS which are not supported with the Windows Phone 7 SDK installations are as below.
Windows XP Windows 8 Windows Server Windows Virtual Machines
Also we need to have the below requirements on setting up the hardware for the development environment
Minimum 4GB Hard disk Space Minimum 3GB Ram DirectX 10 or above capable graphics card with a WDDM 1.1 driver
Once we are ready with the above development environment, we can install the Windows Phone 7.1 SDK on the machine. We need to note that if the older version of the Windows Phone (7.0) is available on the environment then we need to remove the older version before installing the newer version on the same environment. Windows Phone SDK 7.1 enables developers to target both Windows Phone OS 7.0 and Windows Phone OS 7.1 platforms. Applications that target Windows Phone OS 7.0 will run on both Windows Phone OS 7.0 and Windows Phone OS 7.1 devices. Applications that target Windows Phone OS 7.1 will not run on Windows Phone OS 7.0 devices. Software Requirements:
Once we are ready with the hardware setup of the environment we need to install the required software to start with the development of the Windows Phone 7 Applications. To start with Microsoft has provided the all the required and supported software with the SDK, which we can just download from the link below. Windows Phone SDK 7.1
This SDK will install the development environment providing options for the developers to develop applications and games on both Windows Phone 7.0 and Windows Phone 7.5 The above Windows Phone SDK 7.1 installs a list of products which are in the list below.
- Microsoft Visual Studio 2010 Express for Windows Phone
- Windows Phone Emulator
- Windows Phone SDK 7.1 Assemblies
- Silverlight 4 SDK and DRT
- Windows Phone SDK 7.1 Extensions for XNA Game Studio 4.0
- Microsoft Expression Blend SDK for Windows Phone 7
- Microsoft Expression Blend SDK for Windows Phone OS 7.1
- WCF Data Services Client for Window Phone
- Microsoft Advertising SDK for Windows Phone
Once the installation of the Windows Phone 7.1 SDK is done we can see new templates added to the Visual Studio 2010 IDE (Silverlight for Windows Phone 7 and XNA Games Studio ) we are well set to start with the application development.
Windows Phone 7 Architecture:
The architecture of Windows Phone 7 is made on top of 4 main components of which each component have internally many items to be seen in depth which we will see in our upcoming articles. To have a quick look below figure gives some idea on the architecture of the Windows Phone 7
Image Reference – Microsoft MSDN
The 4 main components on which the Windows Phone 7 Architecture lies are as follows
- Runtimes – Silverlight and XNA framework provides with an excellent environment for the developers to build a much optimized application.
- Tools – Visual Studio IDE, Expression Blend and the tools provides the developers with flexibility to design and develop user rich applications.
- Cloud Services – Windows & SQL Azure, Notification Services, Location Services provides developers with usage of data across the frameworks with support over other 3rd party services as well.
- Portal Services – Windows Phone Market Place provides developers with upload and certifying the application to the market.
Where Silverlight Framework fits in Windows Phone 7 ?
Silverlight is basically used for light weight business applications and normal 2D games development using the XAML (Extensible Application Markup Language) Programming. Developers will have much flexibility using this framework along with much used UI tools like Microsoft Blend, Adobe Photoshop etc. to create a vector based process that can be easily transported to XAML. This is really a not new topic compared to the XNA development since Silverlight is already in market for developing rich browser applications and it provides an option of creating applications with XAML which is highly advantageous of creating a vector based application. So it gives the developers on full control of the layout, design, structure and also the data binding components. Silverlight application development for Enterprise or Consumers looks like the image as shown in the screen below.
Where XNA Framework fits in Windows Phone 7 ?
XNA is basically used for developing rich games where the framework comes with a game engine (with 3D) which helps the game developers to provide rich 3D games. Unlike Silverlight XNA is not much known across the developers since it has been used to develop Xbox games using Managed code. Why Microsoft provided the XNA engine with the windows phone 7 is mainly because of integration of Xbox live integration with Windows Phone 7. XNA engine provides the rich user experience that ever y developers take advantage in providing next generation games with 2D and 3D game loop engines. XNA Game Studio application development for the entertainment or for the enterprise looks like the image as shown in the screen below.
How Windows Azure Cloud fits in Windows Phone 7 ?
When we create an application with Windows Phone 7, we need to save some data for future retrieval which is going to be bit tough here. Windows phone 7 doesn’t provide the direct connectivity with database to save the data. To overcome this we need to use AZURE, Windows azure provides the platform of Cloud Computing in storing and retrieving the data from different locations using Windows Phone 7. Say today we created a small application in windows phone 7 using Silverlight. Day to-day when the development increases and finally we get an excellent product, then the number of user visit gets increased which eventually requires an enterprise database to save the details. So at this case we can use the Azure availability of extending the size of the database as per the need since it maintains in the cloud. If we use Azure for the development of the Windows Phone 7, Microsoft has provided with an additional advantage of using Bing Maps which is given free of cost only for the windows phone 7. Additionally Push notification services are also been provided in the cloud where we can use it to send notifications to the mobiles as Text which is eventually a bitter process for the business needs. Windows Phone 7 Development Life Cycle:
We as developers of windows phone 7 we need to register with Windows Phone Dev Center here and giving our Windows Live credentials which acts like a single sign on for all the process which Microsoft provides. The main idea behind registering with Dev Center is once registered and developed an application in Windows Mobile phone 7 we can use our registered hand set as a physical device tester to test our application. Dev Center provides developers with up to 3 devices can be registered and test it in real-time. Now let us jump through the steps involved in the application development life cycle of the windows phone 7. Steps to register to Dev Center:
Step 1 – Register with Dev Center As mentioned above Dev Center is the Microsoft place where we need to register and use for testing the application in real-time. Please follow the below steps to register in Dev Center.
Step 2 – Market Place Certification procedures. Once we are registered with the Dev Center, before proceeding with the development consider reading the certification process document in order to avoid rejection of the product at the market level. Please refer to the below link for the Application Certification process checklist and validation. http://go.microsoft.com/?linkid=9730558 Once the development is completed and the validation process is checked and passed by the Market, then the application will be available online for downloads.
Microsoft reserves the rights to give 5 free applications downloads and unlimited number of paid application downloads. Microsoft charges an amount of 99$ for the market place registration to submit the application developed. And for each download the Microsoft takes 30% of the fees paid and the developer will get 70% for his development charge.
We have seen in this article the complete overview on What Windows Phone 7 development is and the hardware and software requirements for developing the Windows Phone 7 Application in detail. In our upcoming article in this series of article we are going to see some of the interesting features of the Windows Phone 7 development.