The Channel logo


By | Tim Anderson 2nd October 2014 09:02

One Windows? How does that work... and WTF is a Universal App?

Microsoft's strategy is to make Store apps popular. Good luck with that

Analysis “Whether it’s building a game, or a line of business application, there’ll be one way to write a universal application that targets the entire product family,” said Microsoft Executive VP Terry Myerson, announcing Windows 10 yesterday.

One Windows: Windows 10 will be delivered on multiple device types

One Windows: Windows 10 will be delivered on multiple device types

Windows 10, Myerson said, will embrace devices of every type, from tiny embedded systems to PCs with 80-inch screens.

Developers will rightly be sceptical. Microsoft is notorious for introducing new APIs and frameworks (the building blocks of applications) and deprecating old ones, including numerous database APIs and game development with XNA.

Silverlight, an app platform that worked in web pages and on the desktop, was for a time frenetically developed by Microsoft and adopted for Windows Phone 7, but abandoned in favour of a platform introduced with Windows 8, called the Windows Runtime. That's also known as Metro or as the runtime for Windows Store apps.

Windows 10 everywhere does not mean that the operating system will have the same features and user interface on every kind of device.

“We’re not talking about one UI to rule them all,” said Myerson. The core of the OS may be the same, but there will be different APIs and features according to the device type. Microsoft’s idea though is that the Windows Runtime will be included on all them, to unify its platforms, and that developers will be able to write universal apps that run everywhere.

But what is a universal app? The term describes a project type in Visual Studio, Microsoft’s primary development tool and is documented here.

A universal app has multiple targets, each with its own code. There is also a shared code area. When you build the app, Visual Studio combines the shared code with the target-specific code, creating an executable for each target.

Creating a Universal App in Visual Studio

Creating a Universal App in Visual Studio

One app, many targets... what could go wrong?

The universal app concept is a good one, but unfortunately it still takes effort to support multiple targets. The idea is to move as much code as possible into the shared area, but with platforms as different as Windows Phone versus a full size Windows tablet, there will be both user interface code and device-specific code that cannot be shared.

Another issue is that universal apps only support Windows Runtime (Windows Store app) targets. Standard Windows desktop apps are not included. This means that Microsoft’s One Windows strategy only makes sense if Windows Store apps become popular. Currently that is not the case.

If you are developing an app for, say, Windows Phone, then a universal app makes sense if it can easily be adapted to run on PCs. Those developing line-of-business apps for Windows PCs face a different decision. Is it better to create a universal app that can easily also run on Windows Phone, a small platform, or to create a desktop app that can also run on Windows 7, a large platform? That sounds like an easy decision, but one which loses the benefit of One Windows.

Hang on, though, are there not other platforms out there? What if the Windows Phone app developer decides also to target the huge iOS and Android markets? Now a universal app will not do. Developers will turn to a cross-platform tool like Apache Cordova (also used by Adobe PhoneGap), which uses web technology to compile apps for multiple platforms, or perhaps Xamarin, based on a cross-platform implementation of Microsoft’s .NET Framework, which targets iOS, Android and Mac OS X.

The bottom line is that even if Microsoft delivers the Windows 10 kernel across all kinds of devices, and improves the commonality between the versions of the Windows Runtime included on those devices, universal apps remain a hard sell.

Other types of development offer a larger market for the same effort. The single Windows platform idea only makes sense if developers and their customers are sold on the specific advantages of Store apps, such as easy deployment and safe execution.

One Windows? One app platform? It is not that simple, and hinges on the difficult task of persuading developers and users to adopt Windows Store apps.

Finally, there is also the question of trust. Is Microsoft now serious about maintaining a consistent development platform for more than a few years? Developers who have been stung in the past will take some persuading. ®

comment icon Read 141 comments on this article or post a comment alert Send corrections


Frank Jennings

What do you do? Use manual typwriters or live in a Scottish croft? Our man advises
A rusty petrol pump at an abandoned gas station. Pic by Silvia B. Jakiello via shutterstock

Trevor Pott

Among other things, Active Directory needs an overhaul
Baby looks taken aback/shocked/affronted. Photo by Shutterstock

Kat Hall

Plans for 2 million FTTP connections in next four years 'not enough'
Microsoft CEO Satya Nadella


League of gentlemen poster - Tubbs and Edward at the local shop. Copyright BBC
One reselling man tells his tale of woe