microsoft / WindowsAppSDK

The Windows App SDK empowers all Windows desktop apps with modern Windows UI, APIs, and platform features, including back-compat support, shipped via NuGet.
https://docs.microsoft.com/windows/apps/windows-app-sdk/
MIT License
3.81k stars 321 forks source link

What's next for the replacement of UWP that runs on all windows based platforms? #215

Closed 77376 closed 4 years ago

77376 commented 4 years ago

First, Where are the MS efforts/big MS apps? VS Code, Teams, MS-Edge(Chromium), Full-Featured Office Suite in UWP? can understand of Visual Studio being not available in UWP but what about those others?

Second, Why Developers have not picked up UWP ?

Ans: the restriction for "privacy" are moving/have moved away devs from uwp. If MS doesn't at least try to make the platform closer to Win32, the situation isn't going to change any time soon. and it hasn't yet.

what Project Reunion seems to be basically the next steps of XAML Islands, It Is like one way letting winForm, WPF, MFC, win32 apps just access the winRT components. What's the point of developing UWP apps if it doesn't run on all platforms with win32 feature parity or at least have user-approved win32 feature parity ? Developers are simply not gonna invest their time and effort developing simple/extremely basic toy apps. developers are not guinea pig. and I'm afraid that according to MS history, instead of maturing winRT API surface ,UWP app devs will simply be thrown out to towel sooner or later.

Why we have to ask for basic win32 functionalities/APIs proposals for winRT in 2020, after uwp has been in scene for 8 years since 2012? We have been asking for simple features for the last 5 years and how many of them have been implemented till date? Why the awkward situation is still the same for UWP apps as were in 2015?

What about .NET5 support for UWP ? no nothing. What I'm trying to say is in brief of issue no. #105 comments,

So, As of 2020, UWP is pretty much dead/maintenance mode. What's next for UWP replacement that will run on all windows based platforms (because no one gonna write UWP apps with all these annoying restrictions)?

77376 commented 4 years ago

The comments of this twitter poll strongly reaffirms this sole annoying restrictions reason.

Poopooracoocoo commented 4 years ago

