Re: I'll stick to my Microsoft stack ...
The "Microsoft stack" is mostly the Linux and/or Java stack, but just bastardized into going the Microsoft way:
Active Directory is LDAP as imagined by Microsoft: weird binary objects needed to change ACLs, non-standard password management/storage, non-standard hashes, forced RDN standards on objectclasses. Oh, and once you create an AttributeType or ObjectClass, you can't never, ever delete it!
.NET is the Java/JVM part, with byteco... um... "MSIL". They added more than one language to compile to this, though.
C# is pirated Java, except a lot of the classpath is actually a wrapper over the Win32 library. (This isn't bad, actually! But it sucks for portability outside Win32). MS didn't have the balls to kill their stupid language (VB) so instead they hacked it into having something "similar" to C# and called it "VB.net".
WebServices using weird stuff that can't be read by other platforms that arent .NET. I regularly had to build shell WebServices on Java just to get a WSDL that could be implemented in .NET and not make everyone else barf at it.
The Microsoft stack is OK as long as you have everything 100% MS.