dataphor / Dataphor

Dataphor Federated Database Management System
BSD 3-Clause "New" or "Revised" License
69 stars 17 forks source link

Dataphor cross-platform support #56

Open JPercival opened 5 years ago

JPercival commented 5 years ago

Dataphor isn't currently supported on Linux or MacOS.

duncand commented 5 years ago

Targeting .NET Standard 2.0 where possible will provide the best cross-platform support for those components, with respect to being able to run on all major operating systems including .NET Core 2.0+ and .NET Framework 4.6.1+. That would work for core libraries and web interfaces, but not Windows GUIs.

Starting with version 2.1 (not yet stable). .NET Standard will not work over .NET Framework anymore, meaning .NET Core or third-party options like MONO would have to be used for cross-platform support.

Targeting .NET Core 3.0 (not yet stable) means the existing Windows GUIs can also run under .NET Core, though only on Windows, but the rest of the code-base would be cross-platform and still shared with it.

denizzzka commented 5 years ago

It is possible to add build instructions for *nix/linux platform?

JPercival commented 5 years ago

Preliminary work getting Dataphor to run in a linux container is here:

https://github.com/DBCG/Dataphor/tree/linux-container/Docker/dataphoria-web-api

There aren't any build instructions yet and the port isn't complete but it's on my backlog.

A9G-Data-Droid commented 1 year ago

Once all of the libraries are converted to .netstandard2.0 the path for moving GUI code to a cross platform future is to begin to multitarget with .net6 and framework. Once that is working then you can begin to look at UNO: https://platform.uno/ unfortunately, this requires porting all forms to UWP/WinUI, which has a major learning curve and a lack of tooling. The benefit is that this merges all of the GUI code so that you can build for web, Windows, and Linux, from the same source.

duncand commented 1 year ago

Once all of the libraries are converted to .netstandard2.0 the path for moving GUI code to a cross platform future is to begin to multitarget with .net6 and framework. Once that is working then you can begin to look at UNO: https://platform.uno/ unfortunately, this requires porting all forms to UWP/WinUI, which has a major learning curve and a lack of tooling. The benefit is that this merges all of the GUI code so that you can build for web, Windows, and Linux, from the same source.

My recommendation at this point is to skip the multi-targeting and just target straight .NET 6+ with everything, which will run on everything and is modern. Also if you're going to be doing a major forms porting I suggest looking at .NET MAUI which is likewise Microsoft's modern new UI. Now targeting this means you leave Windows versions before Windows 10 behind with this version, but Microsoft has already done so with official support, and legacy Dataphor can still support those.