MS's future approach to Windows 10/Xbox game integration and the success/failure of UWP

FYI, Paul Thurrot has a great round-up on the future of Windows APIs:

Microsoft Explains the Future of the Windows 10 App Platform
The Future of Windows, Vaguely (Premium)
Microsoft Confirms UWP is Not the Future of Windows Apps

Here's a slide from Ignite 2019 session BRK3323, Windows App Development Roadmap: Making Sense of WinUI, UWP, Win32, .NET
https://myignite.techcommunity.microsoft.com/sessions/81330
win10-app-platform.jpg


UWP already has support for desktop productivity apps with multiple instances and multi-document interface; additional improvements should come (MSBuild2018 session BRK3506). But it's not a fully capable desktop platform yet - even a simple Notepad clone is quite hard to reimplement as an UWP app.

I assume WinRT/UWP/WinUI would evolve with time to offer full-featured desktop experience, but I guess it would take another rebranding and a new major version of the framework - one that:
1) offers a clear transition path for traditional Win32 "desktop" User32/GDI/ComCtl32/MFC and WinForms applications, "cross-platform" .NET WPF/Xamarin.Forms applications, and "mobile" UWP applications,
2) uses modern C++20/23/26 language features to maintain parity with C# on the .NET platform and memory-safe languages like Rust, and
3) uses C++/WinRT, Rust/WinRT, and C#/WinRT projections for the "lightweight COM" interfaces​
- before developers would accept WinRT/WinUI as the "Windows 10 API", if they could be lured back to the heavily fragmented Windows API landscape at all...

Such reengineering is certainly a huge undertaking, and Microsoft is probably not ready to commit to it in lieu of their current "mobile first, cloud first" strategy, since they're not certain standalone desktop Windows platform can survive in the long run...
 
Last edited:
The way I understand it, Microsoft is to evolve Xamarin together with existing Xaml standards into a new NET Core based cross platform UI ... will be interesting to see if it takes off.
 
The desktop/workstation/laptop will probably exist forever
Windows 10 does support ARM64 and AMD64 platforms, but application software is slowly integrating with the cloud, so web-based operating systems like ChromeOS (and Fuchsia) may eventually displace Windows on the traditional desktop/laptop/tablet PC form factor.

Microsoft is to evolve Xamarin together with existing Xaml standards into a new NET Core based cross platform UI
Not sure it's possible. There are several versions of XAML - Silverlight vs WPF vs Xamarin.Forms vs UWP/WinUI - with too many subtle differences making them incompatible with each other, even though the basic synthax is the same.
They do plan to port WPF / Xamarin.Forms to the cross-platform runtimes (i.e. Linux, MacOS, iOS, Android, and probably tvOS, watchOS and WebAssembly) in .NET 5.
 
Last edited:
Windows 10 does support ARM64 and AMD64 platforms, but application software is slowly integrating with the cloud, so web-based operating systems like ChromeOS (and Fuchsia) may eventually displace Windows on the traditional desktop/laptop/tablet PC form factor.

No idea about windows 10 dissapearing, but tablets and laptops, and perhaps even workstations/desktops i have a hard time to believe. There will allways be people/corporates needing tablet sized devices, laptops and yes even workstation-like devices.
We can have everything on the cloud, but how do we access it? Some still need that tablet sized screen, i can understand thin clients someday, but that also needs to run an OS, over distance or something.

Edit: or i'm understand what you mean the wrong way? You mean that windows will be displaced, not the devices people use it on?
 
Windows 10 does support ARM64 and AMD64 platforms, but application software is slowly integrating with the cloud, so web-based operating systems like ChromeOS (and Fuchsia) may eventually displace Windows on the traditional desktop/laptop/tablet PC form factor.

As long as this happens after I'm dead, I'm fine with it. I absolutely cannot stand cloud based applications for the most part. I tried ChromeOS for 6 months last year and it annoyed me so much that I ended up just donating it to charity. I briefly thought about taking it out to hill out back and shooting it with a variety of guns, but that would have been a waste of hardware. Bleh.

Mobile (smart devices) computing is just as bad IMO. Trying to browse the web on a phone? OMG, it's like being back in jail (don't ask). Office applications on a smart phone? I'd rather break my leg.

I know this is a bit of a rant and many people are perfectly fine doing those things on limited devices, but ugh. :)

Then again people have been saying that desktop Windows is going to die within the next 5 years for the past 20+ years. So, I'm not too worried yet, even with MS preparing for that possible eventuality.

Regards,
SB
 
No worrys, not going to happen. But in the future maybe we all are streaming everything, no more consoles all will be Stadia. How bad that sounds, it probably is going to happen.
 
You mean that windows will be displaced, not the devices people use it on?
Yes. Other operating systems might replace Windows 10 on existing Intel and ARM platforms and devices.

I absolutely cannot stand cloud based applications for the most part.
Mobile (smart devices) computing is just as bad IMO.
True for you and me, but most people just watch Youtube videos and send one-liner tweets.

people have been saying that desktop Windows is going to die within the next 5 years for the past 20+ years.
Even if Microsoft stopped all development and support today, users will still be using Windows for some years to come, even on new unsupported hardware. But ten years from now, will anyone still need Windows 10 to run their desktop applications? With .NET Core /.NET 5 going cross-platform, WPF/WinForms developers will soon be able to run their desktop applications on Linux desktops and Android/iOS tablets. And besides UWP/WinUI, Microsoft has not offered a clear vision of the future of the OS, even though desktop/business users and developers alike just hate UWP.
 
