Microsoft Explains the Future of the Windows 10 App Platform

Posted on November 9, 2019 by Paul Thurrott in Dev, Windows 10 with 50 Comments

A senior Microsoft executive told us in May that “UWP is dead” behind the scenes at Build, and I’ve taken a lot of heat for accurately reporting the comment. But the company’s public stance is a lot more nuanced. This makes sense: No developer wants to be told that the platform they’ve invested in is no longer the focus. And of course some Windows 10-based product lines, like HoloLens, can only be served by UWP, and I don’t believe that’s going to change.

I was hoping that Microsoft would provide some clarity about the future at Ignite this past week, and it did: In a session called Windows App Development Roadmap: Making Sense of WinUI, UWP, Win32, .NET, Microsoft’s Paul Gusmorino and James Clarke explained what’s happening with UWP and the other developer technologies that the firm supports for creating modern Windows 10 applications. Or, as they put it, “demystify some of the native platforms that Microsoft offers.”

In their words, Microsoft is now “evolving” the Windows 10 platform for developers after spending several years making big investments in natural user interfaces like touch, pen, and even HoloLens. The result was something that’s now called the Universal Windows Platform (UWP), and it is optimized for mobile applications that can run across a variety of Windows 10-based devices. Previous native Windows APIs and frameworks focused exclusively on more complex and powerful desktop applications that ran only on traditional PC form factors.

Gusmorino and Clarke tried to position UWP as being very successful—it’s been used to create “experiences [that] are used by hundreds of millions of customers every month and accruing billions of hours of usage”—but that’s more a factor of the success of Windows 10 than of the platform itself. (And I sort of assume those numbers are dominated by the in-box Windows 10 apps that Microsoft provides, many of which are based on UWP.) But then they also explained that UWP was no longer the focus because so many developers either can’t or just won’t ever move their existing or new codebases to this platform.

“Not all developers have been able to take advantage of this new technology due to how they’re being delivered,” Clarke noted, alluding to the fact that new platform features were never made available to developers who targeted other Microsoft frameworks like Windows Forms and Windows Presentation Foundation (WPF). “And so, we’re transforming how we deliver our Windows 10 technologies to you to be more agile and inoperable and open.”

If Microsoft had done this when Windows 10 launched over four years ago, we’d have nothing to argue about today. But the firm made many mistakes with this product—for example, making Edge only available to Windows 10 users and only as an in-box application—and they are at least addressing the biggest gaffs.

Until fairly recently, developers targeting Windows 10 specifically (as opposed to targeting previous Windows versions too) had two choices: Win32, an old-fashioned collection of non-hierarchical C/C++-based functions, and UWP, which is modern and clean but, again, is focused on mobile apps. Clarke referred to UWP as “the Universal/Windows RT stack,” the latter of which means the Windows Runtime.

“That created this big left, right decision in people’s minds about ‘do I go this way or that way’ and it’s created gaps for people,” Clarke said. “So, if your organization still has Windows 7 computers, that’s held you back from being able to use [UWP]. Or even if they don’t have the latest version of Windows 10, you haven’t been able to use the latest features of the platform that many of you want. There’s tension because of inoperability with existing code and libraries that people are using, that are closed source, and you don’t even have the flexibility to go modernize it. And there’s been specific features missing in both stacks. These have all created a gap and some tension for people in how we’ve delivered the platform to you.”

To fix this problem, Microsoft is “lifting components out of [UWP] and delivering them independently of the operating system. The result is that functionality that was previously confined to UWP will be available to developers who target WinForms, WPF, or other frameworks. And functionality that used to be tied to a specific Windows 10 version will now work across multiple versions.

That first bit is where the “UWP is dead” comment came from, I believe: UWP is no longer Microsoft’s sole focus for modern, native Windows 10 applications. But as I’ve noted in the past, something like UWP doesn’t literally die, because there are existing code bases that need to be supported for years to come. And developers who have invested in UWP will, of course, be able to take advantage of the new features that will now be delivered outside of UWP, just like WinForms and WPF developers will.  What’s dead is the original (broken) strategy.

“To be clear, it’s still meaningful and valuable to create an app entirely on the Universal/Windows RT stack,” Clarke said. “That’s the only way to create a fully native app to reach all the devices and Xbox, and HoloLens, and other devices in the future.”

