When Microsoft decided to reinvent its phone platform to meet the challenges that had essentially left Windows Mobile out of the race for the enormous phone market, many observers were skeptical. Though it is hard to count Microsoft out, starting over at that time seemed to be a losing proposition.
The original version of Windows Phone 7 (WP7) was clearly innovative and garnered some attention. The first significant update, codenamed “NoDo,” filled in some of the gaps such as enabling copy and paste. However, the Mango update’s general availability and worldwide rollout by all but one carrier has turned the view of Windows Phone 7 as a dark horse on its head.
Mango is being referred to more officially as Windows Phone 7.5, and Microsoft is back in the game as there is so much for developers in the newly upgraded and recently reinvented platform that it is hard to know where to start. All the great new features are not just aimed at developers. The target audience for Windows Phone is clearly the consumer market, but here we will concentrate on what developers can look forward to and see where the opportunities can be found.
The previously mentioned NoDo update did not change the landscape for developers, really, but Mango is a much bigger deal for both consumers and developers. David Yack, CTO of Colorado Technology Consultants, said, “Mango is clearly a significant release building on the foundation they set with the initial Windows Phone release. Microsoft is clearly listening to what features developers need and incrementally adding them.”
In fact, Mango boasts more than 500 new features, many of them huge improvements, and there is a new version of the Windows Phone SDK that lets developers take advantage of it all. You can get the latest version of the SDK (Windows Phone SDK 7.1) at Create.MSDN.com, which also lets you get in on the latest information and events for Windows Phone 7.
Mango’s offerings
Mango lets third-party developers leverage background processing and multi-tasking. Background processing usually would end up being a mixed blessing due to the fact that misuse can lead to misbehaved applications burning through the battery, but users can disable individual programs from running in the background.
Microsoft has already defined best practices for using Background Agents to minimize the chance of rogue, battery-abusing apps. “Agents is another interesting feature that opens up the potential for a number of unique applications that can be built without draining battery like old-style, long-running applications,” Yack said.
“Microsoft recognizing that applications needing slices of time periodically to perform actions in the background that improve the user experience while balancing the impact on the device is a huge step forward.”
Multi-tasking also has the potential to pose the battery dilemma (but to a much lesser extent), and overall the payoffs for delivering great user experiences should more than make up for it. Thanks to these major additions and the Microsoft.Phone.Scheduler class, you can create Alarms and Reminders in your applications that display a dialog or play a sound.
The browser built into the phone is full-fledged Internet Explorer 9 with all the standards support that goes along with it. With that comes a WebBrowser control that also supports Internet Explorer 9 and brings with it better performance and HTML5 rendering. To round out the developer scenarios, the cookie collection is also available in Mango.
The Silverlight implementation has been updated to version 4, which is a great step forward, though there are still differences between the Windows Phone implementation of Silverlight and the Silverlight 4 found on a desktop. For example, the controls on the Windows Phone are gesture-aware; Isolated Storage quotas are not enforced; and DTDs (document type definitions) are not supported, which also means that Parse is not supported. There are many other differences, though most make sense when you consider the context of the implementations. Either way, the upgrade of Silverlight capabilities brought by Mango will be a big plus in your development efforts.
One of the most exciting things about the Mango update is the new integration with Silverlight and XNA. As many developers probably know, before the release of Windows Phone 7.5, you were relegated to creating an application in either Silverlight or XNA. Each development platform has its pros and cons, and choosing between the two can be an uncomfortable choice.
For example, while discussing when to choose between the two with Duane Laflotte, chief solutions architect of NTP Software, he said, “If a developer wanted to make a super-cool racing game, XNA is the top choice. However, know that each menu, each start screen, each button, each high score list is a texture that needs to be created by the developer from the ground up. This can suck up tons of time in trying to format menus to look just right. On the flip side, Silverlight excels at making such things easy. Layout of objects in Silverlight is as easy as dragging components to the screen.”
Graphical enticements
The fact that both Silverlight and XNA work together now will go a long way toward speeding up development of graphical applications and games for the platform. The real magic that allows their coexistence is the ability to call SetSharingMode(). This little function now allows you to jump between the rendering engines or even use both at the same time.
Laflotte predicted, “I expect we will see much more game content due to the speed at which non-core game functions like menus can now be created, as well as much richer applications due to the raw power of using the XNA graphics engine within normal Silverlight applications.”
One set of features I have been looking forward to is third-party access to the phone’s Contacts and Calendar. There is also an updated version of Live Tiles that now supports push notifications to the home screen, which really strikes at the heart of the whole “Glance and Go” value proposition that was the basis of the early WP7 commercials.
Sockets are available for high-efficiency communications and ultimate flexibility. To really take things to the next level, the sensors built into the phones are now available for your apps, including the compass and gyro. The combined motion API provides all kinds of data that can be leveraged for games or controls. Rotation rate, acceleration and attitude controls (i.e. yaw, pitch and roll) are all available now. The list goes on and on.
“Build it and they will come” is a nice sentiment, but in the rough-and-tumble game of mobile phones, you have to make it irresistible, easy and have people screaming from the rooftops. With Mango closing the holes in the technology, the next big obstacle is adoption. Yack said, “What is interesting is the biggest obstacle seems to not be on the developer side, but how to get a Windows Phone in someone’s hands to try, as once they do, they love it.”
The major drivers of any platform include how good the apps are, how diverse the solutions they deliver are, and how easy it is to get those apps and solutions. The new Web-based marketplace shows that Microsoft recognizes this and is making strides. The marketplace lets users select applications for download from any device with a browser, and it can even send them to friends via Facebook and Twitter. It might even turn the tide and could be the kind of innovation that will challenge Apple.
In spite of there being many other features, many developers will be quite happy to know that Visual Basic is now supported for both Silverlight and XNA development on Windows Phone. In Figures 1 and 2, you can see that all the application templates available for C# for Windows Phone are also available for VB.net.
Figure 1
Figure 2
If you have been on the sidelines in wait-and-see mode thus far, then Mango marks the point where you should jump in and get developing. The indications are that Microsoft is in the mobile space to stay, and the opportunities for developers are real.