OSF 7: What does composition mean for Office Client applications?

[OBA Solution Framework Index]

Consider composition of information in the Office Client. People are used to thinking of Word, Excel and Outlook as desktop productivity tools, but they can now serve as containers for data coming from back end servers (e.g. ERP and other Line of Business applications). Consider the following diagram.

You can see how Office 2007 client applications are now customizable / extensible containers for business logic. You can use VSTO (Visual Studio Tools for Office) to extend Office client with application specific add-ins. These add-ins can present the user with information and actions in the context of his current task, and in the context of his role. The following figure shows how this might look like.

But if you do consider Office 2007 client applications as containers, then the question remains - what gets deployed into these containers? Now that Office documents are represnted as Open XML, you can drop custom defined XML blocks into documents - as in the figure below.

This means two things for solution developers - firstly that client side application add ins can operate on this custom XML block. And secondly, all kinds of interesting new opportunities have opened up for server side automation that process this custom XML block. You can now do the following:

  1. Extract information from back end systems, e.g. by a workflow running in SharePoint that gets this information via the BDC (Business Data Catalog). You could build up a custom workflow activity library for this purpose.
  2. You can embed this data back to an Office client document for off-line use. This document can reach its intended user via either a pull model (retrieving it from a SharePoint library), or via a push model (sending it via email). The data could be stored in the Custom XML schema embedded in the Open XML document (i.e. payload).
  3. You can use Office applications like Excel, Word, and Outlook, with appropriate add ins to provide client side actions and services that make use of this custom data.