Mono is capable of compiling .NET executables, and those executables are binary compatible on all machines. If you want to do .NET development on Linux, I recommend you do it using Mono if you possibly can.