2012-02-26 52 views
4
.NET应用程序

我需要开发C#应用程序,但我使用Linux(Ubuntu的),我发现MonoDevelop的,但我不明白,如果我能在Linux编写.NET应用程序在Windows上使用,所以Linux上的开发和Windows上的执行。它们是兼​​容的吗?MonoDevelop的Linux上

在单声道的网站,我发现:

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

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

谢谢你的澄清

回答

6

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

这样做的原因是,当你编译一个C#应用程序,它没有被编译为本地系统的代码,它被编译成CIL。当你运行该程序时,它会自动JIT编译你的代码,使它运行的系统完好无损。 Windows上的.NET Framework和其他一切的Mono都可以读取和编译CIL字节码。

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

4

是的,你可以使用单创建可以在Linux,Windows和Mac电脑上运行.NET应用程序。

Mono is

它是基于ECMA标准的C#和公共语言运行库的开源实现微软.NET框架。

这意味着只要您不编写特定于平台的代码,就可以在.NET可以运行的所有平台上运行它。 (所以,而是采用\/您使用的Path.Combine,而是硬编码换行作为\n串联路径的使用Environment.NewLine和这样)。

0

你可以只要你小心,不要假设有关,如文件系统布局和利用图书馆的事情是可以移植的东西。特别是图形界面是有问题的:Windows.Forms在Linux上看起来很陌生,而且Gtk在Windows上可能感觉不太合适。

+0

嗯,所以如果我使用Gtk并创建.exe文件,我将有问题移植到Windows? – Dail 2012-02-26 22:35:58

+0

Gtk#被移植到Windows,因此您不会遇到问题,但在100%的情况下,组件的行为不像本机Windows组件。这是否是一个问题取决于用户界面的复杂性和用户的期望。 – Joni 2012-02-26 22:42:33

+0

你说的外观和感觉正确吗? – Dail 2012-02-26 22:45:50

相关问题