madewokherd / wine-mono

Other
294 stars 39 forks source link

Using/proting parts from Uno Platform? #159

Closed Fox2Code closed 1 year ago

Fox2Code commented 1 year ago

Would be a shame to duplicate parts that have already been done somewhere else!

Project website: https://platform.uno/ Project GitHub: https://github.com/unoplatform/uno

I found it while trying to search how to run UWP apps on Windows 7

Also by checking Uno Platform migration guide they said this repo contain some cross platform UWP apis:

Even if it end up to nothing, I think it is still worth it to share it there.

madewokherd commented 1 year ago

That's cool but UWP is outside the scope of Wine Mono. The C++ APIs are being worked on in Wine itself, and the managed wrappers should be somewhere else so that they can also be used with native .NET Framework.

Fox2Code commented 1 year ago

In fact, I believe some part of UWP support is needed inside wine-mono, and can only be done by either dotnet or by forking wine-mono, and that no amount of C/C++ will fix the part that are required to be present inside wine-mono.

In addition, while some C# modules could be put outside of wine-mono, it is not in line with of the current state of wine mono including dotnetFX and WPF modules.

For example Minecraft require a lot of dll that are available on nugget (See #151) so for me UWP is not outside the scope of Wine Mono but a integral part of it, as without C# wrapper to access the C/C++ in wine APIs, the work wine does to support UWP is useless without native dotnet.

If you don't feel comfortable making UWP support, either because the C/C++ wine code is not ready, or for any other reason, I'll completely understand, but what you just said seems completely contrary to all the work and effort you put into making wine-mono what it is now.

I'm ready to work on UWP support for wine-mono as soon as my health issues problems are solved. If you don't feel like working on it like I said, I'm completely fine with that.

madewokherd commented 1 year ago

The .NET wrappers (which from my limited understanding is in a weird format and not really C# code) can and should exist outside of Wine Mono. They may need to be generated by widl and shipped with Wine itself, or as part of another add-on package.

I did forget that Wine Mono itself will need special support for the wrappers to work, but the rest of it should be done in other parts of Wine. That special support will need to be done in the mono runtime itself, so I doubt Uno would be relevant.

There will be a place in Wine for everything that's needed, but I feel that Wine Mono isn't the right place for the vast majority of the work.

Fox2Code commented 1 year ago

Well, I think some work is needed on wine-mono, but we have all our time to think about it.

I think Uno Platform could be used for UWP "stubs", but I think it would be feasible to make it an external module of wine-mono.

If there is anything that need to be done in wine-mono and cannot be done in an external module I'll just submit a pull request.

I am talking a lot with other peoples about UWP on wine-tkg discord community server, feel free to join if you want to participate to the conversation I have here with other members of the community.