Visual Studio is still heavily operating system orientated, even though .NET is basically designed to be os independent.
I have recently read a tutorial in .NET magazine on how to make a C# app for Windows and Linux.
It required getting rid of a lot of functionality. For os independent programming, I suggest JAVA.