Remember when Microsoft first hyped the Windows 10 development platform? "One Windows" was the theme. "Just one API and one package to reach all Windows 10 devices – PC, tablet, phone and more," said Windows developer corporate VP Kevin Gallo at the time.
That was in April 2015. Just two months later, everything was different, as the company "aligned its engineering efforts" or, put more bluntly, started the process of scrapping Windows Phone.
The "Universal Windows Platform" (UWP) remains, though if developers want to code a .NET app that is in any sense universal, they must choose a Xamarin cross-platform app, not UWP.
What then does Microsoft's Windows development strategy look like today? Gallo came to London earlier this month to explain at a Windows Developer Day. The rallying call now is not One Windows, but rather modernisation.
Modernization: Microsoft's new buzzword for Windows devs
What is modernization? The term is a catch-all for trends including seamless install and uninstall, mobility of experience across devices, up-to-date design, and access to cloud services.
"Modernization is a journey that we're always on. The world is expanding more capabilities faster than most of us can learn the technologies. We're investing in AI. We're investing in ML. We're investing in all these services that will hopefully give you a leap forward over the competition," said Gallo.
Specifically, Gallo noted that "in the Fall Creator's update we're providing three key technologies to help you modernize your applications. Modern installer, modern UI controls with Fluent Design, and seamless cross-device engagement with device relay and activity feed."
These terms need unpacking. "Modern installer" means deploying applications as Appx packages, which can be delivered from what is now called the Microsoft Store, either publicly, via a private Store portal for employees, or through a Mobile Device Management tool.
Microsoft has just released Visual Studio 2017 15.4, and one of its key features is the Windows Application Packaging Project. This is a simple way to use the Desktop Bridge to package any application as an Appx. I tried it with a simple Windows Forms application in Visual Studio. Add Windows Application Project template, add reference to my app, click Create App Package, and I had an Appx package. This is great, and important for the Store-centric deployment concept to have any chance of success.
Incidentally, Windows Forms applications remain popular for quick business applications, despite this being the oldest of the .NET GUI application frameworks. Windows Presentation Foundation (WPF) was meant to replace it way back in 2007, and UWP is today's thing, but for non-designers Windows Forms is easier to work with (and UWP does not work on Windows 7).
Microsoft is making an effort to improve productivity for UWP developers via the Windows Template Studio, which lets you build a skeleton application from template elements, including common pages such as master/detail views, grids and charts, as well as interactions such as "toast" notifications and live tiles.
Windows Template Studio eases the path for non-designers working with UWP
Fluent Design System is the design concept underlying the latest UWP controls, as well as elements in Windows 10 itself. Its themes are light, depth, motion, materials and scale. The effect is understated but in the hands of a designer elegant results are possible.
Fluent Design is reflected in updated controls for the UWP
Cross-device engagement has two main pieces. Applications can create UserActivity elements which represent tasks relevant to that application, such as working on a specific document. This is saved to an internet service so that the user can pick up the same task automatically on another device.
Second, the Remote Systems API, which is also in SDKs for iOS and Android, lets application discover a user's devices and launch applications on them, enabling users to resume work or play on another device.
Microsoft is also talking up the ability to code UWP apps and games on Xbox One, a non-PC Windows platform that does still have some life in it. UWP games now have more extensive access to Xbox One hardware, with 6 cores, 5GB RAM and full access to the Direct3D 12 API.
It would also be remiss not to mention the company's investment in mixed reality and virtual reality, which is now part of the UWP and runs on PCs supported by new Mixed Reality headsets, or on HoloLens for more demanding business use.