En motores de base de datos, cada quien elige, pero te recomiendo PostgreSQL es mucho muy potente y anda perfecto con .net tanto con microsoft como con Linux.
Sobre el IDE puedes usar SharpDevelop
http://www.icsharpcode.net/OpenSource/SD/ mucho mas liviano que el visual studio, pero super potente, open source y con integracion con mono, puedes compilar en mono o microsoft.net desde el mismo IDE.
Sobre el tema de migracion la verdad cada dia es mas simple, solo que cuando programas debes evitar usar las librerias propias del sistema oprerativo, como llamadas a la API de windows, o usar componentes de terceros, que normalmente usan componentes COM, si programas 100% usando las librerias del framework normalmente la migracion es simple.
Puedes descargar del proyecto mono una utilidad llamada MoMa que analiza un ejecutable o dll .net y te informa que no esta soportado, o que funciones o procedimientos no son migrables.