Sunday, December 26, 2010

Know about Windows Phone 7 Internals

Earlier I have posted an article titled “Intro to WebSockets” from the Chennai Geeks Techmeet-3. This is another topic discussed at the meet – Windows Phone 7 Internals. The talk was delivered by Balaji Damodaran from Thoughtworks. He gave an overview about the internals of Windows Phone 7 and some of the interesting facts about WP7. Note: This post is not properly structured. Posting the contents from the talk as it was delivered for the benefit of all.

Windows Phone 7

Windows Phone 7 (WP7) Facts

  • WP7 applications are developed using Microsoft XNA & Silverlight. Microsoft XNA is a set of tools provided by Microsoft for Xbox game development. Silverlight is a framework for building rich internet applications. WP7 supports Silverlight 3.
  • WP7 phones will have three buttons – Back, Home, Search. (Apart from Power, Volume Up / Down)
  • WP7 features a new user interface with its design language named Metro. All applications should follow Metro design and typeface.
  • WP7 phones allow customizing themes to a greater extent. Another interesting feature is its “Live Tiles”.
  • WP7 applications can use Panorama & Pivot controls. With Panorama control, your application can have multiple screens spanned across a single background. If you are an Android user, you can compare this with the home screen of your Android with wallpaper & multiple pages. Pivot control is used for creating tabbed style applications. More about these controls here.
  • WP7 does not have any local data store.(Android users can use SQLLite for storing the user data). All the user data can be stored on local files or on store it on the cloud and stream it via web service. If you want to store settings data, you can store them on the local file system.
    This is a major drawback when compared to Android.
  • Silverlight has good support of Web Services. Few notable things regarding web services are: 1. Web service calls are always asynchronous. 2. Proxy can not be generated on the fly. 3. Custom bindings are not supported. However, Silverlight’s competitor Adobe Flex offers dynamic proxy creation and custom binding.
  • Silverlight supports three modes of data Binding – One Time, One Way, Two Way. More about it here.
  • Application Bar can have a maximum of four buttons and all the buttons should follow Metro UI theme.
  • Application Lifecycle.
    • No multi-tasking. (This is quite weird as the previous versions of Windows mobile used to support multi-tasking).  If you are getting a phone call while you are using an application, your application will not run in the background. The application will be deactivated and the phone call will be activated. This process is called Tombstoning. Its the responsibility of the app developers to save the state of the application whenever the application is tombstoned.
    • Launchers & Choosers can be used to launch other applications from your application. Launcher will not return back anything from the launched app. Ex: Call. If you want to make a call from your application, use launcher. Chooser will return back a handle to the application. Ex: Camera. You can launch the camera app from your application and get back the photo taken.
    • To get a complete understanding the application lifecycle, execution model, etc, refer to this: Part1, Part2, Part3.
  • WP7 provides location services using Bing maps.
  • WP7 has support for Push Notifications.
  • To avoid the popular fragmentation problem, Microsoft has chosen to take complete control over the OS updates and the device requirements.
  • Finally, Windows Phone 7 is considered to be a competitor for Android and not iPhone. iPhone operates on a different model with single hardware. “The WP7 OS isn’t perfect but aside from the lack of apps, it’s competitive today” - AnandTech.

Impressed with the features of Windows Phone 7? What are you waiting for? Download the SDK (its free) and start playing around with it. No support for Mac dev yet.

-- Varun

No comments:

Post a Comment

google-site-verification: googlea4d68ed16ed2eea6.html