This chapter described how the developers at Tailspin implemented the model elements from the MVVM pattern in the Tailspin Surveys mobile client application, and how the application leverages services offered by the Windows Phone platform, such as isolated storage and location services.
The developers at Tailspin also created some services themselves; for example, they created the synchronization service that runs both in the background, and in the foreground as a set of asynchronous parallel tasks that manage the data used by the application. This synchronization service needs to access data held remotely by the Tailspin Surveys application that runs on the Windows Azure™ technology platform. The next chapter will describe how the mobile client application can access remote services like the one that provides access to the data held in the Windows Azure application.
- The Data Protection API (DPAPI) can be used to encrypt and decrypt data in isolated storage. What does the DPAPI use as an encryption key?
- A user-generated private key.
- The user credentials.
- The phone credentials.
- The user and phone credentials.
- What happens when your application is reactivated?
- You return to the first screen in your application.
- The operating system makes sure that the screen is displayed as it was when the application was deactivated.
- The operating system recreates the navigation stack within your application.
- The Launching event is raised.
- What data should you save when you handle the deactivation request?
- State data required to rebuild the state of the last screen that was active before the application was deactivated.
- State data required to rebuild the state of previous screens that user had navigated through before the application was deactivated.
- Data that is normally persisted to isolated storage by the application at some point.
- The currently active screen.
- Why does Tailspin use the Reactive Extensions (Rx) for .NET?
- To handle notifications from the Microsoft Push Notification Service.
- To handle UI events.
- To manage asynchronous tasks.
- To make the code that implements the asynchronous and parallel operations more compact and easier to understand.
- What factors should you consider when you use location services on the phone?
- What level of accuracy your application requires for its geo-location data.
- Whether the device has a built-in Global Positioning System (GPS).
- How quickly you need to obtain the current location.
- Whether the user has consented to allowing your application to use the phone's GPS data.
- Which factors constrain the use of a ResourceIntensiveTask agent?
- Resource-intensive agents do not run unless the Windows Phone device is connected to an external power source.
- Resource-intensive agents do not run unless the Windows Phone device has a network connection over Wi-Fi or through a connection to a PC.
- Resource-intensive agents do not run unless the Windows Phone device’s battery power is greater than 90%.
- Resource-intensive agents do not run unless the Windows Phone device screen is locked.
For more information about isolated storage, see "Local Data Storage for Windows Phone" on MSDN.
For more information about handling deactivation, reactivation, and tombstoning, see "Execution Model for Windows Phone" on MSDN.
For more information about launchers and choosers, see "Launchers and Choosers for Windows Phone" on MSDN.
For more information about Reactive Extensions, see "Reactive Extensions for .NET Framework Overview for Windows Phone" and "The Reactive Extensions (Rx)" on MSDN.
For more information about location services, see "Location for Windows Phone" on MSDN.
These and all links in this book are accessible from the book's online bibliography. You can find the bibliography on MSDN at: http://msdn.microsoft.com/en-us/library/gg490786.aspx.
Last built: May 25, 2012