In addition to the challenges developers face in managing connectivity and limited device resources, the fact that mobile device technologies are reasonably new and continually evolving makes technology choices more difficult. Although most server technologies are stable, the Windows Phone 7 is brand new and—at the time of this writing— many of the interoperability components and technologies are still under development or available only as preview versions.
As you will see when you read in this guide about the decisions Tailspin had to make during development of their Surveys application, the selection of data communication and synchronization technologies is influenced by the availability and stability of these technologies.
For example, if you choose to use WCF Data Services to expose your data in the standard Atom Pub REST format for Windows Phone 7 devices to consume, you can use the Microsoft OData Client Library for Windows Phone 7 instead of creating a custom proxy. This library is implemented in the assembly System.Data.Services.Client.dll, but is not yet (at the time of this writing) available as a final release version for Windows Phone 7.
In addition, other frameworks or components originally designed for the desktop or server, or specifically aimed at Silverlight applications running in a web browser, may not be compatible with the Windows Phone 7 operating system. You should test all components and frameworks on both an emulator and on a physical device before committing to use them in your application designs.