Any C # code that you compile from MonoDevelop or elsewhere can be run on any platform using Mono or the .NET Framework. As long as the Linux system has Mono, it can run any compiled C # application, including .exe copied from a Windows computer.
The reason for this is that when compiling a C # application, it does not compile into its own system code, it compiles into CIL . When you run the program, it automatically JIT compiles your code for the system on which it runs, leaving the original executable intact. Both the .NET Framework on Windows and Mono can read and compile CIL bytecode on everything else.
And one thing to keep in mind, Mono does not have the entire .NET Framework stack available. Almost all BCLs are intact, but libraries like WPF are not available in Mono. Mono recommends using GTK # for your GUIs.
source share