Tim Murphy's .NET Software Architecture Blog

January 2010 Entries

The Challenges of Inconsistent Implementation and Office Document Generation

I have spent the last several months developing solutions with Office 2007 and the Office Open XML SDK 2.  Our client has requirements that cross the suite from PowerPoint Presentations to Word Documents.  The Open XML standard which define the structure of these documents is very powerful.  My biggest frustration is the lack of consistent capabilities between the products. 

Since we are doing document generation based on templates it is very important we that the code can consistently identify any part of a document, whether that is a section of text, a chart, a table or an image.  While Word 2007 has Content Controls and Custom XML (2007 only) which can be used for marking up a document, similar features are not available in PowerPoint.  This is a major issue for us since the majority of our templated work is in PowerPoint.

A key to a successful solution for me is that a markup needs to be consistent in the way it is implemented in all of the Office applications.  It should also have a way that an end user can add a tag to a document without the risk of it being mislabeled because of human error.  This is one of the drawbacks of Content Controls.  Another thing that makes CustomXml more attractive is that you can use just one type of control to encapsulate content (more on Content Controls versus CustomXml in the next few days).  There are a variety of content controls that are tightly typed.  In other situations this may be a plus, but if anything the developer should be able to define the type of objects used for tagging.

Further, the fact that something as simple as a Text object being in a different namespace even within the same document type means that we have to write duplicate code for dealing with text in charts, document paragraphs and embedded spreadsheets.  If I were to design it, this shared functionality would be abstracted to its own namespace.  I want to be able to write clean, reusable code.

Ultimately the teams within the Office suite need to start working together the way that the language teams have begun to do within Visual Studio.  The same tagging tools should be available in Word, PowerPoint, Excel and OneNote and they should be represented the same in the XML that is rendered.

February 2010 Chicago Architects Group Meeting


The Chicago Architects Group will be holding its next meeting on February 16th.  Please come and join us and get involved in our architect community.


Presenter: Chris McAvoy 
Topic: Amazon Cloud Services  
Location: Illinois Technology Association
200 S. Wacker Dr., Suite 1500
Room A
Chicago, IL 60606
Time: 5:30 - Doors open at 5:00

CAG January 2010 Wrap-up

We had a great turnout this evening and some wonderful discussion.  I really enjoyed presenting as well as seeing a lot of people I haven’t seen in a long time.  At the same time there were a lot of new faces.  Some of the input from tonight will definitely go to improving this talk if I present it again in the future.  If anyone has comments feel free to leave them here.

The next talk I am going to work on is Document Generation Frameworks.  This will mainly be around Office Open XML, but it will include ODF if I can fit it in.

Look for announcements for the February and March Chicago Architects Group events.  In the mean time visit the links below for information from tonight’s meeting.

The slides can be found here.

The code is available here.

ArcSummit Thirsty Developer Episode Posted

Last month when I spoke at ArcSummit for nPlus1.org about design patterns, object oriented programming and dependency injection Chris Woodruff and I sat down and recorded an episode of Thirsty Developer with Dave Bost and Clark Sell.  Check it out here.