MonoDevelop for Linux在Linux上的应用程序

我需要开发C#应用程序,但是我使用Linux(ubuntu),我find了MonoDevelop,但我不明白我是否可以从Linux编写.NET应用程序来使用Windows,所以在Linux上开发和在Windows上执行。 它们是兼​​容的吗?

在Mono网站上我发现:

Mono是一个软件平台,旨在帮助开发人员轻松创build跨平台的应用程序。

这是什么意思? 我可以在Linux上编写可以运行.NET框架的c#应用程序吗?

谢谢你的澄清

您从MonoDevelop或其他任何地方编译的任何C#代码都可以在具有Mono或.NET Framework的任何平台上运行。 只要linux系统安装了Mono,它就可以运行任何已编译的C#应用​​程序,包括从Windows机器上复制的.exe文件。

原因是当你编译一个C#应用程序时,它不会被编译成本地系统代码,而是被编译为CIL 。 当你运行这个程序的时候,它会自动的为你的系统编译你的代码,使原来的可执行文件保持不变。 Windows上的.NET Framework和其他一切的Mono都可以读取和编译CIL字节码。

还有一点要记住,Mono并没有提供整个.NET Framework堆栈。 几乎所有的BCL都是完整的,但像Mono这样的WPF类库不可用。 Mono建议您使用GTK#作为您的GUI。

是的,您可以使用mono来创建将在Linux,Windows和Mac上运行的.NET应用程序。

单声道是 :

它是基于ECMA C#标准和公共语言运行时的Microsoft .Net框架的开源实现。

这意味着只要你不编写特定于平台的代码,就可以在.NET所能运行的所有平台上运行它。 (所以,不要使用\/来连接路径,而是使用Path.Combine ,而不是像\n使用Environment.NewLine等那样对代码进行硬编码)。

另一个优点是单声道开发工具是免费的。 (见: http : //www.mono-project.com/Main_Page )

您确实可以在Linux 上的Mono中编写.NET代码,并在Windows,Mac OS X和Linux上运行该应用程序。
但请记住,完整的.NET堆栈不适用于您。 最引人注目的是完全缺乏WPF支持 。

只要您小心,不要假设文件系统布局和使用便携式库等任何事情。 特别是图形界面是有问题的:Windows.Forms在Linux上看起来很陌生,而Gtk在Windows上可能感觉有点不合适。