Build 2016: Microsoft woos developers with Universal Windows Platform

Microsoft Sign

A recurring theme of the first day keynote at Build 2016 was the Universal Windows Platform (UWP) and what it can do for both developers and users.

Able to support everything from IoT hardware to HoloLens, UWP is how Microsoft expects Windows applications to be built in the future, replacing the familiar Win32 and .NET platforms. With Satya Nadella aiming to make Windows 10 a home for developers, UWP is one of the operating system's key features.

On stage at Build, Kevin Gallo announced that Windows 10 apps running on the Anniversary Edition would get access to more than 1,000 new UWP APIs, including a selection of new UI capabilities based on DirectX 12's GPU support. These add new animation effects with support for depth and layering, which can be added to rollovers and the like.

Gallo also showed how to quickly add ink support to UWP apps, with the new ink canvas control and the ink toolbar. With two lines of code in XAML, he was able to quickly add rich ink functions to existing UWP code. The supported controls also include a new ruler, which can be used to align ink items and as a guideline.

To help developers get started with these new capabilities, Microsoft has released a major update to its Visual Studio 2015 IDE, along with a preview of the Anniversary SDK.

Microsoft is well aware that developer workflows go beyond the familiar Windows desktop and tools. Developers are now working with a wide range of technologies, across more than one platform, and they need to be able to access their toolchain wherever they are, and whatever device they're using this is the reason why many developers are using Mac OS devices, because they can access UNIX tools from the Mac OS command line.

Bash shell for Windows

In a surprise announcement, Gallo unveiled a full bash shell implementation for Windows that has been developed in partnership with Canonical.

Hosted in a new Windows subsystem, it runs native Ubuntu commands and applications, and developers can access familiar command line tooling with support for a VT100-style terminal. This allows editors like emacs to finally run on Windows, along with ssh connections to remote hosts, something Gallo described as bringing "the power of open source command line tools to Windows".

Desktop App Converter

Bringing Win32 and .NET applications to the new platform has been one of Microsoft's aims since it launched Windows 10. As part of a series of so-called Bridges, announced at Build 2015, Project Centennial was intended to allow developers to package existing code and deliver it as a Windows Store application.

Now known as the Desktop App Converter, it is a command line tool that takes a Windows installer package and converts it into a Windows Store .appx. At the same time, developers can add code to give existing applications access to new UWP APIs, with access to Live Tiles and other Windows 10 features.

It's not just enterprise applications that can use the App Converter, as Phil Spencer demonstrated later in the keynote. Following on from a comment in a recent Bill Gates Reddit AMA, he showed a converted version of Age Of Empires, complete with support for Steam and for mod files.

UWP is already being used to build games that run on both Xbox One and Windows 10. As the Forza Apex developers pointed out, it's not quite a 'write once, run anywhere' experience; "we'll write code once and tune it so you get the best experience on Xbox and the best experience on PC, but this is great for our productivity."

UWP is not just for Windows devices, and with the Xamarin acquisition Microsoft is now able to deliver code that runs on iOS and Android as well, along with design tools for iOS and Android UIs in Visual Studio. Demonstrating how Microsoft uses Xamarin internally, Gallo showed how the Microsoft Health team structures its code; with a common core and separate device specific code for UI and connectivity. Most of the code is shared, with separate projects for different devices. The UI can be tweaked for specific devices without affecting your code.

Microsoft is making a big push to bring developers from Win32 and .NET to UWP at Build 2016. With new tools to help with the migration, and with improved cross-platform tooling both in Windows and through Xamarin, it's a transition that's starting to make a lot of sense.