chromelyapps / Chromely

Build Cross Platform HTML Desktop Apps on .NET using native GUI, HTML5, JavaScript, CSS, Owin, AspNetCore (MVC, RazorPages, Blazor)
MIT License
2.98k stars 279 forks source link

Improvement Suggestion #52

Closed aammfe closed 5 years ago

aammfe commented 5 years ago

First of all Thanks for creating this beautiful library 👏 and Thanks for understanding .net people inner thoughts 👍

Unfortunately from Doc look like Chormely does not work on mac. May I suggest you a solution. Avalonia Most popular .net core UI it build successfully on mac as well, It has a Chromium Embedded Framework (CEF) By using It there should be no issue with builds. I think Its most stable way for chromely.

Please share your thoughts on it.

mattkol commented 5 years ago

@aammfe first thanks for the compliment.

Thanks for bringing up Avalonia. It was one of the earlier projects I considered along with LibUI and Nana C++. They are all active and stable frameworks. Except for Nana that is only for Windows and Linux, others are full cross platform. But as a .NET focused project Avalonia seem the right choice. But Avalonia (without changes) does not meet core Chromely requirement. Chromely is designed to be a full-fledged browser to be hosted in the "thinnest" window host possible. I tried at the time to make skinny windows out of Avalonia, but the deeper I get the more work required.

When I discovered Winapi, I decided to go with that as that allows for an easier "thin" window extraction. I meant it as a first trial with the hope of getting back to a true cross platform framework like Avalonia and LibUI. I hope to refocus on a true cross platform again, as soon as I get the some bandwidth, but as you can see, the way the project is currently there is always something to work on.

However, please note that it will not be advisable to use Avalonia as-is currently, because it is a complete UI framework and that would be like embedding chromium into an existing application instead of it being a standalone app. This is why it is noted in ReadMe ---- "It is focused on building apps based on Xilium.CefGlue, CefSharp implementations of embedded Chromium (Cef) without WinForms or WPF.". "

... without WinForms or WPF ...

If this is done, then developers will expect that actual Avalonia controls usage are supported. First this defeats core Chromely purpose and may take focus away from core Chromely functionalities.

aammfe commented 5 years ago

how will you make it cross platform you have plans? Please share.

For a complete solution for community I think its better to stand on giant shoulder.

Avalonia can be used and as time goes thin layer can be extracted.

This way crossplatfrom issue can be resolve quickly.

then new features can be added on top.

right now chormely can not be used as election bcs of its cross platform issue.

Please do consider it.

mattkol commented 5 years ago

"Avalonia can be used and as time goes thin layer can be extracted."

Yes, you are right but it is not as easy as that. If you embed chromium into an existing framework like Avalonia then you are expected to make existing controls work too due to that change. It is a lot of work. Not the intention of Chromely when I started, as I explained.

How to make cross-platform? Avalonia or LibUI. Those 2 are my top options, but I do not have the bandwidth (time) to do it right now. Help is always needed.

Thanks.

mattkol commented 5 years ago

It was in the last option in HelpWanted!

https://github.com/mattkol/Chromely/wiki/Roadmap-and-Help-Wanted