Moderne Tools für Office-2003-Entwicklung
Artikel erschienen in Swiss IT Magazine 2005/12
Im ersten Teil dieses zweiteiligen Artikels über die Entwicklung mit Office 2003 haben wir uns vor allem mit den Technologien (XML-Dokumente, Smart Documents, Smart Tags etc.) auseinandergesetzt, über die sich die Anwendungen der Bürosuite erweitern lassen. In diesem zweiten Teil zeigen wir nun, welche Werkzeuge und Frameworks zur Verfügung stehen, um Office 2003 zu erweitern oder in bestehende Lösungen zu integrieren.
Von VBA zu Managed Code
Wenn es bislang um die Programmierung von Office-Anwendungen ging, galt Visual Basic for Applications (VBA) als Mass aller Dinge. Mit dem Übergang in die .Net- und Web-Services-Ära bringt Microsoft nun auch modernere Werkzeuge auf den Markt, die VBA punkto Funktionalität bei weitem überlegen sind.
So hat Microsoft im Herbst 2003 die Visual Studio Tools for Office 2003 (VSTO 2003 ) lanciert und damit das Programmieren innerhalb von Word und Excel auf Basis des .Net Framework mit Managed Code möglich gemacht. Im Gegensatz zu VBA erhalten Entwickler damit Zugang zu allen Features des .Net Framework. Dazu zählen beispielsweise die .Net-Klassenbibliotheken, modernere Deployment-Verfahren und bessere Security-Funktionen. Ausserdem können Entwickler auf die .Net-Programmiersprachen Visual Basic.Net und C# zurückgreifen, die weit mächtiger sind als VBA. Ein weiteres Plus: VSTO integriert sich nahtlos in Visual Studio.Net 2003 und bietet daher Zugriff auf alle Funktionen der Entwicklungsumgebung inklusive Editor und Debugger.
VSTO 2003 erlaubt es, Word- und Excel-Dokumente mit Business-Logik zu hinterlegen. Dazu bietet die Office-Entwicklungsplattform Zugang zum kompletten Objektmodell von Word und Excel. So liessen sich beispielsweise die eingegebenen Zahlen in einem Arbeitsblatt mit eigenem Programmcode analysieren oder die Tabelle eines Word-Dokumentes mit Daten befüllen, die vorgängig aus einer Datenbank ausgelesen wurden.
Leider lässt VSTO 2003 zur Office-Programmierung aber auch noch viele Wünsche offen. So können mit dem Werkzeug keinen eigenen Task Panes programmiert werden, und auch die Trennung zwischen Daten und Formatierung ist nicht gewährleistet. Auch punkto Deployment lässt VSTO 2003 noch zu wünschen übrig.
Ein Grossteil der Lücken von VSTO 2003 wird bereits im kommenden Herbst geschlossen, wenn Microsoft Visual Studio Tools for Office Version 2005 (VSTO 2005) im Rahmen des .Net-2.0-Rollouts neu lanciert. Zwar wird sich auch VSTO 2005 nur auf Word oder Excel beschränken, dafür aber mit einer ganzen Reihe an wichtigen Verbesserungen ausgerüstet sein. Dazu gehört etwa die Trennung von Daten und Ansichten innerhalb von Office-Dokumenten. Daten werden zu diesem Zweck in sogenannte XML Data Islands ausgelagert und können unabhängig vom Objektmodell der Office-Anwendung direkt aus dem Programmcode bearbeitet werden. Vereinfacht wird auch das Deployment von Office-Lösungen, indem Dokumente und Komponenten mit dem kompilierten Programmcode (Assemblies) separat gespeichert werden. Die Assemblies lassen sich dann über einen zentralen Server zur Verfügung stellen und werden, sobald der Benutzer ein Office-Dokument mit hinterlegtem Code öffnet, automatisch auf den Client geladen und in einem Cache abgelegt. Das hat den Vorteil, dass Änderungen am Programmcode nur einmal an zentraler Stelle vorgenommen werden müssen und automatisch in allen Dokumenten auf den Client-Maschinen zur Verfügung stehen. Über eine neue Server-Komponente wird man Office-Dokumente auch serverseitig manipulieren können, ohne dabei eine Instanz von Word oder Excel starten zu müssen. Ein Excel-Spreadsheet kann dadurch beispielsweise mit aktuellen Daten aus einer Datenbank abgefüllt werden, bevor es an den Benutzer ausgeliefert wird.
VSTO 2005 wird auf der neuen Entwicklungsumgebung Visual Studio 2005 aufsetzen. Neu werden Word und Excel für das Design von Dokumenten direkt in den Designern von Visual Studio gehostet. Dabei lassen sich die Windows-Forms-Controls direkt per Drag&Drop auf einem Office-Dokument plazieren und mit Programmcode hinterlegen. Ausserdem wird VSTO 2005 auch die Programmierung von eigenen Task Panes und Smart Tags unterstützen. Auch hierfür wird man auf die Controls der Windows-Forms-Technologie zurückgreifen und das Design der Task Panes per Drag&Drop gestalten können.
Das InfoPath 2003 Toolkit für Visual Studio.Net erlaubt die Erweiterung von Formularen mit eigenen .Net-Komponenten. Das Toolkit bietet Zugang zum Objektmodell und dem Eventhandling von InfoPath aus eigenen .Net-Applikationen heraus. Damit lassen sich Formulare mit eigener Businesslogik ausstatten und Prozesse automatisieren. An Programmiersprachen werden C#, Visual Basic.Net, C++ sowie die Scriptsprachen JScript und VBScript unterstützt. InfoPath ist bereits heute als Download verfügbar und wird künftig fester Bestandteil von VSTO 2005 sein.
Wie der Name erahnen lässt, dient das Information Bridge Framework (IBF) zur Integration von Daten aus Datenbanken, Business-Anwendungen und Legacy-Applikationen in Office-Dokumente. IBF stellt dazu die entsprechenden Werkzeuge, Technologien und Leitfäden zur Verfügung.
Die Information Bridge bezieht die gewünschten Informationen mit Hilfe von Web Services und kann diese direkt innerhalb der Office-Anwendung in einem Task Pane anzeigen. Der Abruf und die Darstellung der Informationen erfolgt kontextsensitiv. Sobald der Benutzer an eine bestimmte Stelle des Dokuments navigiert, werden die dazu passenden Informationen angezeigt. Gibt er beispielsweise in einem Adressfeld den Namen eines Kunden ein, lassen sich in der Task Pane automatisch alle Daten über den Kunden (Kontakte, getätigte Bestellungen, offene Service-Anfragen etc.) einblenden, die im firmeneigenen CRM- und ERP-System abgelegt sind. Alternativ können auch Smart Tags programmiert werden, die dem Benutzer das Einblenden von Zusatzinformationen ermöglichen. Gibt der Benutzer beispielsweise eine gültige Bestellnummer ein, wird ihm per Smart Tag angeboten, alle Detail-Informationen zur betreffenden Bestellung einzublenden.
Das Interessante an einer mit IBF realisierten Integrationslösung ist, dass Anwender ihre Office-Applikationen nicht mehr zu verlassen brauchen, um an die relevanten Informationen zu gelangen, die für den gerade durchgeführten Arbeitsschritt benötigt werden. Eine clever umgesetzte Information-Bridge-Lösung kann nicht nur wertvolle Arbeitszeit einsparen, sondern auch gleichzeitig die Qualität der Arbeit steigern.
Die Architektur des Information Bridge Framework basiert auf mehreren Client- und Server-Komponenten, welche die Kommunikation zwischen den Office-Anwendungen und Business-Applikationen regeln. Damit eine Anwendung überhaupt angezapft werden kann, muss sie via Web Services zugänglich gemacht werden. Die verfügbaren Daten, Ansichten und Aktionen dieser Web Services werden dann mit Metadaten beschrieben und von den Meta Services verwaltet, einer Komponente, die serverseitig eingesetzt wird. Die eigentliche Koordination zwischen Office und den Meta Services wird auf der Client-Seite durch die Context and Action Service Engine (CAS) abgewickelt. CAS interpretiert den Kontext innerhalb eines Office-Dokumentes anhand von hinterlegten XML-Tags und stellt dem Benutzer jeweils die Daten und möglichen Aktionen zur Verfügung. Die Benutzerschnittstelle für die Darstellung der bezogenen Informationen, die sich wahlweise in einer Task Pane oder einem Pop-up-Fenster anzeigen lassen, basieren auf Windows Forms von .Net 1.1 und können mit Visual Studio.Net 2003 programmiert werden.
Werkzeuge und Frameworks für die Entwicklung mit Office 2003
Bereits heute bietet die Office-Plattform viele Ansatzpunkte, um Arbeitsprozesse im Büroalltag zu vereinfachen oder gar zu automatisieren. Leider werden diese Möglichkeiten von den meisten Unternehmen nur selten oder gar nicht genutzt. Das ist schade, denn gerade im Umfeld der Office-Nutzung steckt viel Potential für Kosteneinsparungen.
Auch in Zukunft wird Microsoft ihr Office System als Entwicklungsplattform weiter ausbauen. Für die zweite Jahreshälfte von 2006 steht mit Office 12 eine generalüberholte Version der gesamten Bürosuite inklusive neuen Versionen von SharePoint, Content Management Server und Exchange auf dem Programm. Zu erwarten ist auch die .Net-ifizierung von weiteren Office-Applikationen. Dabei stehen Outlook und InfoPath zuoberst auf der Prioritätenliste. Mit WinOE (Windows Orchestration) will Microsoft die Office-Familie um eine Orchestration-Engine ergänzen. Dabei handelt es sich um eine Art Mini-BizTalk-Server, mit dem sich Workflow-Anwendungen unter Einbezug der Office-Programme, SharePoint und Exchange entwickeln lassen.