我想从.Net切换到Mono(加上Visual Studio到Mono中的任何IDE)。这真的很难吗?

我将面临哪些问题?

由于

有帮助吗?

解决方案

正如其他人所指出的,我假设你的意思是从.Net框架转移到Mono。话虽如此,您将面临的困难程度很大程度上取决于您尝试移动的代码类型以及您使用的框架的哪些部分。例如,如果你的代码充斥着P / Invoke调用,那么你将会遇到困难。如果它是简单的.Net代码,你可能会相对顺利航行。

您可能希望花一些时间使用 Mono Migration Analyzer (MoMA)。你会碰到那些没有被这个工具捕获的东西,但它会抓住很多基础知识,让你自由地处理更大的事情。

其他提示

我认为Mono还没有完全赶上所有.Net 3.5库,因此没有或部分实现它们。 Mono总是落后于微软,但这是一项了不起的成就和出色的工作。

查看 Mono Roadmap

为了澄清,您可以使用visual-studio在Windows中编译,并在Linux中运行您的应用程序。有很多关于这个或者没有用单声道实现的喋喋不休,但说实话,我没有找到任何遗漏。

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

我认为你在这里混淆了。

Visual Studio是一个IDE,而Mono是.net CLR的实现。

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

这可能与从Windows切换到Linux一样困难。这是一个不同的环境,转换将总是涉及一些事情会有些不合适的时期。这同样适用于.Net - >单声道开关。第一个也是最明显的区别是IDE。和MonoDevelop一样伟大(或者最近有)它不是VS.它没有那么多功能(最重要的是没有Windows窗体或ASP设计器),整体质量可能没有那么高,但它肯定足以让你入门。 此外,我们不应该忘记Mono所拥有的东西,而.Net不喜欢C#交互式编译器或自由参与平台创建。考虑转换为Mono的所有事情都需要一定的努力,但这是值得的。

Visual Studio是一种比MonoDevelop更好的IDE,它自动化很多东西让MD看起来像一个编辑器(有些像这样)。你也可以使用VS和目标Mono这是一个伟大的opion。使用虚拟操作系统,它在Mono的任何主机操作系统支持上都得到了很好的支持。

Mono很接近,但总是会落后于.NET Framework。 Mono也拥有自己的API,比核心.NET中的任何东西都要好。但基本上.NET == Mono在二进制级别上缺少一些遗漏或额外的API。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top