A trio of Windows Phone software developers say Microsoft's Mango release is ripe and juicy for programmers, and brings new ease and power to mobile enterprise applications.
The Mango version of Microsoft's radically redesigned smartphone OS includes more than 500 new features, and over 1,500 new APIs, creating a dramatically expanded mobile platform. Mango will be released this fall, and it's widely expected that there will be new smartphones from existing and new handset makers to exploit it.
Mango may have played a key role in Nokia's decision to abandon its own mobile OS development efforts and bet its smartphone future on Windows Phone. In late 2010, Microsoft shared details with Nokia about Mango. In February, the companies announced their mobile partnership, and Mango was rushed into the hands of Nokia developers. Microsoft says it already has in its labs Nokia phones running Mango.
Windows Phone developers are now downloading the Mango beta release, running in the simulator that's part of the Mango development tools, also now in beta.
Mango is likely to get a second, closer look after next week's expected announcement by Apple of iOS 5.0, the next version of its mobile OS for the iPhone, iPad, and iPod touch, among other news at the company's annual Worldwide Developers Conference.
Network World interviewed three developers, all experienced in Windows software programming for the enterprise, and in mobile apps, to get their take on the Mango release:
Ginny Caughey, a Windows Phone Development MVP and president of Carolina Software, an independent software vendor specializing in software for the solid waste industry, its flagship product being WasteWorks.
Kevin Hoffman, chief systems architect for Oakleaf Waste Management in East Hartford, Conn., where he focuses on mobile and cloud application development; founding partner of Exclaim Computing; and author or co-author of 15 books related to .Net programming, as well as the about-to-be-released "Windows Phone 7 for iPhone Developers."
Andy Wigley, co-founder of APPA Mundi Ltd., a Windows development shop in Birmingham, U.K., that specializes in mobile applications.
1. It's big. Or pretty big, at least.
"This is massive! These changes fill in all the missing pieces," says Wigley of APPA Mundi. "This is no 'dot 1' release: there are 1,500 new APIs. This gives developers a really rich platform and opens up so many scenarios that were too hard to do in 7.0."
"I think the Mango update will be HUGE for the platform," says Caughey. "I suspect that many of the APIs were things the product group at Microsoft wanted to put into the 7.0 phone [release] but weren't able to due to scheduling. Others were clearly the result of listening to users and developers."
Hoffman is somewhat more restrained. "Overall I'm excited about the release of Mango but more because it's closing the gap in features between Windows Phone 7 and iOS," he says.
But one change that he does consider big is lifting the restriction that blocked Silverlight applications for Windows Phone from using software libraries created with Microsoft's game development toolset, XNA Studio. Access to the XNA portfolio "gives applications the ability to do incredible things with the UI that were previously isolated in the realm of XNA games," Hoffman says. "I'm really excited to see the kinds of things developers start using with this new hybrid technology."
2. Local storage via on-board database: SQL Server Compact Edition (CE)
Caughey says this is her top new feature in Mango. "I know some Windows Phone developers don't seem to care about this feature," she says. "But since my background is in building enterprise apps, I found I was limited in Windows Phone 7.0 to creating [only] apps that didn't need to quickly access loads of data on the device."
Those apps were able to access data stored in a Microsoft Azure cloud service. "The cloud isn't always available," Caughey says. "So enterprise apps often need to use the 'occasionally connected' model for accessing data."
The local database "is an interesting object database approach to storing rich schema of related objects in a backing database on the phone," Wigley says.
The database can be accessed via familiar Microsoft coding conventions like .Net Language-Integrated Query (LINQ), a general purpose query capability that's an integrated feature of the developer's main programming languages, (like Visual C#). LINQ can be applied to all sources of information, including relational and XML. [Click here for background on .Net and LINQ and click here for information and tutorials on LINQ related to Windows Phone.]
"[In Mango,] things that I had workarounds for are now first-class citizens like a little SQL database on the device that I can access with familiar patterns like LINQ," Hoffman says.
"I've waited to move my mobile enterprise apps to Windows Phone because some users need the ability to quickly validate [whether] a given point-of-sale customer is entitled to free service - one [customer] out of tens of thousands," Caughey says. "You need a real database to do that in the amount of time users are willing to wait for the answer."
3. Bringing more of the information you want to the surface
Last year, Windows Phone introduced the idea of Live Tiles or on-screen blocks representing an app or service and capable of displaying real-time information, such as the number of unread emails in your inbox.
Mango enriches Live Tiles in several ways, bringing more of an app's information to the forefront without having to actually open the app. One way is "Deep Linking," which lets the tile display specific data or functions from any application, Hoffman says.
Also with Mango, you now can create a "back side" to the tile and have more than one tile per application. One example is a weather app that could show different tiles for different ZIP codes, or a banking app that could show different tiles with balances for different accounts.
"I love the whole Live Tile features in Mango," Caughey says. "Being able to deep-link into a specific aspect of a mobile app is very glance-and-go friendly. I can't imagine many apps other than perhaps games that might not benefit from this optional feature."
4. Associating online search with apps and information in context
Mango deepens the relationship between the OS, apps, and Microsoft's Bing search engine (and also introduces visual and music search features). A Bing search for a movie can find theater locations and show times; App Connect brings an array of related information and apps, such as the IMDB.com app to find the latest movie trailer, and Fandango to buy tickets; and even show related apps on the Zune Windows Marketplace catalog.
"The Windows Phone 7 search [capability] is still, in my opinion, one of the biggest differentiating factors with iOS," Hoffman says.
5. Microsoft's multitasking approach
In Mango, Microsoft is releasing controlled support for "multitasking" - essentially controlled background processing and scheduling, through what it calls Background Agents.
Wigley describes this approach as one that "allows our app to run an associated GUI-less agent briefly at intervals in the background to fetch data or do some other processing, and allows our apps to more easily alert users to data or events they should be interested in."
At its MIX11 developer conference earlier this year, Microsoft told developers that Background agents will work within strict resource limits to preserve the Windows Phone user experience: agents can have no more than 10% of the CPU and just 5MB of memory. Agent processes are scheduled to preserve battery life, for example running no more than 15 seconds every 30 minutes to check into a social network's location service.
"Mango gives developers more options when it comes to background processing and scheduling," Hoffman says, and that narrows the gap with iOS which introduced such features in the 4.0 version. But, he says, Mango still lacks some of the "truly elegant" multitasking options of iOS, such as background notifications when your GPS coordinates enter or exit a given region.
6. Revved up performance
Mango offers a lot of tweaks that make interactions faster, smoother or both, Caughey says. "Fast app switching [is one,] so users don't always get that Resuming screen when returning to your app," she says. Better memory management means that even existing Windows Phone 7 apps "run faster and consume less memory on Mango." Finally, Mango shifts "touch" off the UI thread, "so scrolling performance is smoother," Caughey says.
7. Web browsing, with IE 9 and HTML5
The developers are more divided on the programming impact of Microsoft's decision to release with Mango a mobile version of its most advanced Web browser, Internet Explorer 9. IE9 will leverage the Windows Phone graphics processor and supports the emerging HTML5 standards. HTML5 brings new capabilities that let browser applications behave more like native applications, such as being able to cache data locally, for example.
But all three of these developers have been focused on native apps for Windows Phone.
"I'm still on the fence on HTML5," Wigley admits. "I don't see it giving us anything we can't do better [today] in Silverlight, so I'm going to sit tight and watch how things go with that."
"I want my apps to feel like they belong on the phone," Hoffman says. "For this, there's no substitute for building a native application."
"[But] that said," he adds, "if I was building a website that had alternate renderings for mobile devices, I would be extremely pleased by the fact that Windows Phone 7 devices will no longer completely choke on HTML5 interactive web pages."
At Microsoft's recent TechEd conference, Caughey talked with several people "for whom HTML 5 will be an important part of their overall mobile strategy."
"They have disparate mobile devices in their organization, including desktop computers, and they will use HTML 5 as a general enterprise solution," she says. HTML5 apps could run without changes across all the devices if they have a Web browser that supports its features.
"At the same time, they have a subset of their company that needs occasionally disconnected capability, and they plan to create normal Windows Phone apps for those users as well as provide them with the Windows Phones," Caughey says.
But for end users, Caughey has no doubts about the value of IE9. "A great Web browser is always a plus on a phone," she says. "I find I carry my laptop with me less and less as I am able to rely on my phone for more of my needs while I'm traveling."