One of the biggest challenges for developers who need to automate programs like Word, Excel, PowerPoint, Outlook etc.  is that they need to learn the object model learning about various collections and other objects in the target OM to do tasks. This is great, but not when you really just want to address the data of the docoument. It's a true hassle to navigate around the OM just get some sentences or a group of cells (bookmarks, named ranges, lists, and other collections can help in this area).

WordProcessingML (WordML) and SpreadsheetML let documents loaded with data and formatting be expressed as XML. This is great in that there are no secrets, and it is a pretty simple model. But, programming against XML APIs is sometimes cumbersome and too often requires too much code for a simple operation.

But, I was reading this post from Dare Obasanjo where in he states:

The fact is that developers prefer programming against objects than they do programming with XML APIs. No XML API in the .NET Framework (XmlReader, XPathNavigator, XmlDocument, etc) comes close to the ease of use of  programming against strongly typed objects in the general case. Addressing this failing [and it is a failing] is directly my responsibility since I'm responsible for core XML APIs in the .NET Framework.

This is true for Office developers as well. WordML and SpreadsheetML are great, but they are manipulated through the XML APIs, and this has its own lack of ease. What we really need is the best of all worlds: the ability to go for the full, pre-packaged power of the OM, the openness and flexibility of the XML markup, and the ability to think about documents in terms of data alone, like a strongly-typed dataset.

Well, that dream is not far off. Start learning about it here: http://blogs.msdn.com/vsto2/

 Rock thought for the day: Heard the Pixies new song, "Bam Thwok" (I cannot wait to hear Euro DJ's say that one). Very odd little ditty, but kind of fun. I am not wild about it, but these folks show they can put down the arthritis rub and create a catchy song.

Rock on.