O uso pode usar o MonoDevelop para desenvolver aplicativos .net no linux.
Se você usar apenas as bibliotecas disponíveis na plataforma cruzada, os binários criados serão executados nas janelas e no Linux. Desde que você tenha cuidado com os novos caracteres de linha (use Enviroment.NewLine) e com os separadores de caminho (use Path.Combine)
O MonoDevelop tem algum suporte a vb.net, mas o suporte c # é muito melhor (em alguns casos, melhor que o visual studio). Se você é sério sobre cross plataforma .net, então você deve considerar o uso de c # em vez de vb.net.
Isto é o que eu fiz para o meu projeto Wide Margin, que usa c # e roda em linux e windows.