5 things you need to know about Windows 10X containers, UWP, and Win32 apps - The Entrepreneurial Way with A.I.

Breaking

Tuesday, February 11, 2020

5 things you need to know about Windows 10X containers, UWP, and Win32 apps

How Windows 10X achieves app neutrality is complicated, but the experience for the consumer is seamless.

Microsoft today shared some of the first vital details about how Windows 10X works, including releasing the emulator so developers can get started optimizing apps for the dual-screen experience.

The big takeaway, though, is Windows 10X runs all its apps in containers. Here is what that means, why it's good, and what types of apps you will be able to run on Windows 10X and devices like the Surface Neo.

They just run

1. Three containers, but one experience

Think of containers as siloed boxes that are abstracted from the operating system, allowing finer control over their behavior.

For Windows 10X all applications run in containers, but there is no configuration, or any high-level changes needed by developers to utilize these; they are just part of the OS architecture.

Specifically, there are three types of containers, one of which is new (Win32)

  1. Win32 Container: Runs "classic" x86 32 and 64-bit Win32 apps, WinForms, WPF, Electron, etc. and is a similar environment to Desktop OS. There is just a single container for all Win32 applications and is "highly compatible" with all existing software.
  2. Full-trust MSIX Container: High compatibility with existing apps. These run in isolation from other Win32 apps and also run as a container within a Win32 Container on Windows 10X.
  3. All UWP apps: Lowest system overhead, best performance, and battery life, and best security and privacy controls of all the systems.

For consumers, there is nothing to know about this experience. Most Win32 apps and all UWP apps should just run as-is on Windows 10X. You click the app, it opens, and it runs. It also doesn't matter where you install it from, whether it is the Microsoft Store, the web, or a USB drive.

Whether developers choose to continue with Win32 "classic" desktop apps, Progressive Web Apps (PWA), or UWP is up to them. For obvious reasons, UWP is the most optimized for Windows 10X, but Microsoft has gone to great lengths to ensure those classic desktop apps run just fine too.

Built for mobility

2. Containers optimize battery life and performance

UWP apps are still the best-optimized app platform for Windows 10X. This shouldn't be a revelation, as they were initially designed with Windows Phone (Windows Mobile) in mind and built for mobility. UWP apps maximize security, battery, performance, and respect OS-level suspend and resume events.

Win32 applications were built primarily for a desktop experience. They lack the mobile optimization of UWP. As a result, while they tend to be more potent than UWP, they tend to be worse for battery life and speed. But Win32 "classic" apps are still very valuable even in 2020 to the modern mobile computing experience.

Microsoft "fixes" this issue with Win32 (and MSIX) apps through the Win32 Container. Here's how:

  1. Win32 + MSIX Containers reduce resources when no windows are visible.
  2. Apps are suspended entirely when no windows are open.

Win32 and MSIX apps, when minimized (and when closed), are entirely cut-off from running in the background. As a result, this saves system resources and battery. Conversely, when the Win32 app is being actively used, it gets devoted more resources to it to ensure performance.

There are two consequences to this behavior change, though. For one, "classic" Win32 apps likely won't be able to run background tasks – at least not for very long – before the container is suspended. The other is Win32 apps can't auto-start with Windows 10X. That latter is mostly due to the fact there is no System Tray in Windows 10X, so "classic" apps can't continuously run in the background.

Interestingly, Microsoft may let users control this behavior so that the Win32 Container (and Win32 apps) can run in the background. This has not yet been decided as of yet.

Finally, due to the design of the Win32 and MSIX containers, anti-malware and anti-virus systems are also either not needed or will have a dramatically reduced overhead, which, again, results in improved system performance and battery life.

Drivers, peripherals and more

3. Everything should work

Interestingly, just because Win32 apps are containerized on Windows 10X doesn't make them any less powerful. Microsoft states these apps still get full access to things like:

  • Mouse, keyboard, pen, touch.
  • DirectX graphics, audio, media.
  • Networking.
  • Printing.

That means the old "Plug and Play" model is still in effect here, and a PC like the Surface Neo should be able to run anything you plug into it, including external monitors and peripherals.

Security is also enhanced, too, as the user can deny access to all Win32 classic apps for things like the PC's camera, microphone, and even location. UWP apps already do this on an individual app-level permission system, but in Windows 10X, users can shut it all down for all Win32 apps at the container-level if they choose.

