I decided to take a break yesterday from my efforts toward a new site to "enjoy" a little science project. The short description is that it's a little Silverlight app that I'd like to run out-of-browser, talking to the server via a WCF service. Before I knew it, I felt like there was XML configuration everywhere.
It could have been worse, because I figured I'd use the Entity Framework. I came to my senses realizing that was overkill, and used LINQ to SQL instead (which, by the way, has it's own config quirks when it comes to connection strings). I've been a big fan of what WCF can do, in particular the ability to create various endpoints in different formats, but my use of it has only been in the context of suggesting it to others who have already built stuff with it. Yeah, so I got to learn all about the vast configuration options there.
There are days like this where I feel that XML has been christened the great configurator, able to solve every problem. There are some risks that go along with this, I think, that include a certain brittleness to build processes and more difficult debugging. I mean, exceptions around these things rarely say, "Hey, your config is wrong, stupid!"
And even going beyond my science project, jump in with an IoC framework and find yourself in even more XML configuration hell. (Insert Ninject plug here... awesome stuff.) It gets to be a little out of control.
I wonder how we got to this point. I wonder if ultimate control via XML is actually more trouble than it's worth. My gut is that for 90% of development work done worldwide, it's totally not necessary. That makes me wonder why I'm chasing it around today.