I would agree with the "Do .net because that's where the money with".
I've had 30 years expericens in the computer industry, and probably programmed in more languages than most people have hot dinners.
Yes, you can try and stick with a particular OS or language (usually, in my experience, because it's what you already know, rather than because it is best)
I've done that with OSes and languages inthe past, but if there is no market for them, and the paychecks don't come in, well, go and learn something new.
I've done that serveral times in my career. However, previous experience is rarely wasted. It's always useful to be able to compare why a certain OS feature works a certain way in Windows or MacOS compared to Linux/Solaris/VMS/OS/360 and a few other OS's I've probably forgotten about.
I feel sorry for anyone who has only known a Windows/C# development environment, but there are a lot of things in .Net, especially the newer incarnations such as 4.0 that are actually quite exciting/useful: implementations of generics, lambda functions, LINQ, MVVM design pattern to name a few. Stuff I learnt about in CS classes nearly 30 years ago, but only now am I starting to see in mainstream development (Well you can argue about closures and Perl or LISP and how mainstream there were, and you would be right to do so, however...)
I like being able to just declare List or ObservableCollection. I'm sure I could implement these from scratch, given time. I'm well aware of the implementation differences between Hashtable and List (I've implemented a few in my time). I've been there, and I don't need to spend several more weeks of my life implementing and testing them when I can use what comes out of the box.