I wonder what Microsoft will say. They've been switching from UWP -> RN -> Electron and they basically aren't developing native apps anymore :( it's disappointing considering that MS Office isn't web based. Everyone here has realised that UWP is dead.

77376 commented 4 years ago

@Poopooracoocoo as usual MS shoots itself in the foot with it's half-backed effort. UWP was so shiny and all but ruined by MS itself.

some newer teams at microsoft explicitly said on twitter that they wanted to adopt the UWP app model but they can't because of UWP app model's way too much restrictions. Can't MS restrict those functionalities that try to directly modify the system (for preventing malwares) and open up every other win32 functionalities for UWP apps without using runFullTrust that will run on all platforms ? Is it asking too much ?

77376 commented 4 years ago

It all started the day when microsoft's Kevin Gello announced XAML Islands in 2017 and after 3 years we all know what it has become ~ the ProjectReunion....

in App Development Community Standup: Project Reunion Update held in july in youtube , Kevin Gallo mentions they're working on method of reusing AppModel sandboxing mechanism to also sandbox unmodeled win32 apps @31:57

so, do you think UWP will have any single worth when unmodeled win32 apps could be fit in the sandbox within it's superior functionalities set compared to toyish UWP ? Smell something?

according to MS's own current actions, apparently the future becomes win32+.NET "X"+winUI wrapped in the sandbox mechanism Kevin Gallo was referring there. and this win32 sandboxed apps maybe(/should) able to run on all windows based platforms once it's done.

now every action of MS regarding UWP makes sense, now I can see why MS never went all in UWP. If wrong, I would like to get it corrected someday.🙂

ptorr-msft commented 4 years ago

I'll answer the question in the title of this issue. The short answer is that the 'U' in "UWP" stands for "Universal" -- UWP is the thing that runs on all Windows-based platforms.

There is a renewed focus on Desktop apps, and Project Reunion is partly about bringing "UWP features" to Win32 apps, but it's also about bringing "Win32 features" to UWP apps.

do you think UWP will have any single worth when unmodeled win32 apps could be fit in the sandbox within it's superior functionalities set compared to toyish UWP ?

This is a great way to illustrate one of the primary goals of Project Reunion (although this one is a longer journey than say WinUI 3): What's the difference between a "Win32 app running in the sandbox" and a "UWP"?

Insert JPG of Neo "there is no spoon."

"UWP" is many things, but one of its core technologies is the AppContainer sandbox. So if you have a "Win32 app" and run it in an AppContainer, you've essentially got yourself a "UWP." Confusing? Yes, naming things is hard :(.

Depending on the features that the app uses, it might not work on non-Desktop devices (HoloLens doesn't have all the features that Desktop has, for example) but the developer should have the choice to limit their API usage to whatever subset works on the device(s) they intend to target. Want to run on Desktop and HoloLens? Avoid <set of APIs not supported on HoloLens>. Only care about Desktop? Use whatever you want.

When Windows 10 was first introduced, the focus of "Universal" was more about "you app should run on all devices" (e.g. limited set of APIs available) and now it's more about "your app can run on all devices, but doesn't have to."

Again, this is not something that will happen overnight, and things like the 80/20 rule and the law of diminishing returns will dictate which specific features come to "UWP" and which specific features come to "Win32", but it is the direction we're going in. And we need your constructive feedback :).

77376 commented 4 years ago

What's the difference between a "Win32 app running in the sandbox" and a "UWP"? "UWP" is many things, but one of its core technologies is the AppContainer sandbox. So if you have a "Win32 app" and run it in an AppContainer, you've essentially got yourself a "UWP." Confusing? Yes, naming things is hard :(.

Thanks for your reply. and also thanks for clearing the long-misunderstood by many journalists/peoples the "UWP" spec/concept . so essentially , anyapp that uses any UWP core technology(CoreWindow, AppContainer) is what we know a "UWP" app.

Again, this is not something that will happen overnight, and things like the 80/20 rule and the law of diminishing returns will dictate which specific features come to "UWP" and which specific features come to "Win32"

That's been as I said a looooong wait.. I hope law of diminishing returns this time favours "win32 apps running in UWP's AppContainer " .

Poopooracoocoo commented 4 years ago

the problem with microsoft's new approach is that it's leaving xbox behind and even their new windows 10x. i wonder how many devs would've gone with uwp if microsoft had decent uwp apps. onenote took a long time to get to where it is now, for example.

77376 commented 4 years ago

@ptorr-msft

back to the main question, details in issue no. #219 (if things like win32 apps in appContainer➡per app permission system gets implemented) + it's not always sustainable to rewrite every apps from scratch , +also given the current investments and efforts going in modernizing win32 apps,

~will MS allow win32 wth winUI apps running in AppContainer in Low-IL mode to also run on hololens,xbox,10x,hub in the future ? I will close this issue once an explicit answer is given.

mdtauk commented 4 years ago

the problem with microsoft's new approach is that it's leaving xbox behind and even their new windows 10x. i wonder how many devs would've gone with uwp if microsoft had decent uwp apps. onenote took a long time to get to where it is now, for example.

I believe once WinUI 3 comes out, they plan to make a release for Xbox, but WinUI 2 should work with Xbox apps*

*I think anyway

I know I intend to push for including Xbox control templates in WinUI so things like overscan, focus reveal, and the Barnschrift fonts are all in place https://github.com/microsoft/microsoft-ui-xaml/issues/698

Poopooracoocoo commented 4 years ago

I meant Microsoft's approach of WinUI in win32 apps

ptorr-msft commented 4 years ago

@m98770

~will MS allow win32 wth winUI apps running in AppContainer in Low-IL mode to also run on hololens,xbox,10x,hub in the future? I will close this issue once an explicit answer is given.

We can't give any guarantees like that, especially for any arbitrary Win32 app. Is it in the spirit of Project Reunion? Yes. Can we confirm it will happen (or in what particular time-frame)? No, sorry.

77376 commented 4 years ago

@ptorr-msft

We can't give any guarantees like that, especially for any arbitrary Win32 app. Is it in the spirit of Project Reunion? Yes. Can we confirm it will happen (or in what particular time-frame)? No, sorry.

got my answer . Thanks 🙂. closing

Gavin-Williams commented 3 years ago

"the restriction for "privacy" are moving/have moved away devs from uwp. I don't understand this concern, and I'm not sure it's widely held anway. The twitter poll that was referred to shows that nearly as many dev's use UWP as WPF anyway. And frankly, I see more people working with UWP than WPF these days.

Not saying UWP doesn't have issues, but I'm not sure this concern for 'privacy' is an issue.

And I am so sick of hearing this garbage ...

Developers are simply not gonna invest their time and effort developing simple/extremely basic toy apps

If developers are making simple toy apps, that's up to them, it has absolutely nothing to do with UWP. You can just as easily make simple/extremely basic toy apps for WinForms, WPF, Desktop, Android etc. Developers are only limited by their abilities.

Show me a simple toylike UWP app, and I will show you an app that 100% reflects the effort the developer put in. You get out what you put in.

basic win32 functionalities/APIs proposals for winRT

What functionality and API's are you thinking of. I think it's important to specify exactly what you want.

DmitryBorodiy commented 2 years ago

First, Where are the MS efforts/big MS apps? VS Code, Teams, MS-Edge(Chromium), Full-Featured Office Suite in UWP? can understand of Visual Studio being not available in UWP but what about those others?

Second, Why Developers have not picked up UWP ?

Ans: the restriction for "privacy" are moving/have moved away devs from uwp. If MS doesn't at least try to make the platform closer to Win32, the situation isn't going to change any time soon. and it hasn't yet.

what Project Reunion seems to be basically the next steps of XAML Islands, It Is like one way letting winForm, WPF, MFC, win32 apps just access the winRT components. What's the point of developing UWP apps if it doesn't run on all platforms with win32 feature parity or at least have user-approved win32 feature parity ? Developers are simply not gonna invest their time and effort developing simple/extremely basic toy apps. developers are not guinea pig. and I'm afraid that according to MS history, instead of maturing winRT API surface ,UWP app devs will simply be thrown out to towel sooner or later.

Why we have to ask for basic win32 functionalities/APIs proposals for winRT in 2020, after uwp has been in scene for 8 years since 2012? We have been asking for simple features for the last 5 years and how many of them have been implemented till date? Why the awkward situation is still the same for UWP apps as were in 2015?

What about .NET5 support for UWP ? no nothing. What I'm trying to say is in brief of issue no. #105 comments,

So, As of 2020, UWP is pretty much dead/maintenance mode. What's next for UWP replacement that will run on all windows based platforms (because no one gonna write UWP apps with all these annoying restrictions)?

UWP and WinUI is a future of Windows. Win32 apps are deprecated and needs to be migrated to UWP. What is Win32 apps? Win32 is a classic desktop app AND ONLY DESKTOP. Win32 is good option for professional apps, which are designed for professional use. But these apps are not optimized for consumers using a Windows device for consumer purposes. Win32 applications are not optimized for simple use and are not suitable for consumer use. So, Win32 is a deprecated platform without all Windows ecosystem support and can't run natively on Windows for ARM, Xbox, HoloLens, Surface Hub 2 or 2S. But Win32 is still the recommended platform for classic developers.

What is UWP and WinUI? UWP is the future of Windows development, a new platform for building modern applications using all modern APIs that runs on all Windows devices, including Xbox, Windows on ARM, Windows for Team and HoloLens, as well as Windows IoT. Well, if you're developing a Windows client app, UWP is your best choice. Not to be confused with WinRT and UWP, UWP uses the WinRT API but is not. The UWP is a new branch of the evolution of Windows applications created to develop applications for the ecosystem of Windows devices. WinRT is a set of APIs for the Windows Runtime, but WinRT is an application for Windows 8 / 8.1. WinRT APIs are still used in UWP, but not fully, as UWP is compiled via .NET Native and runs natively on Windows 10. Microsoft originally referred to the new APIs as UWP APIs. So finally UWP is not UI framework, UWP is API. So, what is WinUI? WinUI is a UI library for apps, which provides a set of graphical controls for Windows applications. Well WinUI is not an API but just a graphical framework for your application.

What if you have a consumer-oriented client application or education app? (Not enterprise) The best solution would be to migrate your app to the UWP/WinUI. UWP apps using WinUI will work great on all Windows devices and support any input method. And also work across the entire Windows ecosystem, giving your customers a consistent experience across Windows devices. I recommend that you read the documentation for migrating your app to UWP. https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-migrate

What if your project or solution is targeted for corporate use? If you already have a Win32 application targeted for corporate or commercial use, you can access the modern UWP API by migrating to WinUI 3. Read this docs: https://docs.microsoft.com/en-us/windows/apps/winui/winui3/

Thank you! Merry Christmas and Happy New Year! 🎄🎄🎄 Best wishes for Windows devs!

DarkSystemCD commented 1 year ago

Win32 is a social method of internet connectivity, where scrooling spam posts are not consumed on a offline environment of software development;

this advertsement was placed in discovery of these terminologies to support the private enterprise variable, the uwp going for maui;

the database generated from the internet, cast in spell of project reunion for the privacy concern of manipulation;

a greater fame of mobile apps, and blog postings showcasing softwares raised the store; the development that now a.i. and networks from the personal computer;

lefting the discovery of the humanities advancing the perception of jow to conquer the stteeets from this virtual reality;