什么是用于跨平台GUI开发的最佳技术?

时间:2012-08-26 12:26:08

标签: c# mono cross-platform freepascal lazarus

我想开始一个新的(开源)项目,我希望它在Windows和Mac OS X上是跨平台的(Linux也会很好!)

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

我需要以下内容:

  • 最好是本机GUI widgetset
  • FTP连接(与平台无关的包装器)
  • TreeListView(再次,最好是与平台无关的包装器)

我现在已经研究了很长一段时间了,我发现这些解决方案很有吸引力:

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

单声道专业人士:

  • 使用C#,一种非常好用的语言
  • 具有OS X和Windows的widgetset

Mono cons:

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

Lazarus与FPC专业人士:

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

Lazarus与FPC缺点:

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

我还使用FireMonkey查看了Delphi XE2,但它没有使用本机控件,并且由于抗锯齿,它看起来并不是原生的。 :(

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

对于具有工作且仍受支持的跨平台TreeListView的技术而言,最重要的一点是。

感谢您的时间!

2 个答案:

答案 0 :(得分:1)

我强烈建议反对Pascal 这是一种垂死的语言,你注意到支持会随着时间的推移而减少 使用更现代的语言,提问和获得答案的机会要好得多。

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

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

答案 1 :(得分:0)

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

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