Windows Phone Scenarios Map

image

The Microsoft Windows Phone Scenarios Map is a consolidated and shared view of the common scenarios and tasks developing applications hosted on Windows Phones. You will find Getting Started and Architecture scenarios first, followed by other common areas. Scenarios in each group should represent common tasks developers for the Windows Phone would face.

Your call to action here is simply scan the Windows Phone Scenarios Map below and either share your scenarios in the comments or email your scenarios to me at feedbackandthoughts at live.com.  Be sure to share your scenarios in the form of “how to blah, blah, blah …” – this makes it much easier to act on and update the map.

For a quick review of what a good Scenarios Map looks like, see my related post, 5 Keys to Effective Scenario Maps.

Common Categories

  • Application Bar
  • Bing
  • Camera
  • Choosers
  • Cloud
  • Controls
  • Data Access
  • Deployment
  • Device Management
  • Emulator
  • Gamer Services
  • Globalization/Localization
  • IE (Internet Explorer) Mobile
  • Launchers
  • Location
  • Media and Media Player
  • Model, View, ViewModel pattern (MVVM)
  • Multi-touch
  • Navigation / Pages / Frames
  • Pause/Resume
  • Push Notifications
  • Reactive Extensions
  • Security
  • Sensors
  • Silverlight
  • Testing
  • Tiles/Icons
  • Tombstoning
  • User Experience
  • XNA

Windows Phone Scenarios Map

Category

Items

Getting Started

  • How to write phone apps as a .NET developer (not with a Silverlight background)
  • How to set up your development environment for Windows Phone development.
  • How to write your first Silverlight application for Windows Phone.
  • How to write your first XNA application for Windows Phone.

Architecture and Design

  • How to design for user experiences
  • How to design for off-line
  • How to design for security
  • How to design for performance
  • How to build an N-Tier client on Windows Phone.
  • How to choose between Silverlight and XNA.
  • How to design for data latency in a Windows Phone application.
  • How to optimize an application for phone processor/CPU capabilities.

Application Bar

  • How to use the ApplicationBar effectively
  • How to add an Application Bar to your application.
  • How to databind Application Bar icons.
  • How to build icons for the Application Bar.
  • How force orientation of the Application Bar.
  • How to programmatically show/hide the Application Bar.

Bing

  • How to use the Bing maps control effectively

Camera

  • How to access the camera.
  • How to capture video using the camera.
  • How to control the definition of video captured on the phone.
  • How to resize captured images.
  • How to access the proximity sensor.
  • How to GPS (Global Positioning System) tag a photo.
  • How to save pictures to the cloud.
  • How do you control access to photos stored to the cloud.

Choosers

  • How to choose a phone number from the phone’s contacts application
  • How to choose a photo from the phone’s camera roll
  • How to ensure your application receives the result of a chooser task
  • How to choose an email address from the phone’s contacts application

Cloud

  • How to store data in the cloud
  • How to host Web services in a cost effective way
  • How to handle asynchronous network calls and exceptions

Controls

  • How to use a grid.
  • How and when to use the Pivot controls
  • How and when to use the Panorama control
  • How to programmatically access a control template.

Data Access

  • How to store local data.
  • How to call remote data.
  • How to call remote SQL Server data.
  • How to call OData
  • How to call isolated settings storage
  • How to call isolated file storage
  • How to manage isolated storage space
  • How to manage isolated storage quotas

Deployment

  • How to package an application for deployment.
  • How to get an application on the app store.
  • How to create a trial application

Device Management

  • How to enable/disable software on a Windows device.
  • How to encrypt files on a Windows Phone.
  • How to detect and handle changes in network connectivity.
  • How to enlist a phone in a VPN.
  • How to authenticate a Windows Phone against Active Directory.
  • How to wipe a Windows device.
  • How to disable features of a Windows Phone.

Emulator

  • How to run the emulator to simulate different hardware scenarios (i.e. low battery, loss of network connectivity, etc.)
  • How to simulate multi-touch in the emulator
  • How to simulate accelerometer input in the emulator
  • How to simulate the geolocation service in the emulator

Gamer Services

  • How to use a gamer profile from Xbox LIVE.
  • How to prevent auto-login with a local profile.
  • How to retrieve gamer profile properties.
  • How to create custom properties in the gamer profile.
  • How to invoke the Gamer Guide.

