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

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

Making a C#/Winform application cross-platform - should I use AIR, Mono, or something else?

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

目前,跨平台的意思是Mac OSX,Windows和Linux。

再次提出该问题,并获得了较好的答复。


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

但是,由于您已经有了可以正常工作的C#代码,由于ActionScript具有不同的思维/编程方式,将其移植到ActionScript可能需要重新设计,它们使用不同的原始数据类型,例如,它们仅使用Number而不是< x1>等,与VS IMO相比,调试工具非常安静。

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

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


I'm thinking of redoing it in Adobe AIR

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

顺便说一句,如果您不了解ActionScript,我的意思是它的详细信息,怪癖等等,请不要忘记考虑使用Google搜索答案的时间。

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上)。因此,开箱即用的产品可能无法满足您的需求。

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


你为什么要选择Air?

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


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


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


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


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


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


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

1
</speculation>

我会使用Java或Air。


推荐阅读

    linux命令下载工具?

    linux命令下载工具?,工具,网络,代理,代码,简介,位置,系统,第一,下载工具,文

    linux好用的命令工具?

    linux好用的命令工具?,系统,管理,工具,基础,服务,信息,工作,发行,公司,代码,L

    linux常用命令行工具?

    linux常用命令行工具?,系统,工作,工具,地址,管理,信息,命令,软件,目录,基础,l

    linux命令行专业工具?

    linux命令行专业工具?,工具,系统,工作,信息,服务,环境,基础,命令,管理,发行,l

    linux命令行执行工具?

    linux命令行执行工具?,工具,系统,网络,分析,工作,服务,状态,信息,电脑,发行,s

    开发linux命令工具?

    开发linux命令工具?,系统,工具,环境,状态,平台,设计,数据,电脑,中小企业,标

    linux命令行工具大全?

    linux命令行工具大全?,工作,系统,工具,地址,信息,命令,目录,基础,管理,文件,l

    linux命令联想工具?

    linux命令联想工具?,地址,工作,系统,工具,状态,标准,信息,命令,目录,左下角,L

    linux命令工具怎么用?

    linux命令工具怎么用?,地址,系统,工作,单位,工具,密码,服务,命令,处分,基础,

    linux命令行截图工具?

    linux命令行截图工具?,工具,电脑,软件,系统,截图,网站,工作,环境,暂停,命令,L

    linux命令工具教程?

    linux命令工具教程?,系统,工具,信息,基础,基础知识,代码,在线,地址,项目,服

    linux命令行渗透工具?

    linux命令行渗透工具?,系统,发行,网络,工具,信息,地址,管理,数据,工程,中国,

    linux卸载工具命令?

    linux卸载工具命令?,软件,系统,工具,名称,电脑,信息,命令,终端,程序,提示符,l

    linux命令流程图工具?

    linux命令流程图工具?,软件,工具,在线,网站,电脑,流程图,网络,名称,系统,首

    linux命令输入工具?

    linux命令输入工具?,系统,工具,工作,地址,信息,命令,时间,管理,环境,状态,怎

    远程linux命令行工具?

    远程linux命令行工具?,工具,软件,平台,灵活,系统,代码,图片,网络,环境,管理,l

    linux命令行补全工具?

    linux命令行补全工具?,系统,工具,软件,信息,智能,命令,检测,地址,不了,环境,w

    linux跟踪命令工具?

    linux跟踪命令工具?,工具,系统,分析,信息,状态,综合,情况,环境,命令,数据,Lin

    linux命令和应用程序?

    linux命令和应用程序?,软件,系统,环境,管理,基础,情况,位置,电脑,工具,中心,

    linux命令行提示工具?

    linux命令行提示工具?,工作,系统,地址,信息,工具,命令,目录,环境,管理,状态,L