It’s no secret that Microsoft is launching a new Windows this year. Windows 10X has been in the works for a long time, building on the Windows Core OS project that also powers HoloLens 2. Originally intended for use on dual-screen devices like the postponed Surface Neo, Windows 10X has been reconfigured for use with single-screen laptops and will roll out in the next few months, on new systems.
You could think of 2021’s version of Windows 10X as Microsoft’s answer to Google’s Chrome OS, a lightweight operating system for relatively low-cost hardware that will mainly run cloud-hosted and web applications. It’s not the full desktop Windows 10 that many people use for work and for gaming, and it’s unlikely to ever replace it. Microsoft has had to make significant design compromises to deliver a new operating system, changes that make it more akin to Windows 8’s Windows RT.
The ‘next generation’ of Windows
By building an OS from the ground up, Microsoft has been able to significantly redesign Windows. But that means it won’t run all your old software. The original plan for Windows 10X was to use a set of application containers to isolate new and old code, supporting Win32 apps alongside newer UWP apps while keeping applications, OS, and data all isolated, and supporting MSI, MSIX and APPX installers. But things have changed.
That’s resulted in a delay for native Win32 support, with only UWP apps running on the initial releases. Microsoft is planning to add support for legacy applications at some point in the future, but if you’re thinking of working with Windows 10X at the start you’re going to need to support UWP, using Microsoft’s WinRT APIs. Alternatively, your apps will need to be web apps that can be packaged as Progressive Web Apps (PWAs), installed from the Windows Store or from inside Microsoft’s Edge browser.
The result is a user experience that’s going to be similar to Windows 10 in S Mode, only with a more modern user interface and a redesigned, modular operating system that will be quicker to boot and update. It’s cloud-centric, integrating key Microsoft 365 services right into the operating system — building its file storage tooling around OneDrive, for example.
It’s going to be an important launch, forming one of the pillars of Panos Panay’s ‘next generation of Windows’ that he teased in an interview at March 2021’s online Ignite event. The first Windows 10X devices will be targeted at education and enterprise, where web applications are more important than local native code. Even so, there will be demand for apps that will run on the new Windows, and that can be installed from the Windows Store.
Modernising code with Project Reunion
There’s an issue facing anyone building apps for Windows 10X: how do I bring older apps to the platform? Windows has too many different development platforms, with different capabilities, and UWP Windows Store apps are only one of many. There are many more apps built using the Win32 APIs, and many of those APIs aren’t available to UWP — or if they are, may well have different capabilities.
Microsoft has known about this problem for some time, and is now working to unify its APIs with Project Reunion. It’s an approach that should help developers who are thinking about delivering code to the new platform, giving them a path to converting Win32 apps to UWP without having to make significant changes.
One thing Project Reunion isn’t is a replacement for is the full Windows SDK, but even so, it should go a long way to filling the gaps between different development models. As well as porting APIs, Project Reunion will provide ‘polyfills’ that wrap combinations of new APIs with the calls from older versions, making it easier to port older code.
SEE: Office 365: A guide for tech and business leaders (free PDF) (TechRepublic)
Project Reunion separates its APIs from a monolithic SDK, making them available as individual NuGet packages, so that they can be updated without a full SDK update. This should allow polyfills to be replaced with native calls, and new Project Reunion APIs to be released as they are ready. The latest build, 0.5, is a big step forward, and while it’s only a subset of the planned new APIs and controls, it’s now possible to start building it into your MSIX applications.
A key component of Project Reunion is the WinUI 3.0 controls; these are the next generation of Windows controls, and can be used by both Win32 and UWP applications. With the first controls already available, it’s worth starting to prototype applications that use them. Modern controls like these will be compatible with Windows 10X’s new window designs, as well as having a common look-and-feel.
Bringing together Win32 and UWP is important, as it should reduce the risk of porting from one development model to the next. At the same time, Microsoft is moving its .NET development platform away from the monolithic .NET Framework to a lighter-weight .NET Core, with the recently released .NET 5. That makes .NET 5 an important component of the Windows 10X platform, and an important target for any application updates.
There’s another benefit to getting code ready for Windows 10X: while it may not run all Windows apps, other Windows 10 systems should be able to run code that’s been ported to Windows 10X. The Windows Store is available for all Windows 10 versions, and tools like Visual Studio will help build, test, and package apps for the Store, for Intel and Arm platforms. With the Store providing results to Windows’ built-in search, delivering apps through it adds additional discovery routes that might not be available for more traditional software delivery methods.
Using virtual desktops in the cloud
Not all applications will be able to take advantage of Project Reunion or the Windows Store. That might be because they’re needed now rather than in a year or two, and are unable to wait for the APIs they need to be shipped. Businesses and schools will find it easier to take advantage of Microsoft’s alternate option for their code than consumers, as IT departments will be able to configure the cloud-hosted Windows Virtual Desktops to deliver remote apps to users, using the UWP Remote Desktop tool to deliver user interfaces to Windows 10X devices, while the code runs on a managed virtual machine on Azure.
Windows Virtual Desktop is likely to be the foundation of a more user-friendly Cloud PC service that’s currently under development. Shipping as part of Microsoft 365, Cloud PC should give schools and businesses a simple flat-fee option, with per-user pricing for cloud-hosted apps and desktops. Leaks of the internal betas show a workspace-focused approach to delivering applications, with a Windows 10-like user interface. It’s likely that Microsoft will launch Cloud PC at the same time as Windows 10X, allowing us to see how it will be managed, how you can add your own applications to a Cloud PC image, and how they can be assigned to users and their workspaces.
What’s clear is that even without Win32 support there will be plenty of options for running all your applications on Windows 10X. Users will get the most from UWP applications running natively, and porting code to run on new hardware should encourage a move from older APIs to modern, more secure, code.
With all these different moving parts, it’s hard to finalise a Windows 10X development strategy, but there’s enough information to start to plan. With a first release of Project Reunion on the horizon, and with support all the way back to Windows 10 1809, it’s worth beginning any migrations with the latest preview releases, while still supporting users who need older code through tools like Cloud PC. Project Reunion apps from the Store will run on any supported Windows 10 device, ensuring a wide audience for your code.
Where you can, jump straight to UWP and .NET 5, as this is the direction Microsoft wants you to move. As APIs become available through Project Reunion, you can migrate more code to the new platform. Getting older applications ready for Windows 10X might take time, but you can certainly start planning for how you’ll support the next generation of Windows before it arrives on your users’ desks.