【问题标题】:What would be the best technology to use for cross-platform GUI development? [closed]用于跨平台 GUI 开发的最佳技术是什么? [关闭]
【发布时间】:2012-08-26 12:26:07
【问题描述】:

我想开始一个新的(开源)项目,我希望它能够在 Windows 和 Mac OS X 上跨平台(Linux 也不错!)

我愿意为每个平台开发单独的前端,但核心逻辑应该共享。

我需要以下内容:

  • 最好是原生 GUI 小部件集
  • FTP 连接(独立于平台的包装器)
  • TreeListView(同样,最好是独立于平台的包装器)

我已经对此进行了一段时间的研究,我发现这些解决方案非常有吸引力:

  • Mono,在 Windows 上使用 WinForms,在 OS X 上使用 MonoMac
  • Lazarus (FreePascal) 与 LCL

单声道专业人士:

  • 使用 C#,这是一种非常适合使用的语言
  • 具有适用于 OS X 和 Windows 的小部件集

单声道缺点:

  • Mono 框架是我的应用程序的依赖项

Lazarus 与 FPC 专业人士:

  • Pascal 也是一门很棒的语言,我知道如何使用 Indy 的 FTP 控件。
  • VirtualTreeview,这是我见过的最好的treelistview控件!
  • 可以交叉编译
  • 还有适用于 Windows 和 OS X 的小部件集
  • 无框架依赖!

具有 FPC 缺点的 Lazarus:

  • 似乎支持正在消亡,但也许只有我一个人。
  • VirtualTreeview 似乎只有 Windows 端口。
  • 可执行文件可能会变得非常大,但这可以修复。

我也用 FireMonkey 研究了 Delphi XE2,但它没有使用原生控件,而且由于抗锯齿,它看起来不像原生的。 :(

现在,我最担心的是,我似乎找不到适用于 Windows 和 OS X 的 TreeListView!我真的需要一个带列的树视图。

重点在于具有跨平台 TreeListView 的技术,该技术有效且仍受支持。

感谢您的宝贵时间!

【问题讨论】:

  • 网络客户端/服务器会是一个有效的替代方案吗?
  • @Erno - 不,遗憾的是,FTP 是必需的 :)
  • Web服务器不能为客户端做FTP吗?
  • 那么将网络服务器合并到客户端中?
  • 不,从网络浏览器连接到网络服务器,让网络浏览器对 FTP 服务器进行 FTP 传输,并将结果传递给客户端。可以为其他客户端缓存结果(如果可以的话)。

标签: c# mono cross-platform freepascal lazarus


【解决方案1】:

我强烈反对帕斯卡。
这是一种垂死的语言,正如您所注意到的,支持会随着时间的推移而减少。
使用更现代的语言提出问题并获得答案的机会要大得多。

.NET/Mono 是一个不错的选择。
.NET 在 WPF 中有 TreeView,但它没有在 Mono 中实现,据我所知,它永远不会实现。

我建议检查的另一个选项是 Java(或者甚至更好 - 其他基于 JVM 的语言,例如 Scala)。
非常跨平台(可能是最跨平台的语言),支持不错,语言还在不断发展(虽然卡了几年),语法+代码风格和C#很相似(不支持LINQ等),这使得从一个移动到另一个非常简单。
JVM 是一个先决条件,但这并不是什么大问题,因为它已经安装在大多数机器上。

【讨论】:

  • 我考虑过 Java,但 AFAIK,它慢慢被 C# 取代 - 我在学校的老师告诉我你只会找到 Java=>C# 书籍,而不是相反。
  • 我刚刚用 SWT 研究了 Java,实际上它看起来很不错。但是,部署jar文件...不可以部署.exe、.app和.elf代替吗?
  • 我本人不是 Java 程序员(我是 C# 程序员,虽然我从大学就知道 java),所以无法准确回答您的问题,但不,Java 不会被 C# 取代。 Java 是一门活跃且不断发展的语言,尽管 C# 的市场份额超过了 Java。
  • 关于 .exe 的问题:这里有一篇关于此事的好文章:excelsior-usa.com/articles/java-to-exe.html 这很长,但如果它对您来说是一个严重的问题,那么值得您花时间。主要看一下“Ahead-Of-Time Compilers”部分。
  • 谢谢!如果这里没有其他选择,我会将您的答案标记为正确。 :)
【解决方案2】:

几年前,我将 Qt 和 wxWindows/wxWidgets 用于 Windows 和各种 *NIX 变体的单一代码库 UI。

坦率地说,我已经很多年没有与他们合作了,我也不知道他们对 Mac OS X 的支持程度如何,但如果你愿意使用 C++(它们都是 C++ 库),它们可能值得一看.

【讨论】:

  • 恐怕不是 C++ 的粉丝..
猜你喜欢
  • 2011-12-08
  • 2014-11-28
  • 1970-01-01
  • 2013-04-14
  • 1970-01-01
  • 2010-09-28
  • 2012-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多