我有一个用 C#/WinForms 编写的应用程序(我的小应用程序)。为了使其跨平台,我正在考虑在 Adob​​e AIR 中重做它。是否有支持 WinForms 作为跨平台应用程序的论据?Winforms 是否有跨平台的未来(例如 Mono 等)?关于跨平台 UI 开发的建议?

目前,我所说的跨平台是指 Mac OSX、Windows 和 Linux。

这个问题是 再次询问并回答,取得了更好的成功.

有帮助吗?

解决方案

我正在考虑在 Adob​​e AIR 中重做它

我没有花太多时间使用 AIR,我个人的观点是,最好将 Web 应用程序带到桌面并为其提供 shell 或在桌面上运行现有的 flash/flex 项目。

顺便说一句,如果您不了解 ActionScript,我的意思是它的细节、怪癖等,请不要忘记考虑在谷歌上搜索答案所需的时间。

是否有支持 WinForms 作为跨平台应用程序的论据?Winforms 是否有跨平台的未来(例如 Mono 等)?

总是很难预测会发生什么,但据我所知,至少有一个项目(Plastic SCM)在 Win、Mac 和 Linux 上使用 Mono Winforms,所以这当然是可行的。然而,他们说他们从头开始构建了大部分控件(并声称他们希望将它们作为开源发布,但不确定是否或何时),因此您需要投入一些工作以使事情看起来“漂亮” 。

我在非 Windows 平台上使用过 Winforms,不幸的是,它并不完全“成熟”(尤其是在 Mac 上)。因此,您开箱即用的内容可能足以满足您的需求,也可能不足以满足您的需求。

如果您认为桌面应用程序不是提供跨平台解决方案的最佳方式,您始终可以采用用 C# 编写的业务逻辑,并使用 ASP.NET 创建成熟的 Web 应用程序或使用 Silverlight,还有许多其他选择与 C# 一起存在。

其他提示

就我在 Flex/AIR/Flash 动作脚本方面的经验而言,Adobe AIR 开发环境和编码/调试工具集目前远远不如 Visual Studio 和 .NET SDK。不过,UI 工具集更优越。

但作为 你已经有一个可以工作的 C# 代码, ,将其移植到 ActionScript 可能需要重新设计,因为 ActionScript 具有不同的思维/编程方式,它们使用不同的原始数据类型,例如,它们仅使用 Number 代替 int float double ETC。与 VS IMO 相比,调试工具非常缺乏。

我听说 Mono 的 GtkSharp 是安静的一个不错的平台。

但如果您不介意编码/调试工具问题,那么 AIR 是一个很棒的平台。我喜欢 Adob​​e 将 Flash 体验集成到其中的方式,例如您可以通过在 Flash 影片剪辑中单击按钮来开始安装 AIR 应用程序,这种集成。

WinForms 完全受 Mono 支持,因此它们是跨平台的。

为什么你会选择Air?

使用 GTK#, ,并且您有一个跨平台表单引擎,并且您可以保留您的 C# 代码。

嗯,我认为使用 C# 可靠地跨平台的唯一方法是 微软银光, ,但并不是真正的WinForms,并且是基于浏览器的。除此之外,是的,Mono 是一个机会。

如果您想使用.net Framework,Microsoft Silverlight 是一个不错的(唯一的?)选择。浏览器作为 shell 做得很好,但您也可以为其编写自己的应用程序 shell。例如,斯科特·汉德尔曼 提及 纽约时报阅读器在 Mac 上的 Cocoa 上用 Silverlight 和 Hostet 编写。

我认为 WinForms 根本没有未来。因为即使在 MSFT 世界中,它似乎也是一个权宜之计的解决方案(围绕 Win32 的一个非常薄的包装)。.NET 3.0 和 3.5 中的 System.Windows.Forms 似乎几乎没有发生任何变化

</speculation>

我会使用 Java 或 Air。

我认为只要你保证你写的业务逻辑代码是跨平台的(即在路径中使用反斜杠仅适用于 Windows - 正斜杠适用于所有操作系统),那么 Mono 在运行未经修改的 WinForms 程序时应该不会出现重大问题。只要确保测试图形故障即可。

上周我问了类似的问题。我一直在使用 Mono,运行我编译为 IL 并在 SuSE linux(我通常运行 KDE)或 Windows 上运行的应用程序没有任何问题,但是,我还没有出去测试 mac它在。不过,我很快就会到,可能几周后。但是 Mono 中的所有开发都非常擅长创建可在多个平台上运行的应用程序。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top