What can you do now? You can start Linux-ready development using Windows. NET applications using P/Invoke, 2) Mixed-mode (managed+unmanaged) C++ and C++/CLI project which can mix up two words an easily interoperate in the same project and same executable module it would be able to play dual role: main module of. NET + native C++ in two ways: 1) Native C++ DLLs linked to. If you did so, you would be Linux-ready by now. So, you could do Windows + Linux + Mac +more development in first place if you used from the very beginning for UI one of the following: Qt, Gtk+. NET (on Windows), Mono - many other platforms).NET/Mono is based in CLI, ECMA and ISO standard, so this is most solid, but this is much more than UI, this is manages memory, IL JIT-compiled code, lots of goodies, big part if it is Windows-specific, but even non-standard parts are vastly supported by Mono.NET/Mono can use shared libraries written on native platform, so this will work for you. Answering the follow-up Question: new UI for Windows, Linux and Mac.įirst, there are several different platforms for Linux all is based on X-Windows, on top of it there is one or another Windows Manager with their APIs (KDE, Gnome), there is multi-platform Qt and Gtk+ (both available on Windows as well, can be a good point for your) and finally, and CLI-based.