I’d have to agree with Clemens
that one of the coolest parts of .Net is custom attributes. I’m
constantly amazed at how much you can achieve through the judicious use of
attributes. Best of all, since they are much like attributes (should be)
in XML, you can carry them over from one to the other. For example, you
can add some extra attributes to an XML Schema document in the namespace of
your choice, then (if you want to write your own xsd.exe) you can carry those
attributes forward into your .Net classes. Based on those custom
attributes, you can apply aspects to your
objects at runtime, and basically make the world a better place.
When all that work is finished, you can influence the
behavior of your data objects at runtime just be tweaking the schema that
defines them. At the same time, since you’re starting with schema,
you get lots of fun things for free, like XmlSerializer and other bits of
I’m a bit to excited to go into all the details right
now, but suffice it to say the prospects for code generation, attributes and
aspects are pretty amazing. Once we get the work out of the way, the rest
is just business logic. More business, less work.
Say it as a mantra: “more business, less work
more business, less work…..”.