在Mac和Linux等其他平台上使用C#.Net Windows应用程序

时间:2013-08-20 09:36:12

标签: c# java .net cross-platform

我在C#和.Net中有一个开发良好的Windows应用程序,它在UI(窗体)模式和命令行模式下都能很好地工作。

但是现在,它必须能够在其他平台上使用,如Mac和Linux。

是否有可能在没有用Java重新编码或重新开发的情况下使用它?

3 个答案:

答案 0 :(得分:5)

对于跨平台.NET,您可以查看Mono项目。

  

Mono是一个软件平台,旨在让开发人员轻松实现   创建跨平台应用程序。由Monama赞助的Xamarin是一个   基于.NET的Microsoft .NET Framework的开源实现   ECMA标准C#和公共语言运行时。越来越多   一系列解决方案和积极热情的贡献   社区正在帮助Mono成为首选   开发Linux应用程序。

答案 1 :(得分:4)

  

是否有可能在没有用Java重新编码或重新开发的情况下使用它?

是。 Swing和JavaFX是用于查看桌面应用程序的GUI工具包。两者都由Sun / Oracle(分别为1.2 / 1.7 Java版本)和开源提供。当然,Java支持布局本地化(例如,如果用户具有从左到右的语言,LINE_START的布局约束将在左侧定位组件,如果他们的本地语言是正确的,则在右侧定位组件。左)和语言本地化(IL8N)。

  • Java FX是Oracle的“下一代”GUI工具包。我还没有相关经验,但知道它是跨平台的。
  • Swing是一个全面,成熟,强大的GUI工具包。 Swing支持布局管理器& Look-& -Feel结合在一起,使我们能够以“原生”的外观和感觉展示GUI,并且还可以根据该外观逻辑地调整组件的大小和位置。 有关代码&和Nested Layout Example,请参阅显示最终结果的屏幕截图(下面的2个)。

Windows Look&感觉

OS X'Aqua'外观&感觉

答案 2 :(得分:2)

如果不在Java中重新开发它,是否可以使用它?

是的,使用Mono。你可以查看Mono项目

在Linux和Mac中执行时可能会遇到一些问题

  1. .resx文件不会以单声道执行。您必须使用Monodevelop开发单声道特定UI或选择.resx文件构建操作属性为无
  2. 使用Path.Combine而不是硬编码路径
  3. 使用#if ..#elif .. #endIf等预处理程序指令进行特定于平台的代码执行