6

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

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

这个问题又被问了一遍,得到了更好的回答

4

9 回答 9

6

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

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

而且我听说Mono 的 GtkSharp是一个安静的平台。

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

于 2008-09-16T14:05:11.987 回答
4

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

没有花太多时间在 AIR 上,我个人认为最好将 webapp 带到桌面并为其提供 shell 或在桌面上运行现有的 flash/flex 项目。

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

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

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

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

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

于 2008-12-22T06:06:19.753 回答
3

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

于 2008-09-16T14:03:10.633 回答
3

你为什么要选择Air?

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

于 2008-09-16T14:34:20.653 回答
1

好吧,我认为使用 C# 可靠地跨平台的唯一方法是Microsoft Silverlight,但不是真正的 WinForms 和基于浏览器的。除此之外,是的,Mono 是一个机会。

于 2008-09-16T14:03:31.787 回答
1

如果您想使用 .net 框架,Microsoft Silverlight 是一个不错的(唯一的?)选择。浏览器作为外壳做得很好,但您也可以为它编写自己的应用程序外壳。例如,Scott Handelman提到了用 Silverlight 编写的 NY Times Reader 和 Mac 上的 Cocoa 上的 hostet。

于 2008-09-16T14:33:26.707 回答
0

我认为 WinForms 根本没有未来。因为即使在 MSFT 世界中它似乎也是一个权宜之计(Win32 的一个非常薄的包装器)。在 .NET 3.0 和 3.5 中几乎没有对 System.Windows.Forms 进行任何更改

</speculation>

我会使用 Java 或 Air。

于 2008-09-16T14:05:05.730 回答
0

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

于 2008-10-20T18:13:14.730 回答
0

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

于 2008-10-20T18:16:47.953 回答