在Mono和Visual Studio之间共享源代码

时间:2011-04-08 00:24:09

标签: .net visual-studio mono

我想将使用Visual Studio 2008(.NET 3.5 C#)编写的应用程序的服务器组件移植到Linux,并且认为我会使用Mono,以保留单个代码库。

理论上,我们只会更新VS代码,但可以想象两者之间可能存在一些细微的差异,以保持平台的功能。

是否有任何提示/教程/应用程序可以帮助控制两者?

1 个答案:

答案 0 :(得分:3)

你有很多与Mono不兼容的代码吗?理想情况下,您希望保持大部分代码相同,并且只需要在Mono和MS.NET之间进行检查的实例很少。

如果你需要完全不同的Mono vs MS.NET代码,你应该使用一个单独的通用接口实现。例如,我们在我们的应用程序中使用服务总线,可以在MSMQ或ActiveMQ之间进行交换。我们在Mono发行版中使用ActiveMQ,在MS.NET发行版中使用MSMQ。

你说你需要将你的应用程序“移植”到Mono - 这意味着有很多不兼容的代码。如果你大量使用P / Invoke或其他仅限Windows的功能,那将会更难。

我们没有维护Mono版本和MS.Net版本,我们有一个可以在其中编译的代码树。对于具有UI的平台特定程序,我们为每个平台使用单独的UI项目(通常用于Windows的WPF和用于Linux / Mac的GTK - 尽管我们开始关注MonoMac for Mac)。除此之外,我们所有的代码都很常见。平台之间没有任何东西可以维护。