Context Card
Erweiterungspunkte einer Plattform
Wie erlaubt ein Plattform-SDK fremdem Code, eine Host-Anwendung zu erweitern?
Die kurze Antwort
Ein Plattform-SDK legt fest, wo und wie fremder Code in eine Host-Anwendung eingreifen darf: benannte Erweiterungspunkte, ein Manifest, das angibt, was die Erweiterung beiträgt und welche Rechte sie braucht, APIs, die die Erweiterung aufrufen darf, und meist eine Sandbox, die sie abschottet. Der Host lädt die Erweiterung und ruft sie an den angegebenen Punkten auf – die Kontrolle bleibt beim Host.
Für: Entwickler und Technische Redakteure, die Erweiterungen bauen oder dokumentieren
Das Wichtigste
- Erweiterungspunkte sind die Stellen, an denen der Host Beiträge annimmt – Befehle, Ansichten, Daten-Hooks.
- Ein Manifest gibt an, was die Erweiterung ergänzt und welche Rechte sie anfordert.
- Der Host ruft die Erweiterung auf (Inversion of Control), nicht umgekehrt.
- Sandboxing und Berechtigungsbereiche begrenzen, was eine Erweiterung erreichen kann.
- Kompatibilitätszusagen und Abkündigungspfade entscheiden, wie lange eine Erweiterung funktioniert.
Der Zusammenhang
Host und Erweiterung
Ein Plattform-SDK ist ein Software-Framework im engen Sinn: Die Host-Anwendung gibt die Struktur vor und ruft die Erweiterung auf. Das SDK dokumentiert die Erweiterungspunkte, liefert die APIs, die die Erweiterung nutzen darf, und Werkzeuge zum Bauen, Testen und Veröffentlichen.
Manifest und Rechte
Ein Manifest listet die Beiträge der Erweiterung und die benötigten Berechtigungen. Die Autorisierung setzt der Host durch: Eine Erweiterung, die keinen Datenzugriff angefordert hat, bekommt ihn nicht. Viele Plattformen führen Erweiterungen in einer Sandbox oder auf ihrer eigenen Laufzeitumgebung aus.
Warum der Vertrag zählt
Erweiterungen hängen vom Schnittstellenvertrag des Hosts ab. Abwärtskompatibilität und veröffentlichte Abkündigungspfade entscheiden, ob eine Erweiterung das nächste Host-Release übersteht.
Siehe den Enzyklopädie-Artikel Platform SDKs (auf Englisch).
Fragen, die sich daran anschließen
- Ist ein Plug-in dasselbe wie eine Erweiterung?
- Auf den meisten Plattformen meinen beide Wörter dasselbe: Code, den der Host an einem festgelegten Erweiterungspunkt lädt. Manche Plattformen reservieren einen der Begriffe für ein bestimmtes Paketformat.
- Warum darf eine Erweiterung nicht einfach interne Funktionen des Hosts aufrufen?
- Nur dokumentierte APIs gehören zum Vertrag. Interne Funktionen können sich ohne Ankündigung ändern, und die Sandbox sperrt sie meist.
Quellen
- Extension API — Visual Studio Code
- Forge — Atlassian Developer
Prüfprotokoll und Änderungen
Jede Context Card wird vor der Veröffentlichung und bei jeder Änderung erneut anhand ihrer Quellen geprüft; das Datum unter der Autorenzeile ist die letzte Prüfung. Korrekturen (etwas war falsch) und Ergänzungen (etwas fehlte) stehen unten mit Datum und Uhrzeit (deutsche Zeit). Tippfehler, Formatierung und Link-Korrekturen werden nicht aufgeführt.
Geprüft
Seit der Veröffentlichung keine Korrekturen oder Ergänzungen.