Clemens Vasters argues that XML is the assembly language of Web 2.0. This is one of the few areas where I thoroughly disagree with him — I’m still convinced that every time you use XML as a low-level implementation detail, you probably shouldn’t have used it in the first place.
One .NET-specific thing I’m skeptical of:
Our WCF [DataContract] doesn’t support attributes. That’s a deliberate choice because we want to enforce simplicity and enhance interoperability of schemas. We put an abstraction over XSD and limit the control over it, because we want to simplify the stuff that goes across the wire.
I understand that if I start with a [DataContract], I will get an attribute-less schema. But how do I use this abstraction when I’m starting with an existing schema?