For the longest time C# is considered. .Net languages suffers from the windows only syndrome. Here you can only develop applications for windows environment. This was one of the major downfall, talking about Java, Python, etc. are platform independent.
The good thing with. Net and C# now is the advent of. Net core. This is an attempt by Microsoft to make the platform, platform independent. And as this takes shape, we should be starting to see the platform concerns eliminated for the. Net stack. It is already rich in feature set, productivity, IDE support and range of apps that can be developed.
There is a subtle miss there in that even the most platform independent languages like Java are rarely used by enterprises in a platform agnostic way. i.e. The enterprise doesn't have a mix of Windows and Linux and Cent Os servers for their Java apps. They still use just one type of ecosystem. But the option of platform independence coupled with the notion of never being forced into a corner by using the Microsoft stack is tempting enough. It also helps (and bad sometimes) that the developers can use any OS and tools to work on the same source code. With. Net languages, it is normally defined to be a Windows Os and Visual Studio IDE.