You can probably get a server running on the mono platform, but you might need to replace a few things, such as any code using P/Invoke (DllImport), certain parts of unsafe code, and any Windows specific libraries (Winforms for example).
Mono is a cross platform CLR & BCL implementation. The CLR is the core component that makes up .NET, and is an ECMA and ISO standard. The latest version of Mono is up to date with the latest CLR specification (ie, .NET 4.0).
.NET has other layers and libraries built on top of it's CLR implementation. These are not necessarily covered by any standard and may be patent encumbered. That can prevent them being implemented on linux. Microsoft have released a lot of the components under MS-PL/Apache 2.0 licenses though, which makes them available under linux.
There's still some components associated with .NET that aren't available though, for instance, WPF, Contracts, Rx, Winforms (Although it has a mostly complete clone of winforms which is compatible, based on Gtk#).
So, there shouldn't be much trouble to get your code running on linux if you're conservative with your choice of libraries, and avoid native interop where possible.
|