SyncViews said:
Isn't that just a C# wrapper/binding around the native GTK?
That's right, it is and I didn't consider it for this reason. @kodaloid Our software is aimed to be as lightweight as possible and we achieved a quite small package size of 900kb only rather than several GB for like Unreal, in order to get started. We also only provide source and don't have any pre-build assemblies. Everything you need to get started is a compatible version of .NET Framework installed and a small command script to initialize the tooling.
I also had issues more than often in the past on building such huge things like GTK from source, for example when the devs have had a different setup than me or required using third-party tools I didn't had installed to convince the compiler. For this reason, our philosophy and so our build and project management tool Hecate avoids complicated project configuration and instead uses a conventional (almost) zero configuration model
SyncViews said:
Of course if don't want to try for a really native application, I believe a number of applications basically just bundle a web browser and use HTML/CSS for their UI.
That's right and I can see some advantages of going this way. Companies like Microsoft also have done it so far for example in Teams, which is also an Electron application. Anyways, I have worked for such a company as well, that developed it's Windows/Mac software in Electron-Edge and I also saw the downsides of doing it like this. It's not just because you have to be a javascript pro but the biggest disadvantage is debugging the entire thing and coming along some interesting issues like I pointed out in my answer to a topic related to this one.
So yes, HTML/CSS is definietly an option but as input source for our UI Engine only!
kodaloid said:
One of the main real reasons they are not, is because WinForms and WPF are very Windows focused
That's true for the reason that they were developed from Microsoft but the overall technique of WPF for example isn't
SyncViews said:
think the problem is to provide all the desktop stuff in a cross platform manner is really a huge and complicated thing
That's also true, especially the more features you want. But as I said, I just need what I pointed out in my initial post, Window management (without child windows, controls etc., just plain Window), Clipboard, Cursor, Drag n Drop and Tray Icon management (the basics needed for editor software). Since C# offers the drawing library and it is also Mono and .NET 5 included, we decided to develop our own GDI based control system which we want to design along the same concepts that Hecate was designed to. This means we have a node-graph and process those nodes through an actor pipeline which has several renderers attached to. A renderer may be for example handling a button-node in order to draw buttons to the Window (and so on). Also adding some WPF inspired reactive property implementation for the MVVM model
SyncViews said:
And even then, you can't really just develop on one OS, and hope to move it to another and have it really look and behave right… Probably why there are so few such cross platform applications, you still need to spend effort on each one.
Agree, that's why I already installed an XServer on my Windows machine, so it'll be possible for me to work on the X11 stuff as well, up to a certain point and everything else will be done from a team member I already have, which is more familiar with Linux. I believe that it'll work for our needs as the features we want are very basic, propably more basic than those cross-platform solutions are aimed to be
kodaloid said:
Personally I've come to the conclusion in recent years after having a similar mindset, that C# desktop development is best kept for Windows only
Probably that's the reason why there isn't much more effort into going cross-platform C# development these days. Honestly, in my mind I thought I don't have to do that on my own since .NET 5 pointed out to be cross-platform and will remove the need to use Mono from know on but as everything Microsoft does, this was a straight lie and will stay a lie for .NET 6 as well! They already announced that there won't be Linux support for MAUI (their approach for multiplatform UI) and I can't understand that. Yes, there are much more Linux distros out there but supporting at least a Major subset will be not that much of an issue in my opinion. I honestly don't see any reason to develop for Mac but that's from a games perspective so there might be a market for Mac C# … anyways, as we don't support Mac but want to go for Linux as well, there must be a solution that works on windows and Linux