Mono对于.Net框架开发者存在的限制

9
我想从.Net(加上Visual Studio)转换到Mono(以及任何基于Mono的IDE)。这会很困难吗?
我可能会面临哪些问题?
谢谢。

1
我认为你想从Microsoft .NET转换到Mono。即使你想为Mono开发,Visual Studio也是一款你仍然可以使用的IDE。 - OregonGhost
6个回答

3
正如其他人所指出的,我假设你的意思是从.Net框架转到Mono。你将面临的困难程度很大程度上取决于您尝试移动的代码类型以及您使用的框架的哪些部分。例如,如果您的代码中充满了P/Invoke调用,那么您将会遇到一些困难。如果这是直接的.Net代码,您可能会相对顺利。
您需要花时间使用Mono Migration Analyzer(MoMA)。您会遇到一些工具无法捕获的问题,但它将捕获许多基础知识,并使您可以自由处理更大的问题。

1

我相信Mono还没有完全跟上所有的.Net 3.5库,因此它们要么没有实现,要么只有部分实现。Mono将永远落后于微软,但这是一个了不起的成就和一件杰出的工作。

看看Mono Roadmap吧。


1

仅为澄清,您可以使用Visual Studio在Windows中进行编译,并在Linux中运行应用程序。有很多关于Mono中缺少这个或那个的讨论,但老实说我没有发现任何遗漏。

现在,如果您想在Linux中进行调试(最终您将需要),那么MonoDevelop是一个不错的选择,但我在RedHat上运行它时遇到了一些问题,所以这取决于您的目标Linux系统。


0

Visual Studio比MonoDevelop更好,它自动化了许多事情,使MD看起来只是一个编辑器(有些人这样认为)。您还可以使用VS并针对Mono进行目标设置,这是一个很好的选择。通过虚拟操作系统,在任何由Mono支持的主机操作系统上都得到了很好的支持。

Mono接近,但始终会落后于.NET Framework。Mono还具有自己的API,这些API比核心.NET中的任何内容都要好。但基本上,.NET == Mono在二进制级别上,除了一些缺少或额外的API。


0

我觉得你在这里有些混淆了。

Visual Studio是一个集成开发环境(IDE),而Mono是.net CLR的一种实现。

我猜你真正想做的是转换到SharpDevelop或其他IDE。


0

这可能和从Windows转换到Linux一样困难。这是一个不同的环境,转换将始终涉及一段时间,当中有些事情会感觉稍微不适合。对于.Net -> Mono的转换也是如此。最明显的第一个区别将是IDE。虽然MonoDevelop很棒(或者最近变得很棒),但它不是VS。它没有那么多功能(最重要的是没有Windows Forms或ASP设计师),而且总体质量可能不太高,但肯定足以让您入门。 另外,我们不应该忘记Mono拥有而.Net没有的东西,比如C#交互式编译器或自由参与平台创建。总而言之,转换到Mono需要一定的努力,但非常值得。


有一个针对Gtk#的设计师,如果你想要开发Linux应用程序,那么这确实是最好的选择。上次我在Vista上尝试了一下Gtk#的UI,效果也不错。回到设计师本身,这完全取决于个人喜好。我总是手动编写所有的UI,这样可以更好地控制和理解事物的运作方式。 - Piotr Zurek
话虽如此,它仍处于预阿尔法状态。 - supercheetah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接