The release of Windows 10 Anniversary Edition on 2 August 2016 was a key point in the evolution of the Windows development platform. It’s a release that finalises much of the shift from the Win32 and .NET platforms to the next generation of tooling: Microsoft’s UWP.
The road to UWP has been a winding one, building on the work done to deliver Windows 8’s WinRT runtime and the various iterations of the Windows Phone platform. It’s also one that’s depended on a key Microsoft platform shift, OneCore, which brings the familiar NT kernel to everything from IoT devices to Xbox and to wall computers like Surface Hub, as well as the Azure cloud platform.
You’ll probably remember Steve Ballmer’s talk of “three screens and the cloud”; this is Satya Nadella delivering on that promise and taking it a lot further, from devices with no screen to devices that are shared between a roomful of users.
UWP is Microsoft rethinking its development strategy for the ways we use computers today, a mobile world of ubiquitous computing (and as Satya Nadella also points out, of “ambient intelligence”). I recently sat down with Kevin Gallo, VP of Microsoft’s Windows development organisation, at the Build Tour event in London, where we talked about UWP, and what it meant for developers building Windows applications.
First and foremost, Gallo pointed out that UWP had a focus on natural user inputs. Where older Windows platforms (which of course remain available) were focused on mouse and keyboard, UWP brings a focus on touch, on vision, and on speech. It’s how we’ll build the new generation of conversational apps, and it’s also how we’ll connect our devices and our clouds to the many devices that’ll surround us. “It’s where we’re differentiating,” Gallo says, “A world of multi-screen, multi-input devices.”
The Internet of Things
The Internet of Things is an important area for Microsoft, and it’s another element that UWP addresses, with support for new network protocols. “Developers are exploiting things in new ways,” Gallo notes, “This is why we invented it; there’s a breadth of devices and we couldn’t bring our legacy to all of them.”
Key to that is the OneCore strategy; which Gallo suggests is the heart, with UWP as the platform we build apps on. But Microsoft is addressing more than just Windows and its own platforms, as the recent acquisition of Xamarin shows. Building on familiar .NET technologies, Xamarin lets us use Visual Studio to target not just Windows, but also iOS, Android, and even macOS. Gallo calls this “The device graph. It includes more than just Windows; it is what surrounds me.”
While UWP apps are delivered through the Windows Store, you’ll soon be able to bring existing Windows apps to the Store too, using Project Centennial – one of the Windows 10 Bridges announced at Build in 2015. Build 2016 saw the process of converting an existing Win32 app to a Windows Store App demonstrated; it’s a quick and easy process. Gallo notes it’s not quite ready yet, “There are some extensibility issues; it’s still early days, we’re still getting a bunch of tools into the web.”
While Centennial will mean that apps in the Windows Store will have to abide by Store terms and conditions, you will be taking advantage of it as a distribution service, including its global reach. As Gallow says, “We pay the CDN costs; to help you guys make money.”
There are security benefits from Centennial too, as it provides new ways to manage how applications use and access memory, as well as giving Microsoft a way to detect applications that could possibly contain malicious code. That security model means that Centennial isn’t suitable for all applications: as Gallo notes, “There will be a behaviour bar; you can’t install services and drivers. Hopefully, we’ve struck the right balance between compatibility and reliability.”
Centennial doesn’t solve all the issues of bringing Win32 and .NET applications to the newer Windows platforms, but it does make it a lot easier to bridge the gap between existing code and a UWP rewrite.
Gallo describes UWP as an open platform, “It’s as open as Win32 ever has been. There’s support for extensions, with the ability to pull and revoke as necessary.” There are other benefits too, “With Centennial and UWP machine rot will go down, and we’ll stop fragmenting the registry.” All this adds up to safer and more stable applications, protecting the end user.
In a world where the number of devices we have is growing, UWP and Xamarin together will make it a lot easier for Windows apps to be developed and delivered to as many platforms as possible. Windows has its OneCore, and now Windows developers have theirs – both ready for a whole host of new user experiences.
To ensure you don’t miss future blog articles and knowledge documents or reports please sign-up to the Curo Bulletin below.