Since there is no System Tray in Windows 10X, those "classic" apps can't use it. But even if those apps make calls to things in Windows 10X that don't exist doesn't mean app instability. Microsoft says these apps can operate "as is" (meaning no registry changes), but due to the container, those calls will never touch the OS. Translation: there should be no app crashing due to limits imposed by the Win32 container.

Why you need both

4. Two File Explorers (kind of)

On the left is the Modern File Explorer experience; on the right is the "classic" Win32 file picker.

Reflecting the dual nature of the Windows 10X experience, where UWP and Win32 apps live side by side, is the use of two File Explorers, including the File Save As experience.

This fact sounds confusing, but it's not. Win32 applications can still utilize the "classic" File Explorer and dialog for choosing files system-wide, including accessing system folders. This feature is vital as Win32 apps expect that dialog to exist to pick and save files needed for the program.

Using the file dialog in a UWP app or Windows 10X (the "host operating system"), however, brings up the "modern" File Explorer, which is limited to necessary libraries like Videos, Music, Favorites, Documents, Pictures, and more.

For the user, this means they get basic-level access to the main libraries, but not the OS-level file structure like in the desktop OS (Windows 10). But those Win32 apps still run as they should without any code change.

The big picture

5. Apps run maximized (for now)

All Windows 10X apps are maximized...for now.

In a conversation with Kevin Gallo, CVP of the Microsoft Developer Platform, we were told that, currently, apps on Windows 10X run full screen (i.e. maximized). This experience is like how apps ran on Windows 8 and in the current Windows 10 Tablet Mode experience.

The reason for that choice is screen size: the smaller the display, the more information-dense the experience. Running five small-windowed apps on a single 9-inch display (spanning 13.1 across both displays) is unlikely to be a popular scenario.

This maximized-vs-windowed topic is very debatable, and Microsoft is not inflexible on the issue. Should developers prefer the option to allow smaller windowed apps on Windows 10X, the company may allow that.

UWP is still key

Wrap Up: Windows 10X is complicated yet simple

Microsoft architected Windows 10X so that it is app neutral. Electron, UWP, Win32, WinForms, WPF — it doesn't matter. All those apps run on Windows 10X, mostly without any significant changes to the code.

I think the easiest way to think of it is about design and priority:

  • Windows 10 Home/Pro: Made on and for running Win32 apps, but can also run UWP
  • Windows 10X: Made on and for running UWP but can also run Win32.

Microsoft would probably not classify it quite that way, but Windows 10X is built to be fast, fluid, mobile, and secure. Indeed, OS updates should take no more than 90 seconds. That's because, like HoloLens, it's built around the siloed and restricted nature of UWP.

The good news for consumers, or anyone buying a dual-screen PC like the Surface Neo, is that none of this matters. You can install any app you want, and the expected behavior is respected. Developers also should not have any significant changes to their apps — even older Win32 ones — to get them to run on Windows 10X.

Moreover, Gallo reminds us that these dual-screen optimized apps should also deliver a better experience on Windows 10 desktop systems too. This feature is a clear example of Windows 10X trickling back up to Windows 10.

Of course, how it all works remains to be seen, but Microsoft says the performance delta between Win32 and UWP apps on Windows 10X should not be perceptible to the users. That's an exciting prospect as we move into a new era of mobile PC computing where users won't have to make compromises.

Much of this information was gleaned from the Microsoft 365 Developer Day video How Windows 10X runs UWP and Win32 apps.

How Windows 10X achieves app neutrality is complicated, but the experience for the consumer is seamless. Microsoft today shared some of the first vital details about how Windows 10X works, including releasing the emulator so developers can get started optimizing apps for the dual-screen experience. The big takeaway, though, is Windows 10X runs all its apps in containers. Here is what that means, why it's good, and what types of apps you will be able to run on Windows 10X and devices like the Surface Neo. They just run 1. Three containers, but one experience Think of containers as siloed boxes that are abstracted from the operating system, allowing finer control over their behavior. For Windows 10X all applications run in containers, but there is no configuration, or any high-level changes needed by developers to utilize these; they are just part of the OS architecture. Specifically, there are three types of containers, one of which is new (Win32) Win32 Container: Runs "c... by: Daniel Rubino via https://www.AiUpNow.com/