Would it be possible to write an application in C# .NET and later on to port, compile or via any other means run it on Linux? Basically, is plain MS .NET based C# codebase "compatible" with Mono? Will I be able to compile it using Mono?