我想为 Linux 制作一个桌面应用程序,我想知道 C#/mono 是否仍然适合它。他们是否计划为 GTK 3 制作包装器?还是 Qyoto 是更好的选择?另外,我想知道 GTK 是否适合 Ubuntu,因为他们计划制作自己的窗口服务器。(如果我没有被误导,它将使用 QT ......)
任何提示都表示赞赏。
2 回答
mono 是否仍然适用于 Linux 桌面应用程序
是的, Banshee 媒体播放器就是一个很好的例子。
他们是否计划为 GTK 3 制作包装器?
像我这样的社区人士正在努力实现这一目标。事实上,已经有一个绑定 GTK+ 3.x 的 GTK# 版本,它是一个标记为“2.99”的预览版本。
还是 Qyoto 是更好的选择?
不确定这一点。我不知道任何使用此功能的关键应用程序,尽管绑定似乎得到了维护和踢。有些事情告诉我,在这个领域还有很多工作正在进行中,还有很多事情要做,因为 Qt 是 C++ 并且很难从 C# 中绑定它。但是最近有一些非常有希望解决这些问题的发展,例如CppSharp。
另外,我想知道 GTK 是否适合 Ubuntu,因为他们计划制作自己的窗口服务器。(如果我没有被误导,它将使用 Qt ......)
你被误导了。Canonical 的 Mir 项目比您想象的要低一级抽象:它打算以类似于 Wayland 的方式替换 X11。gtk+ 和 Qt 都运行在 X11 之上。
话虽如此,如果您对选择错误的选项非常谨慎,则可以使用XWT 工具包,它将您完全从每个平台的工具包中抽象出来。这样,您将来只需要实现一个 Qt 后端(用于 XWT),以防您想在 Linux 平台中停止使用 GTK+。
您可以在 KDE 或 Gnome DE 上使用 Qt 或 GTK,DE 使用什么与您的应用程序无关,因为系统无论如何都会提供两组库。Qt 的优势在于您可以轻松迁移到其他平台。
我个人会远离 Mono,它在所有主要发行版上仍然可用,但以稳定性差着称。它也是不完整的,并且自 2011 年 12 月以来他们还没有发布新版本...例如在我使用的发行版 openSUSE 上,默认情况下未安装 Mono 运行时和绑定很重要 - 与大多数其他大型 VM 不同/解释语言(例如 Python 和 Java)。