You can do it by using Mono:
http://en.wikipedia.org/wiki/Mono_%28software%29[
^],
http://www.mono-project.com/Main_Page[
^].
You don't have to develop on Mono (but you can if you want, using Mono itself with MonoDevelop,
http://en.wikipedia.org/wiki/MonoDevelop[
^],
http://monodevelop.com/[
^]). You can use just .NET on Windows. You won't need to convert anything.
Mono is a good CLR implementation. It supports all standard .NET libraries and a good number of non-standard ones, including
System.Windows.Forms
(unfortunately, not WPF) and ADO.NET you would need to work with database systems.
If the application is developed using .NET accurately enough, it will run on Linux and other platforms without recompilation. Many my applications work like that, even with Forms, ADO.NET and other things.
[EDIT]
All fragments of code incompatible with Mono or non-multiplatform ones could be found automatically using a special utility called MoMA — Mono Migration Analyzer. Please see:
http://www.mono-project.com/MoMA[
^].
—SA