我可能会面临哪些问题?
谢谢。
我相信Mono还没有完全跟上所有的.Net 3.5库,因此它们要么没有实现,要么只有部分实现。Mono将永远落后于微软,但这是一个了不起的成就和一件杰出的工作。
看看Mono Roadmap吧。
仅为澄清,您可以使用Visual Studio在Windows中进行编译,并在Linux中运行应用程序。有很多关于Mono中缺少这个或那个的讨论,但老实说我没有发现任何遗漏。
现在,如果您想在Linux中进行调试(最终您将需要),那么MonoDevelop是一个不错的选择,但我在RedHat上运行它时遇到了一些问题,所以这取决于您的目标Linux系统。
Visual Studio比MonoDevelop更好,它自动化了许多事情,使MD看起来只是一个编辑器(有些人这样认为)。您还可以使用VS并针对Mono进行目标设置,这是一个很好的选择。通过虚拟操作系统,在任何由Mono支持的主机操作系统上都得到了很好的支持。
Mono接近,但始终会落后于.NET Framework。Mono还具有自己的API,这些API比核心.NET中的任何内容都要好。但基本上,.NET == Mono在二进制级别上,除了一些缺少或额外的API。
我觉得你在这里有些混淆了。
Visual Studio是一个集成开发环境(IDE),而Mono是.net CLR的一种实现。
我猜你真正想做的是转换到SharpDevelop或其他IDE。
这可能和从Windows转换到Linux一样困难。这是一个不同的环境,转换将始终涉及一段时间,当中有些事情会感觉稍微不适合。对于.Net -> Mono的转换也是如此。最明显的第一个区别将是IDE。虽然MonoDevelop很棒(或者最近变得很棒),但它不是VS。它没有那么多功能(最重要的是没有Windows Forms或ASP设计师),而且总体质量可能不太高,但肯定足以让您入门。 另外,我们不应该忘记Mono拥有而.Net没有的东西,比如C#交互式编译器或自由参与平台创建。总而言之,转换到Mono需要一定的努力,但非常值得。