You know what, i love the idea of mono and i did a lot of c# projects. But I just don't trust enough mono to build my stuff on top of mono.
The issues I ran into were many (eg windows forms, data access being not or only partly implemented) so I just gave up and ran the original .NET in a windows virtual machine, rather than mangle it to work with gtk#.
So in principle it is an ideal idea that in practice has many issues due to MS driving .NET development and MONO having to play catch-up and then attempt to mangle the windows-specific code to be cross-platform. YMMV.