I spend last decade in *BSD environment (mostly Linux, some MacOS). I mostly work in Python, but also know some C, Java and Ruby and a bit of C++ and Erlang.
Whole .NET idea seems to be interesting to me and C# seems to evolved in nice language. However, I am completely lost in how Windows works now.
What is the best way to learn the whole ecosystem, language and platform? I would also like to explore F# and friends, but my greatest pain is with the whole stack and it's friends (Windows Forms, WPF, LINQ, ...).
My goal would be to gasp the whole thing and be able to do generic development (libraries, webdev, also to scratch desktop).
Where to begin? Which technologies/concepts should I not miss? What are the basic tools used on Windows (aside from obvious MSVS)? Any OSS ecosystem I should follow and learn from?
Free tools preferred, but I'd also like to know about commercial ones.