For the past several months, me and my team have been working intensely on Microsoft Office Programming - VSTO and OpenXML. There have been so many discoveries around approaches to take and what works the best. Both OpenXML and VSTO have their own sets of pros and cons. Once the Office Environment (e.g. MS Word) is open, we were pretty much tied down with VSTO and the Word Object model, until we discovered that Range.InsertXML method is pretty much a legal method (hack) to actually manipulate the document at runtime using OpenXML. With OpenXML SDK 1.0, it's not very simple though and with a good deal of inputs from OpenXML Power tools team and other experts we found our way to simplify usage of OpenXML using LINQ and building a helper object wrapper around SDK 1.0. The key is to build it as close as possible to SDK 2.0 which is still in CTP, because the advantage is of that of portabilty when moving from SDK 1.0 to 2.0 whenever it RTM's.

I the next several blog posts, I am going to write about some of the cool things that can be done to solve certain specific Word programming scenarios using VSTO  and OpenXML.

Keep tuned!