Office-Interop (Serverseitige Automatisierung)
Definition
Microsoft Office aus Code steuern, um Dokumente zu öffnen oder zu konvertieren. Es funktioniert auf einem Desktop und wird von Microsoft sowie von allen, die es ausprobiert haben, ausdrücklich von einem Server abgeraten.
Office wurde für einen interaktiven Benutzer an einer Tastatur entwickelt. Auf einem Server, der gleichzeitige Anfragen verarbeitet, scheitert diese Annahme auf spezifische und bekannte Weise: Prozesse geraten in Deadlocks, weil sie aufeinander warten, modale Dialoge erscheinen, die niemand schließen kann, und Instanzen überdauern ihre Anfragen, bis die Maschine keinen Speicher mehr hat.
Die Lizenzsituation ist ebenso problematisch. Ein Server, der Dokumente im Auftrag vieler Nutzer rendert, benötigt Desktop-Lizenzen, die nie für diesen Einsatz vorgesehen waren, was ein Gespräch mit dem Beschaffungsteam bedeutet, das selten gut verläuft.
Die Alternative ist nativer Rendern: eine Bibliothek, die das Format direkt analysiert und die Ausgabe im Prozess erzeugt. Keine zweite Anwendung, keine Automatisierungsschicht, keine verwaisten Prozesse, die nach einem Zeitplan abgearbeitet werden müssen.
In Doconut
Doconut rendert nativ. Es gibt keine Office-Installation, keine COM-Automatisierung und keine Interop-Assembly irgendwo in der Pipeline — was ebenfalls die Container-Bereitstellung unkompliziert macht.
Verwandte Begriffe
Dokumenten-Konvertierung
Eine Datei von einem Format in ein anderes zu transformieren und eine neue Datei zu erzeugen, im Gegensatz zum Rendern, das eine temporäre visuelle Darstellung erzeugt und kein neues Artefakt.
Serverseitige Dokumentenrenderung
Umwandlung eines Dokuments in Seitenbilder auf dem Server, sodass der Browser gerenderte Seiten anzeigt, anstatt die Originaldatei selbst zu parsen.
Document viewer SDK
Eine Bibliothek, die Sie in Ihre eigene Anwendung einbetten, damit sie Dokumente anzeigen kann, im Gegensatz zu einem gehosteten Service, zu dem Sie Dokumente hochladen. Das SDK läuft in Ihrem Prozess; der Service läuft im Prozess eines Dritten.