About a month ago I started a poll, asking developers about their favorite feature introduced in the Windows Phone Mango SDK. As it turns out, the poll participants are much more interested in complex networking capabilities rather than visual (UI) additions like live tiles and non-HTTP based toast notifications. The number of votes is presented in the following list.
1. Sockets - 10 votes
One of the most important additions to the SDK. In a lot of cases, cross-application communication through services is really slow and causes a significant transmission lag to be present. With sockets, network communications become more efficient and what's more important - faster. We had this issue when building a Kinect-to-WP7 project. Initially, we started with a WCF service and optimized its performance to the maximum, but we still had 1-2 second delays. Once we switched to sockets, the issue was gone.
2. Local Database Support (SQL CE) - 7 votes
One of the most requested features to facilitate data storage in third-party applications. Isolated Storage can be enough for basic data, but when there are large amounts of structured data meant to be organized in cross-referenced chunks for easy access, the users had to either use NoSQL-based solutions, like Sterling, or build their own data layer. With native support for SQL CE, it is really easy to manipulate larger amounts of data with tools that are already a part of the Microsoft development platform.
3. Network-independent Live Tiles and Toast Notifications - 6 votes
We finally got to the improved live tiles and toast notifications. A third-party application no longer needs to be tied to a push service to be able to invoke toast notifications and create multiple live tiles (in fact, multiple live tiles were not possible in NoDo). This feature tremendously improves access to in-app content - wouldn't you want to instantly open your favorite Kindle book instead of going through the existing list of registered content? Would you like to aggregate content from the most popular RSS feed in one tap rather than going through the list of followed feeds? That's where this capability becomes handy.
4. Direct access to photo and video streams - 4 votes
Augmented reality applications just got possible to be implemented in the context of Windows Phone OS. CameraCaptureTask is good to take pictures and pass them back to the application, but what if the user wants to perform real-time image manipulations (e.g. effects)? This is no longer a big problem, plus as a bonus - it is possible to store manipulated (captured) content directly to the media library.
NOTE: This capability was available before, as a part of the undocumented API.
The minimal amount of votes was split amongst these capabilities:
- Support for background agents - 3 votes
- Silverlight + XNA integration - 3 votes
- Ability to add ringtones - 1 vote
- Access to the compass and gyroscope sensors - 1 vote
- Application profiling - 1 vote
- Ability to share content with linked system accounts from third-party apps - 1 vote
- Improved access to user data - 1 vote
- OData integration - 1 vote