JL. Asked: 2009-08-06 05:06:00 +0800 CST2009-08-06 05:06:00 +0800 CST 2009-08-06 05:06:00 +0800 CST 用于生产的 Mono vs Wine 772 生产用 您更愿意使用 Wine 还是 Mono 在 Linux OpenSuse 11 上运行 .net 应用程序。 mono 6 个回答 Voted Kyle Brandt 2009-08-06T05:53:36+08:002009-08-06T05:53:36+08:00 在stackoverflow 播客 #61中,主要开发人员之一Miguel de Icaza表示 mono 已准备好投入生产,并表示已将其用于生产。他们还在播客中提到了一个Visual Studio 插件,该插件有助于确保应用程序已为 Mono 做好准备。 在这篇 stackoverflow 帖子中,他们认为 mono 也已准备好投入生产。 我从未听说过有关 Wine for .NET 的此类声明。所以我会选择Mono。 Best Answer Peter Turner 2009-08-06T05:09:51+08:002009-08-06T05:09:51+08:00 Wine 的基本安装没有 .net 运行时,所以我会选择 Mono。 wzzrd 2009-08-06T05:10:42+08:002009-08-06T05:10:42+08:00 鉴于 Mono 能够本地运行应用程序,我会选择 Mono。支持方面,这也可能是更好的选择。Otoh,如果 .Net 应用程序使用 Microsoft .Net 规范的特定部分(专利的东西引起了如此多的骚动),那么您别无选择,只能使用 Wine。我什至不知道这是否可能。 Bart Silverstrim 2009-08-06T06:15:47+08:002009-08-06T06:15:47+08:00 有没有理由必须是这两者之一?两者都比较成熟。但这取决于应用程序,因此您必须使用相关应用程序实际安装和配置它们,以查看每个应用程序的性能和兼容性。Mono 可能在大多数情况下都只能运行 hunky dory,但您的应用程序可能具有那一点功能,或者发现一个突然使其爬行或崩溃的故障。葡萄酒同上。 我也会探索虚拟化作为一种可能的解决方案;在工作站上的 Virtualbox 中运行应用程序,或在“本机”环境中的适当系统上运行 VMWare ESXi 或 Xen 将确保兼容性(如果它是工作站应用程序,您甚至可以在无缝模式下运行它,因此它看起来只是另一个应用程序)。 如果您可以提供有关应用程序的一些背景知识,它可能会有所帮助。 Johnnie Odom 2010-09-10T14:25:52+08:002010-09-10T14:25:52+08:00 鉴于 Mono 是 Novell 项目并且 Novell 拥有 SUSE,您可以依靠 OpenSUSE 提供的良好性能和对 Mono 的支持。根据我的经验,Mono 在实现 CLR 方面做得非常好,但有几个库异常。由于通过 Mono 运行 .NET 代码之间的抽象层比通过 WINE 运行任何基于 Windows 的代码要少,因此我肯定会使用 Mono。 然而,我会遇到的一个问题是,这是一个自定义应用程序还是一个预打包的应用程序。如果是前者,那么确保完全的 Mono 兼容性将相对容易(并且您可能希望使用 MonoDevelop 构建应用程序以了解情况,尽管使用 Visual Studio 构建的应用程序应该可以正常运行)。如果是后者,你可能想看看它是否有 Mono 的历史(有些东西,比如 Telerik,被证明可以通过 Mono 运行良好),或者它是否可能使用可能出现的库(例如 MS DirectoryService 片段)问题。 Martin 2010-09-10T14:39:29+08:002010-09-10T14:39:29+08:00 有点离题,但请尝试查看Mono Migration Analyzer,MoMa。 MoMa 是一种工具,可用于测试应用程序是否可以在 Mono 下运行,如果不能,则突出显示导致问题的区域。MoMa 可以在 Windows 和 Linux 上运行,并且非常易于使用。 我只使用过一次,但这是一种查看应用程序是否运行的简单方法。
在stackoverflow 播客 #61中,主要开发人员之一Miguel de Icaza表示 mono 已准备好投入生产,并表示已将其用于生产。他们还在播客中提到了一个Visual Studio 插件,该插件有助于确保应用程序已为 Mono 做好准备。 在这篇 stackoverflow 帖子中,他们认为 mono 也已准备好投入生产。
我从未听说过有关 Wine for .NET 的此类声明。所以我会选择Mono。
Wine 的基本安装没有 .net 运行时,所以我会选择 Mono。
鉴于 Mono 能够本地运行应用程序,我会选择 Mono。支持方面,这也可能是更好的选择。Otoh,如果 .Net 应用程序使用 Microsoft .Net 规范的特定部分(专利的东西引起了如此多的骚动),那么您别无选择,只能使用 Wine。我什至不知道这是否可能。
有没有理由必须是这两者之一?两者都比较成熟。但这取决于应用程序,因此您必须使用相关应用程序实际安装和配置它们,以查看每个应用程序的性能和兼容性。Mono 可能在大多数情况下都只能运行 hunky dory,但您的应用程序可能具有那一点功能,或者发现一个突然使其爬行或崩溃的故障。葡萄酒同上。
我也会探索虚拟化作为一种可能的解决方案;在工作站上的 Virtualbox 中运行应用程序,或在“本机”环境中的适当系统上运行 VMWare ESXi 或 Xen 将确保兼容性(如果它是工作站应用程序,您甚至可以在无缝模式下运行它,因此它看起来只是另一个应用程序)。
如果您可以提供有关应用程序的一些背景知识,它可能会有所帮助。
鉴于 Mono 是 Novell 项目并且 Novell 拥有 SUSE,您可以依靠 OpenSUSE 提供的良好性能和对 Mono 的支持。根据我的经验,Mono 在实现 CLR 方面做得非常好,但有几个库异常。由于通过 Mono 运行 .NET 代码之间的抽象层比通过 WINE 运行任何基于 Windows 的代码要少,因此我肯定会使用 Mono。
然而,我会遇到的一个问题是,这是一个自定义应用程序还是一个预打包的应用程序。如果是前者,那么确保完全的 Mono 兼容性将相对容易(并且您可能希望使用 MonoDevelop 构建应用程序以了解情况,尽管使用 Visual Studio 构建的应用程序应该可以正常运行)。如果是后者,你可能想看看它是否有 Mono 的历史(有些东西,比如 Telerik,被证明可以通过 Mono 运行良好),或者它是否可能使用可能出现的库(例如 MS DirectoryService 片段)问题。
有点离题,但请尝试查看Mono Migration Analyzer,MoMa。
MoMa 是一种工具,可用于测试应用程序是否可以在 Mono 下运行,如果不能,则突出显示导致问题的区域。MoMa 可以在 Windows 和 Linux 上运行,并且非常易于使用。
我只使用过一次,但这是一种查看应用程序是否运行的简单方法。