问题 跨平台桌面应用程序 - Windows + Mac + Linux


我正在为多个桌面平台构建一个应用程序:Windows,Mac,以及后来的Linux。

我想知道哪种编程语言和IDE组合最适合我:

  1. 编程语言需要是C#(首选)还是Java。
  2. 核心库必须在所有平台之间共享,这意味着所有平台必须链接到单个核心库(按库我的意思是类和函数列表)。
  3. Windows和Mac是优先考虑的,Linux应用程序用于未来的规划。
  4. 该应用程序的设计完全是自定义的,它不遵循每个平台的任何准则。

我陷入了这三种解决方案之间:

  1. 使用Xamarin.Mac + Visual Studio for Windows并链接它们之间的核心类。
  2. 将GTK#用于整个项目,并为每个平台编译多个构建。
  3. 将Java用于整个项目,并为每个平台编译多个构建。

对于#2和#3,我需要一个建议,考虑到我的应用程序的设计,哪种语言更适合我。我的意思是,哪一个对我的目标有更好的GUI构建能力?

BTW GTK#为每个平台使用不同的库,所以这应该是我的核心架构的混乱,不是吗?!


12856
2018-01-14 08:36


起源

Java(我是C#人) - Sam Leach
同样在这里,创建了Java(我是.Net开发人员)。如果你真的想要使用C#,你可以看看Mono(mono-project.com/Start)。 - cubitouch
我最大的问题是GUI设计,Java是否有一个很好的用于UI设计的GUI工具包?! - Hossain Alhaidari
Hossain,是的,有多种选择。 Swing可能是java空间中最重要的一个,虽然JavaFX可能是更现代的,它具有声明性和移动友好性(有点类似于QT,imho)接口规范,它也有一个GUI设计器 - Shayne


答案:


这听起来像Xojo或类似的工作: http://www.xojo.com

Mac,Windows,Linux使用简单的GUI设计和本机应用程序构建。自定义UI也很容易完成,然后您就可以为所有三个平台提供一个代码库。您可以免费下载和使用该软件进行开发和测试,只需在您决定构建应用程序后需要许可证。


7
2018-01-14 09:50



我还要补充说,Xojo使用的是面向对象的编程语言,它非常类似于C#/ Java(它可以创建Web应用程序)。 - Paul Lefebvre


三年后,Javascript现在也是这场辩论的有力竞争者。

空间内有多种选择。

和别的

甚至微软也发布了Visual Studio Code,它是用Javascript编写的开发环境的跨平台版本。

什么是Visual Studio代码编辑器

好处包括利用许多可用的Web库,以及构建/使用您的Web开发技能。


4
2018-05-10 07:08



另外看看这里: stackshare.io/cross-platform-desktop-development StackShare对您可能认为有用的跨平台开发选项进行了比较 - GrahamMc


“GTK#为每个平台使用不同的库”,你的意思是不同的渲染后端(如X11,开罗)?

您只需要构建一次GTK#app。但是,您必须将GTK#运行时(对于Windows和Mac而言不同)与您的应用程序捆绑在一起。 女妖 是一个很好的例子,你可以遵循。


3
2018-03-09 00:58





你也可以考虑Livecode

Livecode: http://livecode.com 对于除了web之外的任何平台,它都是开源的,如果你的代码足够灵活,不是C#或Java,它也包含移动目标。

一个选项是使用C#和GUI独立性在已编译的库中构建核心逻辑,然后将其插入到livecode中,从而使UI适用于该工具。


2
2018-03-08 22:49