As a former .NET developer myself, the stigma isn't wholly unjustified. I've met more .NET developers that don't know what's going on underneath the libraries they are using than I have elsewhere - for example, using the Entity Framework but barely knowing SQL. The Microsoft certification process ensures that developers know how to make the same kind of corporate apps over and over, but don't necessarily understand the basics.
There are a great many talented developers that aren't like that, though. And there is a lot to like about C# - I hope more people use it now that it's being open sourced.
.NET is easy to defend when you need to integrate with traditional enterprises; Java and/or .NET. We work with banks a lot and 'modern' sounding tech is not all too popular with most IT deps 'in the basement'. That would be fine if it would stay put on our systems but as they need to host internally and work with the source code, Java or .NET are the tools for the job. C# and F# are great languages anyway and now open source. Note that F# or Clojure.NET etc are also not always options as big corps usually have (old style) C# and/or Java guys.
Guess depends on the location and the market; I would suggest .NET for a b2c social media startup for instance even though it would work well. Everything works well but then I would guess you might have issues finding your next gig in the same horizontal.
>I would NOT suggest .NET for a b2c social
1. During an interview for a Python role. I had taken their take-home test, and the developers were happy with the code, but most of the interview was around Windows and .NET, with most of their points being around how using Windows wasn't allowed in the office.
2. During a conference, I had a chat with a few guys that worked at Google. After a few drinks I asked them how to go about getting an interview at Google, and knowing that I was a .NET developer they said that many interviewers would look down on me for using Windows, so it'd not be worth applying until I had professional experience working on another stack. Whether this is true or not is up for debate, but I've never been offered an interview, despite being a decent developer with a CS degree, so I'm inclined to believe that it is.
One issue is the generalisation that all .NET developers are corporate shills that are working on enterprise software. I've almost exclusively worked for startups or small agencies, and .NET is yet to fail me. Sure, I could probably earn more if I work for a big company, but there is lots of work out there in small companies for .NET devs.
I think that the biggest problem is that imposter syndrome is quite high among .NET developers. C# is a great language, and .NET is a solid framework to build software on, but historically we've always been very separate from other developers for using a different OS to everyone else, and I think being tied to a single stack bothers many aspirational developers. Windows isn't a bad OS, and I love Visual Studio as an IDE, but I think that if you were to offer .NET developers a first-class experience in Linux with no tooling issues I think the vast majority would switch, purely because it puts them on a level playing field to everyone else.
On the other hand, if someone claims to be a senior C++ developer, it means they may have worked with multiple OS's, multiple frameworks/libraries (because STL is never enough), multiple buildsystems, multiple IDEs and so on.
In the rest of the programming, the framework self-identification is pretty rare -- I have not heard people describing themselves as "boost C++ developer", or "python numpy developer". People will still have strong opinions about good and bad frameworks, but it will not be their primary identification.
Also, if you feel like being a .NET developer is any amount of a detriment to your career you can learn other technologies and techniques. You're a developer first, the .NET is incidental.
If you are a .net developer you'd work with other .net developers all will be ok with being a .net developer. OTOH, if you are not one then what you think shouldn't (and mostly wouldn't) matter to other .net developers.
If you want to know this to decide whether to choose to learn .net, then that decision should probably be based on how interesting it is to you or how useful it is to others (and therefore of economic value) and other such considerations would be worthwhile.
There is a reason and place for every widely used language.
If people have a negative opinion about a particular language, it is usually because they are not entirely acquainted with the language and the ecosystem.
(Speaking as someone who has worked with PHP since 1999)
I said many but mainly PHP, he gave me a look and said "I do .net" and didn't talked to me throughout all dinner, I have to say I was quite pleased he didn't though.