I’ll be completely honest. I was skeptical of spending my summer working in a Microsoft stack, primarily because Microsoft receives a lot of flak in the undergraduate Computer Science community at Penn (and I’m sure elsewhere too). It seems as if students regard anything resembling open source as the best thing since sliced bread and condemn any proprietary tools as the plague of our industry. Classmates regaled me with horror stories about the awfulness of C# and the bloated software that results. I was left with a pretty bleak picture.
After having worked with C#/.NET for a few weeks now, I can say I’ve been oh so pleasantly surprised. From the automatic properties and lambda expressions of C# to the ubiquity and ease of WCF applications, I love working in it. Do I miss developing in Linux? Sure. Will I ditch Python and move everything to .NET? Absolutely not. But if I have to write a desktop application or a service to link a couple Windows machines together, you can bet I’ll pick C# over Java every day of the week and twice on Sunday.