Microsoft shows off how containerized apps will work in Windows 10X

Microsoft is delivering its promised Windows 10X emulator and SDK, plus a refresh of its Android-based Duo SDK as its next milestones along its dual-screen device path.

m365devstory10x.jpg

Credit: Microsoft

Microsoft is continuing to unfurl its dual-screen Windows and Android device story. On February 11, Microsoft is focusing primarily on the Windows piece of its strategy, making available its promised Windows 10X emulator and software development kit (SDK) for dual-screen Windows devices like its coming Surface Neo dual-screen tablet and various third-party foldables and new form factors.

Microsoft initially took the public wraps off Windows 10X, a variant of Windows 10 initially targeted for dual-screen devices, in October 2019, though leaks about its so-called "Santorini"/"Lite" platforms had been circulating for the last couple of years. On February 11, during its Microsoft 365 Developer Day virtual event, Microsoft is providing more details on what 10X is and how it will work.

As rumored for months, containers are a key to the 10X platform

Microsoft is planning to require every Windows 10X app -- Win32, Universal Windows Platform (UWP) and Web apps -- to run in containers as a way to better secure and improve the performance of devices running Windows 10X. The 10X container (codenamed "Vail") is similar to -- though not the same as -- the lightweight VMs/container model used by Microsoft's Windows Subsystem for Linux. The 10X container will include a lightweight version of Windows (Win32), which will be loaded only by those apps which require it. In some cases, shims, or programming interfaces meant to assist with compatibility, also will play a role in enabling apps like the new Edge browser and Microsoft's own Office apps, to run on 10X. 

Update: Thanks to a presentation discovered by The Walking Cat, here's some more 10X container info. There are three types of containers in Windows 10X: Win32, MSIX and Native (UWP). MSIX and native containers already exist. Win32 containers are meant to provide the highest compatibility levels for existing apps, including Win32, WinForms, WPF and Electron apps. It provides an environment similar to a desktop OS. A single Win32 container will run all Win32 apps on 10X.  

Microsoft's goal is to ensure that most existing Windows applications will "just work" with no developer modifications required, on Windows 10X. For developers who are interested in making their applications work better and in a more customized way on 10X, Microsoft is making available the programming interfaces, information about hinge positions, transitions and new proposed Web standards in that space.

In addition to releasing early versions of the 10X emulator and SDK today, Microsoft also is refreshing the already-available SDK for its Android-based Surface Duo device. The preview SDK for Duo, as of today, will include all of Microsoft's Java native samples as Kotlin samples; drag and drop support for helping with moving data between two apps on dual-screen devices; and support for Android Sutdio, Visual Studio and Visual Studio Code users on macOS and Ubuntu Linux and Windows.

While the smaller Duo (which Microsoft doesn't want users to call a phone, but which will have telephony capabilities) and the larger dual-screen Neo will run different operating systems underneath, Microsoft is trying to emphasize the commonalities of the two platforms. Microsoft is touting its dual-screen SDK for Xamarin Forms as a tool for building apps across both Windows 10X and Android, for example. And the user experiences on the Duo and Neo, in many ways, look more similar than different, at least to my non-design-noticing eye.

Microsoft's pitch for both kinds of dual-screen devices isn't just that more screen real estate is better. It also is trying to build a case that users can be more productive when using two side-by-side, connected screens than a single screen because they can stay in their "flow" and not have to switch between apps.

It's not just on the use-case front where Microsoft has its work cut out for it with dual-screen devices. Microsoft also has some big execution challenges with its dual-screen devices is an understatement. 

Microsoft has said both the Surface Duo and the Neo will be available for purchase in time for holiday 2020 and seems to be sticking with that commitment. This doesn't seem like a stretch for the Surface Duo, which is basically a plain-vanilla Android device with some Microsoft extensions. The Duo emulator is the existing Android Studio emulator. 

The Surface Neo, though a Windows 10 device using a Microsoft-built emulator, will be expected by most customers to run all Windows apps. I've heard that in its own internal testing so far, Microsoft has not found providing Win32 app compatibility to be a slam-dunk. Because the Win32 subsystem running in the container in 10X isn't a full operating system implementation, more than a few existing Win32 apps don't run well or at all. 

In addition, Microsoft also is in the midst of trying to figure out what to do about app distribution. As I've reported previously, Microsoft has been stepping back from requiring Windows 10 apps to be delivered via the Microsoft app store. During today's Microsoft 365 Developer Day, I'm not expecting Microsoft to talk about its plans to deprecate the Microsoft Store for Business and Store for Education

However, there may be some talk today during the virtual developer event about how the company is devising a new model for application reputation, as officials hinted last year would be happening. Microsoft needs to build an app reputation system that will help customers know that apps are trustworthy and safe to download. Microsoft is expected to make this new app-reputation model a built-in part of Windows 10X and subsequently make it available across the entire ecosystem, from what I've heard.

Microsoft is looking for developer feedback on its dual-screen vision and deliverables, in earnest, starting today. Windows 10X testers, start your engines.