Yes. But most developers do not write apps that run on all of those platforms. Most target a single device type only: A PC, a video game console, or an augmented reality (AR) headset. The central advantage of UWP was undercut by this reality, by its lack of sophistication for creating full-featured desktop PC applications, and by the millions and millions of existing code bases out there, none of which can be migrated to UWP. (Among other things; the rise of web applications and their even more universal nature hasn’t helped either.)

Anyway, Microsoft divides its application developer efforts into three layers—a UI layer, an API layer, and an app model—and each is changing.

The UI layers of the past were Win32, WinForms, MFC, and WPF on Win32 and XAML/Visual Layer on UWP. Now, however, Microsoft is separating out the UI layer into something called WinUI, currently in version 2, and most of that already works across both Win32 and UWP. There’s also a XAML Islands technology that lets Win32 developers access XAML-based UIs.

In the future, WinUI will move to version 3 sometime in 2020 and will include all of the key pieces of the UI layer and make them available to all application developers. WinUI is and will continue to be delivered separately from the operating system, so there are no version issues. And it is considered the native UX platform now.

At the API layer, things were split between two worlds: Win32/.NET Framework and Windows Runtime (WinRT, which was limited to Store apps)/.NET Native. Microsoft has moved past this already to make WinRT available outside of the Store and to Win32 developers, and it has evolved .NET into .NET Core and has brought back WinForms and WPF from the dead.

In the future, platform innovations will remain in WinRT, which is now available to all developers, and .NET Core will provide a single .NET runtime everywhere.

And then there’s the app model layer. When Windows 10 first shipped, developers had to choose between the Win32 app model and the UWP app model, and each had its own deployment and delivering mechanisms: MSI and Click Once on the desktop and AppX and the Store on UWP.

Since then, nothing has really changed on the Win32 side. But AppX has evolved into MSIX, and Microsoft has made it and Store deployment available to Win32 developers through the Desktop Bridge.

And what about the future? “Moving forward, we’re looking forward to being able to continue to evolve the app model space to make it less of a hard left-right decision for you but something that is a choice you can make as a developer later on, and not as an initial change.”

That’s not very clear, but a slide that accompanied this part of the talk noted that the division between Win32 and UWP apps would disappear, to be replaced by what Microsoft now calls just Windows apps. Developers now targeting Win32/desktop apps are “in great shape” going forward, they said, and so are UWP app developers. The theory here being that all platform innovations going forward will be made available everywhere, and not just on UWP as in the past.

One big happy family, I guess.

Tagged with ,

Join the discussion!

BECOME A THURROTT MEMBER:

Don't have a login but want to join the conversation? Become a Thurrott Premium or Basic User to participate

Register
Comments (50)

