I think you will find that the open source community and shear volume of choices is much greater in non-Microsoft environments. While you can use Mono to run .Net on Linux, you are probably just adding another layer of unnecessary complexity.
Also, be sure to evaluate the true cost of choosing open-source solutions. There may not be a community to support the software you choose and in the long run you can end up spending as much time/money on maintenance as you would have saved otherwise.