我希望将我们应用程序的服务器组件从Visual Studio 2008 (.NET 3.5 C#)移植到Linux,并且我认为可以使用Mono,以保持单一代码库。理论上,我们只需要更新VS代码,但是可能存在一些微小而细微的差别,以使它们保持平台功能。有什么提示/教程/应用程序可以帮助我们保持这两个版本的同步?
你是否有很多不兼容Mono的代码?理想情况下,您希望保持大部分代码相同,并且只需要在少数情况下检查Mono和MS.NET之间的差异。如果您需要针对Mono和MS.NET使用完全不同的代码,则应使用常见接口的单独实现。例如,我们在应用程序中使用服务总线,可以在MSMQ或ActiveMQ之间切换。我们在Mono发行版中使用ActiveMQ,在MS.NET发行版中使用MSMQ。你说你需要“移植”你的应用程序到Mono - 这意味着有很多不兼容的代码。如果您广泛使用P/Invoke或其他仅限于Windows的功能,则会更加困难。我们没有维护Mono版本和MS.Net版本,我们有一个可以编译任何版本的单个代码树。对于具有UI的平台特定程序,我们为每个平台使用单独的UI项目(通常是WPF用于Windows,GTK用于Linux/Mac - 虽然我们开始看MonoMac用于Mac)。除此之外,我们所有的代码都是通用的。在平台之间没有任何需要维护的内容。
#IF MONO
很糟糕,这意味着您必须维护不同的配置。 - Michael Shimmins