使C#/ Winform应用程序跨平台-我应该使用AIR,Mono还是其他工具?

时间:2020-03-05 18:56:02  来源:igfitidea点击:

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

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

再次问了这个问题,并获得了较好的答复。

解决方案

回答

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

回答

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

回答

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

</speculation>

我会使用Java或者Air。

回答

就我在Flex / AIR / Flash操作脚本方面的经验来看,目前Adobe AIR开发环境和编码/调试工具集还不如Visual Studio和.NET SDK。 UI工具集虽然很出色。

但是,由于我们已经有一个工作正常的Ccode,将其移植到ActionScript可能需要重新设计,因为ActionScript具有不同的思维/编程方式,它们使用不同的原始数据类型,例如,它们仅使用Number而不是int float double`等。与VS IMO相比,调试工具非常安静。

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

但是,如果我们不介意编码/调试工具问题,那么AIR是一个不错的平台。我喜欢Adobe如何将Flash体验整合到其中,例如我们可以通过单击Flash Movieclip中的按钮(这种集成)来开始安装AIR应用程序。

回答

如果要使用.net Framework,Microsoft Silverlight是一个不错的选择(唯一?)。浏览器作为shell表现出色,但是我们也可以为其编写自己的应用程序shell。例如,斯科特·汉德尔曼(Scott Handelman)提到了用Silverlight编写的《纽约时报》阅读器,并在Mac上的Cocoa上编写了Hostet。

回答

你为什么要和空气一起去?

使用GTK#,我们将拥有一个跨平台的表单引擎,并且可以保留自己的Ccode。

回答

我认为只要我们确保所编写的业务逻辑代码是跨平台的(即,在路径中使用反斜杠仅适用于Windows的正斜杠就适用于所有OS),那么Mono在运行未修改的WinForms上不会有大问题程序。只要确保我们测试图形毛刺即可。

回答

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

回答

I'm thinking of redoing it in Adobe AIR

我没花太多时间在AIR上,我个人认为这是将Web应用程序带到桌面并为其提供外壳程序或者在桌面上运行现有Flash / flex项目的最佳选择。

顺便说一句,如果我们不了解ActionScript,我的意思是它的详细信息,怪癖等,请不要忘记考虑谷歌搜索答案所花费的时间。

Are there any arguments in favor of WinForms as a cross-platform app? 
  Is there a cross-platform future for Winforms (e.g., Mono, etc.)?

总是很难预测会发生什么,但是我知道至少有一个项目(塑料SCM)在Win,Mac和Linux上使用Mono Winforms,因此它肯定是可行的。但是,他们说他们从头开始构建了大多数控件(并声称他们想将它们作为开源发布,但不确定是否或者何时发布),因此我们将需要进行一些工作以使外观看起来"漂亮"。 。

我在非Windows平台上使用Winforms进行游戏,不幸的是,它并不完全"成熟"(尤其是在Mac上)。因此,开箱即用的产品可能无法满足需求。

如果我们认为台式机应用程序不是提供跨平台解决方案的最佳方法,则始终可以使用Cand编写的业务逻辑来创建具有ASP.NET的成熟Web应用程序或者与Silverlight一起使用,因此存在许多其他选择与C#。