I want to make a Desktop App for Linux and I'm wondering if C#/mono is still suitable for that. Do they plan to make a wrapper for GTK 3? Or is Qyoto a better choice? Also, I'm wondering if GTK is a good idea for Ubuntu, since they plan to make their own window server. (Which will use QT if I'm not misinformed...)
Any hint is appreciated.
问题:
回答1:
Is mono still suitable for a Linux Desktop Application
Yes, and a good example of this is the Banshee Media Player.
Do they plan to make a wrapper for GTK 3?
Various people from the community like me are working to make this happen. In fact, there's already a version of GTK# that binds GTK+ 3.x, it's a preview version labeled as "2.99".
Or is Qyoto a better choice?
Not sure about this. I don't know of any key app that uses this, although the binding seems to be maintained and kicking. Something tells me that there's still lots of work in progress and things to do in this area though, because Qt is C++ and it is hard to bind it from C#. But there are very recent developments to fix these issues which are very promising, such as CppSharp.
Also, I'm wondering if GTK is a good idea for Ubuntu, since they plan to make their own window server. (Which will use Qt if I'm not misinformed...)
You're misinformed. Canonical's Mir project is one level of abstraction lower than what you're thinking: it intends to replace X11, in a similar way Wayland does. And both gtk+ and Qt run on top of X11.
That being said, if you're very cautious about selecting the wrong option, you could use the XWT toolkit, which abstracts you completely from the toolkit in each platform. This way, you would just need to implement a Qt backend (for XWT) in the future in case you want to stop using GTK+ in the Linux platform.
回答2:
You can use Qt or GTK on KDE or Gnome DEs, what the DE uses is irrelevant to your application because the system will have both sets of libraries available anyway. The advantage to Qt is that you have an easy migration path to other platforms.
I personally would stay away from Mono, it is still available on all major distros, but has a reputation for poor stability. It is also incomplete, and they haven't shipped a new release since December 2011... For example on the distro I use, openSUSE, it is significant that the Mono runtime and bindings are not installed by default - unlike most other big VM/interpreted languages (Python and Java for example).