Globalization / Localization

  • How to build globalized applications for Windows Phone
  • How to build localized applications for Windows Phone

IE (Internet Explorer) Mobile

  • How to leverage expanded JavaScript functions
  • How to adjust the text size of your web page
  • How to design web pages for the phone’s viewport
  • How to handle fixed position elements

Launchers

  • How to launch the phone’s media player application
  • How to launch the phone’s browser application
  • How to save a phone number in the phone’s contacts application
  • How to save an email address in the phone’s contacts application
  • How to launch the phone’s email application
  • How to launch the phone’s dialer application
  • How to launch the phone’s SMS application
  • How to launch the phone’s search application
  • How to launch the phone’s camera application
  • How to launch the marketplace application
  • How to search the marketplace application

Location

  • How to determine the location of a phone.
  • How to plot the location on a map.
  • How to get location data from the Location Service.
  • How to design for location data latency.
  • How to use an alternate data location back-end data source.
  • How to use reactive extensions to emulate and filter location data.
  • How to determine which source location data was obtained from.

Media and Media Player

  • How to stream a video file
  • How to play an AVI file on a phone.
  • How to play foreign video formats such as .MOV.
  • How to use the FM radio
  • How to integrate with the music and video hubs

Model, View, ViewModel pattern (MVVM)

  • How to implement a ViewModel.
  • How to implement the MVVM pattern.
  • How to minimize the view’s code behind and why.
  • How to use a view model (MVVM) for data binding.
  • How to build a ViewModel for a file data source.
  • How to build a ViewModel for an XML data source.

Multi-Touch

  • How to recognize a pinch or expand gesture.
  • How to disable multi-touch in an application.
  • How to define custom gestures.

Navigation / Pages / Frames

  • How to transition between pages
  • How to pass parameters between pages
  • How to implement an application bar
  • How to implement a page specific application bar
  • How to handle orientation changes
  • How to override the default behavior of the hardware back button

Pause / Resume

  • How to handle a pause event in an application.
  • How to store transient application state.
  • How to restore transient application state.
  • How to store transient page state.
  • How to restore transient page state.

Push Notification

  • How to use the Microsoft Push Notifications service.
  • How to set up a notification channel.
  • How to use tile notifications.
  • How to use toast notifications.
  • How to use raw notifications.

Reactive Extensions

  • How to emulate data streams.
  • How to filter data from data streams.
  • How to compose multiple asynch web service requests.

Security

  • How to encrypt data in an application.
  • How to use SDL tools to write a secure Windows Phone application.
  • How to protect sensitive data used by a Windows Phone application.

Sensors

  • How to access accelerometer data.
  • How to use reactive extensions to emulate and filter accelerometer data.
  • How to recognize a device “shake” movement/gesture.
  • How to determine device direction based on accelerometer and location.

Silverlight

  • How to share code between Silverlight applications and Windows Phone applications.
  • How to port Silverlight applications to Windows Phone.
  • How to address the differences between Silverlight for the desktop and Silverlight for the phone.
  • How to determine if your Silverlight application is being run on a phone or another host.
  • How to call XNA libraries from a Silverlight application.
  • How to use the Silverlight BitmapEffects from Windows phone

Testing

  • How to unit test windows phone applications and assemblies.
  • How to test Multi-Touch
  • How to test GPS
  • How to test the Accelerometer

Titles / Icons

  • How to create a tile for your application.
  • How to create an icon for your application.

Tombstoning

  • How to debug while tombstoning.
  • How to handle state during tombstoning.

User Experience

  • How to design effective layouts (themes, images, workflows)
  • How to apply themes to Windows Phone applications.
  • How to effectively show large amounts of data (filtering/sorting data)

XNA

  • How to call Silverlight libraries from an XNA application.
  • How to determine the version of the runtime environment.

Contributors and Reviewers

  • · Microsoft Contributors / Reviewers - Allison Kent, Constanze Roman, Dan Reagan, Dragos Manolescu, Georgia Pettigrove, Mark Chamberlain, Pete Brown, Srinivas Iragavarapu
  • · External Contributors / Reviewers – Adam Grocholski, Andy Eunson, Kevin Lam, Paul Enfield, Will Clevenger