How serious is Microsoft about making Windows a compelling platform for developers?
In the marathon opening keynote for the BUILD conference it announced a multitude of new products and features that should appeal to developers who might still think of Microsoft as the Windows-first company. The biggest deal was cross-platform development for all the Microsoft platforms, but it also open sourced WinJS across multiple platforms including iOS and Android, introduced new SDKs for imaging and motion sensing from Nokia, and pushed down the cost of low-end Windows tablets by making the OS free to OEMs for embedded IoT devices and sub-9" screens. It even started by showing a third-party app as the very first new feature in Windows Phone 8.1: the diagonal typography of the Lock screen might look like a return to Zune, but it was created by the developer behind the unofficial Instagram app.
Universal apps are a big change for Windows, bringing Windows Phone and Windows development closer together. With the latest releases, the two platforms now have common APIs, making it possible to build apps that run on both platforms -- with separate user experiences that take advantage of device specific features. In fact 90% of APIs are now common across Windows, Windows Phone, and Xbox.
To show just how capable Universal apps can be, Microsoft demonstrated a new touch-first version of Office that's built using the new Universal features. That not only means that Surface will a touch version of Office more powerful than Office for iPad (you can create new PowerPoint presentations, for example), but also that Windows Phone gets the same features, just with a user interface that's more suitable for smaller screens.
Developers can use a single project for all versions of an app, with common code alongside the optimizations for each platform. If they want, they can build one app that has the same app identity in the different Microsoft stores, so they can sell a user an app that they can install on their phone and their PC and their tablet and their Xbox, with the settings syncing between devices -- so they can start work on one device and pick it up in exactly the same place on another device. The app doesn't have to look the same; the interface can change to suit the smaller phone screen, the larger tablet screen, a giant 80-inch touchscreen on the wall, or the gestures on Xbox or Windows with Kinect. This is where the 81 device limit Microsoft added to Windows Store apps for Windows 8.1 starts to make more sense.
But you don't have to do that; if you want users to have to pay for your app on each platform, you can do that too. Microsoft will give developers using its store tools to tune which users get which rights, with the aim of giving them as many monetisation options as possible.
A cross-platform world
Windows 8's sandbox had meant that if you wanted to build a modern WinRT app you had to start from scratch; any libraries or data connections had to be completely rewritten. If you'd made an investment in .NET for line of business apps, then you had to stay on the desktop, without touch or any of the new Windows 8 features.
That's all changing with the latest update to Windows 8.1. Now developers building enterprise apps will be able to use .NET code alongside WinRT code, through a brokered Windows runtime, letting them use all that existing code and it will work outside the Windows 8 sandbox.
That workflow app your company built and tested years ago? You don't have to rewrite it in WinRT; you can just pull in the code you've already debugged and turn it into a modern app that works with touch. You can pull in your .NET code; even your ADO.NET code.
There's one caveat though: Apps developed using this technique can't be distributed through the Windows Store -- they can only be sideloaded (so need a separate digital signature, and possibly an Intune subscription to distribute them with a company store).
The first day of BUILD wasn't just about showing developers what they could do today, it was also about what they're going to be able to do tomorrow. A series of demonstrations showed off a future Windows update that will deliver a new look start menu, complete with live tiles, and the ability to run modern apps in desktop windows. Asked "why develop for Windows?" Nadella promised Microsoft would keep innovating to keep making it a better platform, whether for the desktop or for what he believes is "the most productive tablet in the market".
But the familiar Windows is only a small part of the future, and Microsoft showed how natural user interfaces could be added to apps running on desktop and Xbox One using Kinect -- including hands-free gestures for navigation and control, and 3D image capture for animations and more immersive interactions.
Nadella expects Kinect cameras to become pervasive, and speech to matter more and more, but he also quoted Microsoft researcher Bill Buxton on how you make natural interface natural: "context, the where, what and when should define the interface you want to use. " With Cortana and Kinect, Microsoft is doing the heavy lifting for natural interfaces the way it already did for touch, in Windows and in the browser.
Windows is also going beyond the desktop and phone and tablets into the Internet of Things. A free version of Windows will allow apps written using existing skills to run on a new generation of screenless devices,. Terry Myerson showed that off by having Joe Belfiore dance across a demo floor piano running on an Intel Quark system and linked to the cloud and Azure. Putting Windows (even if it is without windows) into the Internet of Things makes a lot of sense; expanding the surface area for Windows developers to billions of new devices.
Microsoft's new CEO talks about a future of ubiquitous computing and ambient intelligence, where hardware and software develop together, connected by the cloud. Build 2014 has made it very clear that Redmond is focused on delivering that future, with new tools and technologies that will help the company, its partners, and its ecosystem of developers deliver on the promise. The technology landscape is shifting, away from the desktop to the cloud and to mobile. From the way it talks, and the way it's delivering tooling, it's clear that this is a wave that Microsoft intends to ride all the way to the beach.