【问题标题】:C# Cross platform GUI for desktop and mobile用于桌面和移动设备的 C# 跨平台 GUI
【发布时间】:2016-11-02 14:21:38
【问题描述】:

我有一个用 C# 编写的爱好项目。库用于地理计算,它有超过 4000 行代码,我花了数年时间开发它。最近我使用 Windows Forms 完成了 GUI 并免费分享。我得到了很好的反馈,现在我想让它跨平台。

问题是,经过几天的互联网搜索,我一无所获。所有链接都已过时。我更喜欢 JavaFX 之类的东西,在那里我可以为桌面和移动设备创建一个 GUI,而无需太多编译麻烦。

  • GTK# 卡住(没有移动设备,也没有与 Xamarin Studio 的新版本集成)
  • QtSharp 处于 Alpha 阶段
  • 移动版 Eto.Forms 仍在开发中

在 2016 年末是否有任何免费的工作替代品以及良好的教程/文档?还是我必须用 Java 重写我的库并在 JavaFX 中创建 GUI?

【问题讨论】:

  • Xamarin 怎么样?无论如何,这个问题在 StackOverflow 中是题外话
  • Xamarin 仅适用于移动设备。在我看来,他们放弃了桌面(GTK 2 现在技术太老了)
  • 你的问题是“桌面和移动的 GUI”。如果您打算使用 linux,则可以使用 Mono 在 linux 中运行 .Net 应用程序
  • 所以我需要使用 Xamarin.Forms 创建移动 GUI,使用过时的 GTK2 创建桌面 GUI?这还不够好解决方案。在这种情况下,我基本上必须维护 2 个应用程序,其中一个应用程序使用过时的技术。
  • 您只需维护两个 GUI 组件,而不是两个“应用程序”,因为仍然共享许多非可视代码。这已经是这个领域的黄金法则,没有人会期望一个统一的框架会突然出现。

标签: c# user-interface cross-platform


【解决方案1】:

目前还没有支持所有平台的 .Net 框架。覆盖大部分平台的解决方案是Xamarin(目前支持Android、iOS和MS Universal App)。正如this post suggest 可能在不久的将来也会有适用于 Linux 系统的 Xamarin 版本。
但还有一个替代方案:duocode。基本上,它是将 c# 代码转换为 javascript 的工具,一旦转换,您就可以使用 javascript 代码使用跨平台框架(如cordova)实现移动界面。您将拥有两个不同的应用程序,但具有相同的代码库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-28
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多