Design and Implementation


Before you start to design and build your application, you should make some basic decisions about the way you will use techniques such as test-driven development (TDD), design patterns such as Model-View-ViewModel and Dependency Injection, and whether you will take advantage of third-party components or custom frameworks that match your requirements. You must also consider how you will implement data storage on the device, whether you will take advantage
of phone capabilities such as the camera and Global Positioning System (GPS), and how you will manage connectivity to the network. In addition, you must be aware of how Windows Phone 7 devices may deactivate and tombstone your application. Although you do not have to finalize all of these decisions before you start, thinking about them now can help to stabilize your design and reduce the number of dramatic changes required later. For more information, read the sections “Storage Considerations,” “Connectivity Considerations,” and “Application Deactivation and Tombstoning” later in this chapter, and the discussion of the Model-View-ViewModel and Dependency Injection patterns, “Building the Mobile Client.”