50 responses to “Microsoft Explains the Future of the Windows 10 App Platform”

  1. Avatar

    dontbeevil

    But but uwp is dead... I waited so long for this day... Yesss

  2. Avatar

    jules_wombat

    This is all pretty much irrelevant now. The developer base has moved on from using any Microsoft technologies. We have much wider better choice of development tools, which can deploy across multiple platforms.

    Only a fool would choose Microsoft Dev these days.

  3. Avatar

    ghostrider

    No wonder devs seem truly lost and fed up with MS these days - they just don't know where they stand. One week it's this, next week it's that. Twelve months down they line, they'll turn it all on it's head again. The only constant in all this in win32, which is why devs have kept using these tools, and why MS, despite their efforts, haven't been able to get away from it.

    Windows these days is a developers nightmare - so many tools, options, API's, frameworks etc, and MS aren't helping the situation one bit.

    • Avatar

      hrlngrv

      In reply to ghostrider:

      Somewhat of a tangent, I've noticed a fair amount of Qt-based Windows and Linux software these days. I figure any developer targeting both Windows and Linux is going to stick with cross-platform infrastructures. From a different angle, in terms of 3rd party desktop software, how many developers are left who are targeting only Windows?

    • Avatar

      rm

      In reply to ghostrider:

      This new path/strategy allows developers to go down what ever road they want/need to and still have access to the new tech. So, this is a great change on paper for developers. Will have to see if MS delivers.

    • Avatar

      gavinwilliams

      In reply to ghostrider:

      "The only constant in all this [is] win32" - I guess that's what you've been using? I've seen UWP/WinRT as fairly constant these past years. We've seen ongoing development in WinRT, some small improvements with UWP and the app/distribution model. There hasn't been any change in their ongoing focus on WinRT for years now, if you think otherwise, you haven't really been paying attention.

  4. Avatar

    dontbeevil

    It's funny how lot of people on Twitter complain that thurrot blocked them, just because they're posting facts about uwp.... Thurrot like to talk only with whom share his same ideas... And no, the tweets were not sayings anything bad, wrong or personal attacks... Just civil conversations

    • Avatar

      miamimauler

      In reply to dontbeevil:

      What the hell is wrong with you? Why are you here and also stalking Thurrott on Twitter when you clearly dislike him, Mehedi and this site? All you're trying to do is stir up trouble by trolling and then start crying when your troll posts are removed or you're blocked on Twitter.


      Wake up to yourself man and move on. This obsession with Thurrott can't be helping your mental health.

      • Avatar

        dontbeevil

        In reply to miamimauler:

        Someone else should grow up, but you feel free to live in a closed wrong with restrictions... Don't open your mind, rely only on one single single site and what 2 people says


        P. S.

        I cannot stalk thurrot if I'm blocked, but in can see all people complains about the are blocked popup in my home :-)


        P. P. S

        Sorry if i provide some info on misleading news or some extra news that you'll never see here... But maybe you don't like the truth

  5. Avatar

    bill_russell

    I started out doing MFC/win32 development, but lost interest around the time .NET came into play. Glad I started seeing the software world outside the microsoft-only box at that point. Since then I have used Java, Qt and Wxwidgets - all cross platform including android and embedded ARM linux.

  6. Avatar

    brduffy

    Sounds good. Looks like WinUI 3.0 will essentially be XAML that works regardless of the Windows platform you choose.

  7. Avatar

    wright_is

    a lot more nuanced. This makes sense: No developer wants to be told that the platform they’ve invested in is no longer the focus.

    More nuanced? No longer the focus? Dead means it is no longer in the land of the living, it is a dead parrot, it has stopped breathing, it has ceased to be. In other words, it isn't supported and will disappear.

    I don't dispute you accurately reporting what you were told, just the executive that said that UWP is dead hasn't looked up the meaning of the word lately.

    And of course some Windows 10-based product lines, like HoloLens, can only be served by UWP, and I don’t believe that’s going to change.

    Then it can't be dead, unless those product lines are also dead...

    As I say, the executive doesn't know what the word "dead" means. I think that is the problem. Not being the key technology moving forward is very different to it being dead and buried, never to be seen again.

    • Avatar

      christian.hvid

      In reply to wright_is:

      I think we can all agree that Paul got a headline friendly quote from this unnamed executive and decided to run with it without questioning what it meant. That was obviously a mistake, the "don't shoot the messenger" defense notwithstanding. But we all make mistakes, and perhaps it's time to move past this now that Microsoft finally has cleared things up.


      The upside, at least to the vast hordes of UWP developers who frequent this site, is that almost everything that UWP brought to the table in terms of modern UI and modern APIs are not only going to survive, but are made available to all types of native Windows apps going forward. Which is kind of the opposite of dead.


      As several have noted, the only dead thing is the idea that there's only one way to skin a cat. And this appears to be true across the board: Microsoft given up on the idea that they can rule the developer community by edict and is more focused on providing a broad smorgasbord of options.

  8. Avatar

    wright_is

    agile and inoperable and open.

    I hope they meant interoperable and not defective... ;-)

  9. Avatar

    glenn8878

    It's about time. BUT haven't I heard this before. They always try to make a course correction, only to mess that course correction. This may be the solution, but execution is everything. I suspect this is only the beginning of the beginning of other beginnings. They will never fix the problem.


    UWP is definitely unsophisticated when it comes to the UI experience comparable to Win32. How long did they take to figure this out? That's why iOS is miles ahead while being mobile at the same time.

    • Avatar

      Mr. Smith

      In reply to glenn8878:

      "UWP is definitely unsophisticated when it comes to the UI experience comparable to Win32."


      Not sure if you mean DirectX in terms of gaming, which UWP uses or the difference in API's. I'm also assuming by Win32 you mean WinFoms and WPF there UWP outshines them both with the CompositionVisual Layer Api's.

  10. Avatar

    christian.hvid

    "That’s not very clear, but a slide that accompanied this part of the talk noted that the division between Win32 and UWP apps would disappear, to be replaced by what Microsoft now calls just Windows apps."


    That sounded a bit mushy to me too, but here's what I think: contrary to what many believe, UWP is not a greatest common denominator system that can only access APIs available on all platforms. Instead, UWP lets you query at runtime which APIs are available and "light up" various functions in your app accordingly. I think this model is going to be expanded so that you can also query for the presence of Win32 APIs. In that case, a Windows app will become desktop-only if, and only if, it depends on one or more of the Win32 APIs. If it's able to degrade gracefully in the absence of Win32, then it's by definition a universal app. Hence the soft transition from WinMain to UWP in the diagram.

  11. Avatar

    christian.hvid

    One of the most interesting takeaways from the video was the brief mention of Uno towards the end. I've never heard of it before, but apparently it allows you to run UWP (and subsequently WinUI 3+) applications on Android, iOS and WebAssembly. The latter is the most important, because it will allow developers to optimize their desktop apps for Windows 10 while still supporting Windows 7, macOS and ChromeOS by delivering the same app through the browser. It's basically the same promise as Flutter, but with a Windows flavor.


    Now let's see if Microsoft is willing to throw their weight behind Uno (which is now being run as a side project by a Canadian web design outfit). Lacking that, I think most developers will stay away.

  12. Avatar

    Pierre Masse

    I bless the day in 1983 when, taking a programming course during lunch hour in high school, I decided to quit and never try to do this again.

  13. Avatar

    alsorun

    I watched the whole video. UWP was never dead. Forcing developer to only use UWP was dead.

  14. Avatar

    Winner

    Given how fast Microsoft changes their "futures", what difference does it really make what they say today?

    I remember .net, UWP, web assembly, S-mode, RT, WOA, 10x, .....

    It's all over the place.

  15. Avatar

    john_m

    I think that "more agile and inoperable and open" may be a typo.

  16. Avatar

    pecosbob04

    Isn't the correct spelling gaffe?

  17. Avatar

    hrlngrv

    some Windows 10-based product lines, like HoloLens, can only be served by UWP

    Will there ever be enough HoloLens devices in use to make its needs broadly relevant? Putting this another way, HoloLens may need UWP, but does it need the same Windows underneath that as PCs? From a different angle, would there be any use for HoloLens software on any other type of device? That said, HoloLens may need some e-mail and general web browsing functionality. Finally, even if profitable, would HoloLens ever be more than a rounding error in MSFT's consolidated financials?

    tl;dr -- HoloLens, who cares?

    • Avatar

      Daishi

      In reply to hrlngrv:

      You mean other than the US military?

    • Avatar

      christian.hvid

      In reply to hrlngrv:

      No, HoloLens does not run regular Windows, and the whole point of UWP is to support devices that don't. While HoloLens revenues might amount to a rounding error at this point, it's very clearly a prestige product for Microsoft and it would arguably lose some of its appeal if there wasn't a way to write apps for it.


      That said, it doesn't mean that the 99.9% of apps that do not target HoloLens should have to work within the constraints of UWP, as was the original vision. This is the mistake that Microsoft is now (finally) making up for.

  18. Avatar

    hrlngrv

    UWP was no longer the focus because so many developers either can’t or just won’t ever move their existing or new codebases to this platform

    IOW, MSFT gave developers a framework developers didn't want.

    Just how much PC-focused software development these days is exclusively Windows-focused? If a developer wants to use mostly the same code across Windows, macOS and Linux, wouldn't UWP be a nonstarter? How relevant is UWP to web development?

    To the extent MSFT itself hasn't moved full desktop Office, R Open, other major money-making software packages to UWP, that rather screams UWP IS IRRELEVANT. Not dead, just no particular benefit to using it.

    • Avatar

      alsorun

      In reply to hrlngrv:

      How serious is Microsoft with R open? It is falling so behind that it is embarrassing.

      • Avatar

        hrlngrv

        In reply to alsorun:

        To be fair, no Linux distribution keeps up with CRAN updates. I've added one of the CRAN mirrors as my repository for R, so I keep up with the latest versions. OTOH, I also need to keep R 3.4 around for a few things which haven't been updated to 3.6.x.

        Tangent: I also use GNU Octave since I can't justify getting MatLab, and I've moved on to the Flatpak version since it's updated more regularly than any Linux distribution manages. For arcane stuff like math/stats software, Flatpak or equivalent across most distributions makes a lot more sense than every distribution needing to packages something used by less than 5% of its own users.

        However, I understand why MSFT acquired Revolution. I work for a global financial services company, and many people there have been using R unofficially for years. IT became interested in such blatant violations of restrictions on unapproved software, but we've been able to prove that Excel + mainframe SAS isn't a viable alternative. IT is more amenable to R Open (since from MSFT) than R from CRAN. For IT, the MSFT connection means a lot more than up-to-date functionality.

    • Avatar

      Rob_Wade

      In reply to hrlngrv:

      Well, I consider virtually all web development just garbage. I have yet to run across a website that was worth a darn, and the PWAs that often accompany them are just as bad. So, how relevant UWPs are to web development really makes no difference in my book. If a UWP can give me a better user experience than the web site or PWA, them they get my attention.

      • Avatar

        hrlngrv

        In reply to Rob_Wade:

        Web SITES or web APPS?

        Lots of unpleasant web sites these days, which is why the FIRST thing I do to configure the browser on a new PC is to install an automute add-on as well as an add-on to disable autoplay videos. For me, those are higher priority than an ad blocker.

        As for web apps, there are 2 I find very useful: Draw.io and Pixlr Editor. I don't use either all that often, but I don't have Visio at work, won't spend the money to buy it for myself, and LibreOffice Draw and Gnome Dia just don't work for me. Thus the appeal of Draw.io for the few times I need relatively precise simple diagrams. Pixlr Editor for minor photo editing.

        I don't disagree that local software OR same software running remotely and only sending I/O across the net are almost always LOTS BETTER than PWAs and web apps. Which reminds me: rollApp is handy for running desktop Linux software remotely. Would you consider that a web app?

  19. Avatar

    SYNERDATA

    I am glad I never stopped developing for Win32.


    After all I lost after retooling for Windows Phone, I am sticking with that which is relevant going forward, which is Win32 and ARM64 on Windows.


    I just wanted to include this important developer link for those developing for the new SPX and ARM64:


    Official Support for Windows on ARM Development:


    https://blogs.windows.com/windowsdeveloper/2018/11/15/official-support-for-windows-10-on-arm-development/#MZrOB5xVEvEM7ovU.97

  20. Avatar

    Daniel7878

    Long live winforms. From my cold dead hands.

  21. Avatar

    bluvg

    They never went all-in behind UWP... why would they have expected devs to jump in when they themselves were not? The Windows/Microsoft Store is still problem-ridden, and pushing out apps and app updates is a surprisingly unreliable affair, even today. For instance, Lenovo gave up on pushing out Vantage (their system update tool) via the Store because it kept breaking the app. They now offer a download with a high version number just so the version check will always fail and not try to update the app.


    Fundamentals, Microsoft. Get the fundamentals right first. Please.

  22. Avatar

    will

    Just like IE 11 wont die, UWP will live on in a supported format for many years to come. It will just no longer be enhanced or added to.

    • Avatar

      christian.hvid

      In reply to will:

      UWP is not being put out to pasture, but its scope will be reduced to being an app model rather than a full stack. Most of what used to be UWP will broken out into libraries and become part of the broader Windows development story. Put another way, the only real difference between UWP apps and WinUI desktop applications will be that UWP apps will have a set of constraints that allow them to run on non-Windows platforms and non-PC hardware.


      And like Paul notes, all future innovations will take place in WinUI/WinRT, or "the code formerly known as UWP" - not in Win32. So in a way, your comment is more applicable to Win32/WPF. In fact, WinUI is intended to become a full replacement for WPF, which inevitably will cease to evolve.


      The only thing that appears to be actively killed off is .NET Native, which will be superseded by .NET Core.

Leave a Reply