Last edited:
FYI Microsoft announced "Project Reunion" at the Build 2020 keynote today.

https://github.com/microsoft/ProjectReunion
https://www.thurrott.com/windows/wi...ttempt-at-unifying-windows-10-app-development
https://www.neowin.net/news/project-reunion-is-microsofts-new-plan-to-unify-uwp-and-win32

I understand that it's a standalone componentized version of the UWP framework for Win32, .NET Core 5, and React Native / Uno Platform developers using C++, Rust, C#, and JavaScript.
It will support deployment downlevel on Windows 8.1 in addition to Windows 10.
Binary DLLs will be distributed to developers as versioned NuGet packages - can be shipped with your application's MSIX package, or other installation/packaging tools.


So far, the core components include WinUI 3 (a combination of UWP XAML controls and Xamarin.Forms / MAUI controls for Win32 and .NET apps), WebView 2 (Chrome-based web browser control), and MSIX packaging tool (for Windows 10) or MSIX Core tool (for downlevel Windows 7+). Azure's Windows Virtual Desktop is supported.

The've also announced RUST/WinRT and C#/WinRT language bindings in addition to C++/WinRT.


More details shall come with BUILD 2020 sessions

INT111 Unifying and evolving the Windows app platform
INT116 Everything you need to know about WinUI
 
Last edited:
BTW: The earliest session for Unifying and evolving the Windows app Platform is today, in a little under under 4 hours.

upload_2020-5-19_13-56-13.png
 
Well, no new information was given on componentized UWP and Win32 libraries, beyond invitation to post requests on GitHub. Looks like there are no specific plans at this point, at least not until they finalize WinUI 3 preview this Fall.


More interesting is the announcement of .NET MAUI (Multi-platform App UI) which is planned for .NET 6 release in November 2021.

This will be a single-project cross-platform framework that replaces Xamarin.Forms, with native look on Windows, iOS, MacOS, and Android.
It supports Model-View-Update (MVU) - i.e. pure C# code based control rendering, as in React, Redux, Flutter, Elm, Fabulous etc. - in addition to Model-View-ViewModel (MVVM) and XAML.

I suppose MAUI will be mapped to a future version of WinUI on Windows, which also supports MVU - though complex controls are be much easier to support with XAML, because direct coding needs too much glue.

I doesn't really look like they plan to resolve XAML dialect differences with WPF or support other legacy frameworks - going forward, it's all Xamarin.Forms 5 for Net Core 5 and MAUI for Net 6.


devblogs.microsoft.com/dotnet/introducing-net-multi-platform-app-ui/
devblogs.microsoft.com/xamarin/microsoft-build-2020-xamarin/
github.com/dotnet/maui
github.com/Clancey/Comet

BOD106 The Journey to One .NET 01:11:44
BOD107 Build native apps for any device with .NET 00:39:19
MSBuild Live: Digging into new .NET 5, MAUI, MVU Features and Architecture ( twitch.tv/clancey )
 
Last edited:
BTW I seem to have missed some important updates on Project Reunion and C++ language projections from last Fall:

1) WinUI Modern Windowing would replace exising WinRT/UWP CoreWindow, ApplicationView, AppWindow classes with new high-level windowing APIs built upon a low-level interoperability layer based on USER/GDI structures and APIs;
2) Win32 Metadata project provides WinMD definitions for the full set of Win32 APIs, which could be used to implement projections for additional programming languages;
3) C++/Win32, Rust/Windows, and C#/Win32 provide C++17, C#, and Rust projections for the desktop Windows SDK (aka Win32), in addition to existing projections for WinRT/UWP (C++/WinRT, Rust/WinRT, C#/WinRT), potentially merging them into a single library for each language.​

These would implement important features needed for broad adoption of WinUI and Project Reunion which I talked about in the post above, i.e.:

1) provide a transition path for USER32/GDI, ComCtl32/MFC, and WinRT/UWP applications;
2) replace C-style macros in Windows SDK with modern type-safe language constructs; and
3) pave the way for reimplementing Windows SDK with modern C++20/23/26 language features (coroutines, concepts, contracts, reflection, deterministic exceptions, etc.) instead of proprietary extensions and 'lightweight COM'.​

Initial releases are currently scheduled for end of 2021 in Project Reunion roadmap, WinUI 3 feature roadmap, and Win32 Metadata roadmap.

PS. A few excerpts from the Modern Windowing announcement (emphasis is mine):

For UWP we have been in a constant state of "catching up" on core functionality, and never being able to. While for Win32 we have been in a state of non-innovation, leaving developers behind <...>

With Project Reunion we are taking a bold stance - we want all Windows developers to have the power of Win32 windowing at their disposal, but we also want to provide easy to adopt APIs that can provide consistent experiences across apps, as well as easy to use APIs that lower the bar of entry for new developers.

<...> all these APIs are accessible to you regardless of process model - both UWP and Win32 have access to all the layers of the APIs <...> we are giving you the ability to freely move from one layer to the other regardless of where you started from.

<...> UWP have multiple windowing currencies, each with different limitations and life-time management. We are not going to preserve them all <...> we are unifying the windowing model, this means changes to UWP that will require work. <...> If you have worked with AppWindow in UWP, you should be familiar with what we have in mind. <...>

The Register has a nice roundup of the announcement and discussion that followed:
https://www.theregister.com/2020/09/01/microsoft_windows_windowing_api_project_reunion/
 
Last edited:
Back
Top