I want to port the server component of our application, written in Visual Studio 2008 (.NET 3.5 C#), to Linux, and thought I would use Mono, in order to keep a single code base.
Theoretically, we would be only updating the VS code, however it is conceivable that there may be some small, subtle, differences between the two to keep them platform functional.
Is there any tips / tutorials / applications to help keep the two in check?
Do you have much code that isn't compatible with Mono? Ideally you'd want to keep the majority of the code the same, and have very few instances where you need to check between Mono and MS.NET.
If you need completely different code for Mono vs MS.NET you should use a separate implementation of a common interface. For instance we use a service bus in our application which can be swapped out between MSMQ or ActiveMQ. We use ActiveMQ in Mono distributions and MSMQ in MS.NET distributions.
You said you need to "port" your application to Mono - suggets there is a lot of non-compatible code. If you're making extensive use of P/Invoke or other Windows only features it will be a bit harder.
We don't maintain a Mono version and a MS.Net version, we have a single code tree that can be compiled in either. For platform specific programs that have a UI, we use a seperate UI project for each platform (usually WPF for Windows and a GTK for Linux/Mac - although we're starting to look at MonoMac for Mac). Aside from that all our code is common. There isn't anything to maintain between the platforms.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With