Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port Win client to UWP, put in MS app store #1804

Open
davidpanderson opened this issue Mar 6, 2017 · 30 comments
Open

Port Win client to UWP, put in MS app store #1804

davidpanderson opened this issue Mar 6, 2017 · 30 comments

Comments

@davidpanderson
Copy link
Contributor

MS is moving toward having users download apps only from their app store.
Such apps must be built as Universal Windows Platform apps.
This requires VS2015.

Info: https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-root
Rom thinks that CreateProcess() may be missing from UWP.
However, see
https://social.msdn.microsoft.com/Forums/en-US/537da783-f8af-4ce4-853e-d68bd97e2e88/uwpdesktop-bridgecreateprocess-not-working?forum=wpdevelop

@AenBleidd
Copy link
Member

I've never work with UWP but I can try to do this task this summer

@davidpanderson
Copy link
Contributor Author

Great. The hardest part is likely to be the installer. We do tricky stuff, like creating new users and groups. I UWP's installer features are likely to be much different from MSI.

@adamradocz
Copy link
Member

I think it would be a good idea upgrade to VS2017 and skip the VS2015.

@AenBleidd
Copy link
Member

@adamradocz This will require rebuilding 3rd party libs which are not stored on GitHub. This is possible I guess but should be made as a separate task.

@adamradocz
Copy link
Member

Yes I know. :)
I've tried to do it, but unfortunately my c++ skills wasn't enough to done the job. Should I create a new issue for that?

@AenBleidd
Copy link
Member

Yes, please

@ChristianBeer ChristianBeer added this to the Client/Manager 8.0 milestone Apr 12, 2017
@AenBleidd
Copy link
Member

I made some investigations and I think that it is impossible to make UWP BOINC applications.
First of all there is no possibility to run win32 applications from UWP applications. Also there is no possibility to run background tasks at least for our purposes because Background tasks has limitations:
image
So Manager application only can be written to control external boinc client.
I think this has no reason to be done because we have Manager application already which can be used on Windows/Linux/MacOS and I think we need no additional Windows applications which will run on WIndows 10 only.
So I propose to close this issue.

@davidpanderson
Copy link
Contributor Author

If the Windows default is to allow only UWP apps from the MS app store to be installed, we'll have to deal with this issue. The UWP spec is fluid; we need to at least be able to tell MS what we want changed.

@AenBleidd
Copy link
Member

UWP - is a sandbox. And there is no way to run boinc client. OK, even if we will find some way (I do not believe in this but anyway) there is no chance to let it work in background. Otherwise you will need to keep UWP Manager application opened. Why we need this app be in MS store? In any case boinc client cannot be UWP application so if we will put Manager application to MS store we will need to ask user to download and install separate boinc client outside of MS store.
So again, why we need this applications in MS store?
It will not work on Windows Phone (ok, Manager only can work, but not client) because of the restrictions for background tasks.
I can create UWP BOINC Manager application because I'm interested in this technology but don't think that many BOINC users really need it.

@JuhaSointusalo
Copy link
Contributor

JuhaSointusalo commented May 14, 2017 via email

@AenBleidd
Copy link
Member

@JuhaSointusalo, ok but as I wrote before there is no way to run win32 process from UWP application so we can create Manager application only. And I do not think that it is so needful for device with no boinc client,
In any case this is my opinion only and it could be completely wrong.

@JuhaSointusalo
Copy link
Contributor

JuhaSointusalo commented May 15, 2017 via email

@davidpanderson
Copy link
Contributor Author

I don't currently have any useful contacts at Microsoft, but I can make phone calls and see what happens. It would be very helpful if someone could identify the problematic restrictions.

@AenBleidd
Copy link
Member

Ok, I'll try to do deeper investigation.

@AenBleidd
Copy link
Member

AenBleidd commented May 16, 2017

It seems that there is a way to launch win32 application (boinc client in our case): https://developer.microsoft.com/en-us/windows/iot/samples/externalprocesslauncher
This method works for Windows 10 for IoT only.
Continue investigation...

@broncotc
Copy link

If UWP is put into store (or at least as a side-loadable package) they it should be able to run on Xbox one platform (though is there any computing tasks using directcompute?) Desktop (Win32) bridge for uwp is also helpful.

@Ageless93
Copy link
Contributor

Interesting article on Windows 10 S and the reviewer's view on this for future desktop computers: http://www.zdnet.com/article/windows-10-s-is-the-future-but-not-the-present-of-the-desktop-pc/

@Ferroin
Copy link

Ferroin commented Mar 8, 2018

Unless I'm seriously misunderstanding the limited developer documentation I've seen, the BOINC client won't work at all as-is in S mode. A UWP app version designed to run in S mode would have to pre-load all the project applications as part of the app (and even then it's debatable whether or not it would work, as I have no idea how well any of the project applications will work without any access to the win32 API's).

@AenBleidd
Copy link
Member

AenBleidd commented Mar 8, 2018 via email

@AenBleidd
Copy link
Member

I found this article showing how to launch any executable from UWP application: https://stackoverflow.com/questions/49189353/uwp-how-to-start-an-exe-file-that-is-located-in-specific-directory
But I'm not sure whether it will work on Win10 S because of this article: https://stefanwick.com/2018/04/06/uwp-with-desktop-extension-part-2/
It sad that on Windows 10 S only Microsoft-signed executable can be run from UWP application

@AenBleidd AenBleidd self-assigned this Jun 4, 2018
@AenBleidd
Copy link
Member

Any updates on this?

@agowa
Copy link

agowa commented Oct 23, 2018

S mode in windows is designed around UWP, it has very hard limitations for native applications. But besides that for normal users having boinc in the windows stor at all may already help. And that shouldn't be that much of a problem. As also native applications can be shipped with it. All you need is to contact the Windows Store team and request permission for the native api (if it is not yet available publicly, heard something about this being subject to change last time I submitted an app there).

@adamradocz
Copy link
Member

The BOINC packed with the project files couldn't be a viable option as discussed #1376 ?

@AenBleidd
Copy link
Member

@adamradocz, @agowa338, as far as I know only Microsoft signed executables can be run from UWP application. I'm not sure it is possible to ask Windows Store team to assign couple dozens of applications that are developed by different people and organizations (because boinc is not responsible for all applications that are running using boinc infrastructure).
So if there were some changes to these restrictions from Microsoft please let me know because I found no information beside that one I mentioned i one of my comments above

@agowa
Copy link

agowa commented Oct 23, 2018

@adamradocz, @agowa338, as far as I know only Microsoft signed executables can be run from UWP application.

This is only true for S-Mode, not for generell.
It's called Desktop Bridge (if the api is not open until now).

I'm not sure it is possible to ask Windows Store team to assign couple dozens of applications that are developed by different people and organizations (because boinc is not responsible for all applications that are running using boinc infrastructure).

If this is your concern, you would integrate an "app-service", as an api for other uwp apps to link against. But as mentioned above, it is only relevant for S-Mode.

So if there were some changes to these restrictions from Microsoft please let me know because I found no information beside that one I mentioned i one of my comments above

I don't know if there was a change, but I do know, that you can run native applications from UWP. Have a look at this project of mine: https://github.com/agowa338/WSL-DistroLauncher-Alpine
As far as I know the Desktop Bridge API is open for everybody as well as most other restricted APIs, but you need to fill a short "letter of intent" to get the necessary permissions assigned.

https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-root

@AenBleidd
Copy link
Member

@agowa338, thanks for the links.

@AenBleidd AenBleidd removed their assignment Mar 14, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Backlog
Status: Todo
Development

No branches or pull requests

10 participants